From a4bfd2fcbbb069bfff116990be91238af97bd974 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20H=C3=B6rist?= <philipp@hoerist.com> Date: Mon, 26 Feb 2018 22:24:30 +0100 Subject: [PATCH] Add get_contact_strict() This adds a method that returns only a contact if there is an exact match, instead of a contact where only the barejid matches. We need this when we update the Caps of a contact. --- gajim/common/contacts.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/gajim/common/contacts.py b/gajim/common/contacts.py index 8452f9c2ad..074e1d4983 100644 --- a/gajim/common/contacts.py +++ b/gajim/common/contacts.py @@ -509,6 +509,15 @@ class Contacts(): return c return self._contacts[jid][0] + def get_contact_strict(self, jid, resource): + """ + Return the contact instance for the given resource or None + """ + if jid in self._contacts: + for c in self._contacts[jid]: + if c.resource == resource: + return c + def get_avatar(self, jid, size=None, scale=None): if jid not in self._contacts: return None @@ -554,7 +563,7 @@ class Contacts(): Get Contact object for specific resource of given jid """ barejid, resource = common.app.get_room_and_nick_from_fjid(fjid) - return self.get_contact(barejid, resource) + return self.get_contact_strict(barejid, resource) def get_first_contact_from_jid(self, jid): if jid in self._contacts: -- GitLab