diff src/core/xmpp.py @ 347:ea3e1b82dd79

core: contact deletion from roster if we have no subscription to it (behaviour may change in futur) quick frontend: groups is updated in contactList in case of roster push
author Goffi <goffi@goffi.org>
date Sun, 29 May 2011 16:12:08 +0200
parents ca3a041fed30
children adcc41e4d6ea
line wrap: on
line diff
--- a/src/core/xmpp.py	Sat May 28 20:28:21 2011 +0200
+++ b/src/core/xmpp.py	Sun May 29 16:12:08 2011 +0200
@@ -158,6 +158,12 @@
     def onRosterSet(self, item):
         """Called when a new/update roster item is received"""
         #TODO: send a signal to frontends
+        if not item.subscriptionTo and not item.subscriptionFrom and not item.ask:
+            #XXX: current behaviour: we don't want contact in our roster list
+            #if there is no presence subscription
+            #may change in the future
+            self.removeItem(item.jid)
+            return
         item_attr = {'to': str(item.subscriptionTo),
                      'from': str(item.subscriptionFrom),
                      'ask': str(item.ask)
@@ -171,9 +177,9 @@
     
     def onRosterRemove(self, entity):
         """Called when a roster removal event is received"""
-        #TODO: send a signal to frontends
         print _("removing %s from roster list") % entity.full()
         self.host.memory.delContact(entity, self.parent.profile)
+        self.host.bridge.contactDeleted(entity.userhost(), self.parent.profile)
 
     def getGroups(self):
         """Return a set of groups"""