diff frontends/src/quick_frontend/quick_contact_list.py @ 1305:3dc7f61677bb frontends_multi_profiles

merged souliane commits
author Goffi <goffi@goffi.org>
date Fri, 06 Feb 2015 19:29:37 +0100
parents 447d28b1b4ec ef7e8e23b353
children 789e86a8919d
line wrap: on
line diff
--- a/frontends/src/quick_frontend/quick_contact_list.py	Fri Feb 06 19:05:51 2015 +0100
+++ b/frontends/src/quick_frontend/quick_contact_list.py	Fri Feb 06 19:29:37 2015 +0100
@@ -83,6 +83,36 @@
                 return False
         return entity in self._cache
 
+    @property
+    def roster_entities(self):
+        """Return all the bare JIDs of the roster entities.
+
+        @return: set(jid.JID)
+        """
+        return self._roster
+
+    @property
+    def roster_entities_by_group(self):
+        """Return a dictionary binding the roster groups to their entities bare JIDs.
+
+        @return: dict{unicode: set(jid.JID)}
+        """
+        return {group: self._groups[group]['jids'] for group in self._groups}
+
+    @property
+    def roster_groups_by_entity(self, contact_jid_s):
+        """Return a dictionary binding the entities bare JIDs to their roster groups.
+
+        @return: dict{jid.JID: set(unicode)}
+        """
+        result = {}
+        for group, data in self._groups.iteritems():
+            if group is None:
+                continue
+            for entity in data['jids']:
+                result.setdefault(entity, set()).add(group)
+        return result
+
     def fill(self):
         """Get all contacts from backend, and fill the widget"""
         def gotContacts(contacts):