Author: asterix
Date: 2008-06-27 17:07:15 +0200 (Fri, 27 Jun 2008)
New Revision: 9853
Modified:
trunk/src/common/caps.py
Log:
entity capabilities for groupchat contacts. fixes #4033
Modified: trunk/src/common/caps.py
===================================================================
--- trunk/src/common/caps.py 2008-06-27 10:50:09 UTC (rev 9852)
+++ trunk/src/common/caps.py 2008-06-27 15:07:15 UTC (rev 9853)
@@ -206,11 +206,12 @@
# start disco query...
gajim.capscache.preload(self, jid, node, hash_method, hash)
- contact=gajim.contacts.get_contact_from_full_jid(self.name, jid)
- if contact in [None, []]:
- return # TODO: a way to put contact not-in-roster into Contacts
- elif isinstance(contact, list):
- contact = contact[0]
+ contact = gajim.contacts.get_contact_from_full_jid(self.name, jid)
+ if contact is None:
+ room_jid, nick = gajim.get_room_and_nick_from_fjid(jid)
+ contact = gajim.contacts.get_gc_contact(self.name, room_jid, nick)
+ if contact is None:
+ return # TODO: a way to put contact not-in-roster into Contacts
# overwriting old data
contact.caps_node = node
@@ -220,7 +221,10 @@
def _capsDiscoCB(self, jid, node, identities, features, dataforms):
contact = gajim.contacts.get_contact_from_full_jid(self.name, jid)
if not contact:
- return
+ room_jid, nick = gajim.get_room_and_nick_from_fjid(jid)
+ contact = gajim.contacts.get_gc_contact(self.name, room_jid, nick)
+ if contact is None:
+ return
if not contact.caps_node:
return # we didn't asked for that?
if not node.startswith(contact.caps_node + '#'):