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 Commits@gajim.org https://lists.gajim.org/cgi-bin/listinfo/commits