comparison src/core/xmpp.py @ 1300:ba73798317a7 frontends_multi_profiles

core: fixed items registration in roster management
author Goffi <goffi@goffi.org>
date Fri, 06 Feb 2015 18:54:44 +0100
parents 3360074a2f00
children be3a301540c0
comparison
equal deleted inserted replaced
1299:3360074a2f00 1300:ba73798317a7
178 self._jids = None # map from jids to RosterItem: key=jid value=RosterItem 178 self._jids = None # map from jids to RosterItem: key=jid value=RosterItem
179 179
180 def rosterCb(self, roster): 180 def rosterCb(self, roster):
181 assert roster is not None # FIXME: must be managed with roster versioning 181 assert roster is not None # FIXME: must be managed with roster versioning
182 self._jids = roster 182 self._jids = roster
183 for roster_item in roster.itervalues():
184 self._registerItem(roster_item)
183 185
184 def _registerItem(self, item): 186 def _registerItem(self, item):
185 """Register item in local cache 187 """Register item in local cache
186 188
187 item must be already registered in self._jids before this method is called 189 item must be already registered in self._jids before this method is called
263 265
264 def getGroups(self): 266 def getGroups(self):
265 """Return a list of groups""" 267 """Return a list of groups"""
266 return self._groups.keys() 268 return self._groups.keys()
267 269
268 def getItem(self, jid): 270 def getItem(self, entity_jid):
269 """Return RosterItem for a given jid 271 """Return RosterItem for a given jid
270 272
271 @param jid: jid of the contact 273 @param entity_jid: jid of the contact
272 @return: RosterItem or None if contact is not in cache 274 @return: RosterItem or None if contact is not in cache
273 """ 275 """
274 return self._jids.get(jid, None) 276 return self._jids.get(entity_jid, None)
275 277
276 def getJids(self): 278 def getJids(self):
277 """Return all jids of the roster""" 279 """Return all jids of the roster"""
278 return self._jids.keys() 280 return self._jids.keys()
279 281
287 289
288 def getJidsFromGroup(self, group): 290 def getJidsFromGroup(self, group):
289 try: 291 try:
290 return self._groups[group] 292 return self._groups[group]
291 except KeyError: 293 except KeyError:
292 raise exceptions.UnknownGroupError 294 raise exceptions.UnknownGroupError(group)
293 295
294 296
295 class SatPresenceProtocol(xmppim.PresenceClientProtocol): 297 class SatPresenceProtocol(xmppim.PresenceClientProtocol):
296 298
297 def __init__(self, host): 299 def __init__(self, host):