Philipp Hörist pushed to branch mainwindow at gajim / gajim
Commits:
8293075c by lovetox at 2021-03-15T20:37:40+01:00
add get_groups()
- - - - -
1 changed file:
- gajim/common/modules/roster.py
Changes:
=====================================
gajim/common/modules/roster.py
=====================================
@@ -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)
View it on GitLab:
https://dev.gajim.org/gajim/gajim/-/commit/8293075c2ab4d6dc804797a216b3bbb2b63c1649
--
View it on GitLab:
https://dev.gajim.org/gajim/gajim/-/commit/8293075c2ab4d6dc804797a216b3bbb2b63c1649
You're receiving this email because of your account on dev.gajim.org.
_______________________________________________
Commits mailing list
[email protected]
https://lists.gajim.org/cgi-bin/listinfo/commits