Skip to content
Snippets Groups Projects
Commit ca8b5774 authored by Philipp Hörist's avatar Philipp Hörist
Browse files

add get_groups()

parent 0e12f7f8
No related branches found
No related tags found
No related merge requests found
......@@ -45,6 +45,9 @@ def __init__(self, con):
self._roster = {}
# Groups cache for performance
self._groups = None
def load_roster(self):
self._log.info('Load from database')
roster = app.storage.cache.load_roster(self._account)
......@@ -105,6 +108,8 @@ def _on_request_roster(self, task):
def _set_roster_from_data(self, items):
self._roster.clear()
self._groups = None
for item in items:
self._log.info(item)
self._con.get_module('Contacts').add_contact(item.jid)
......@@ -121,6 +126,7 @@ def _process_roster_push(self, _con, _stanza, properties):
else:
self._roster[item.jid] = item
self._groups = None
self._store_roster()
self._log.info('New version: %s', properties.roster.version)
......@@ -143,6 +149,16 @@ def set_groups(self, jid, groups):
item = self.get_item(jid)
self._nbxmpp('Roster').set_item(jid, item.name, groups)
def get_groups(self):
if self._groups is not None:
return set(self._groups)
groups = set()
for item in self._roster.values():
groups.update(item.groups)
self._groups = groups
return set(groups)
def change_group(self, jid, old_group, new_group):
item = self.get_item(jid)
groups = set(item.groups)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment