Philipp Hörist pushed to branch master at gajim / gajim


Commits:
5504b85c by Philipp Hörist at 2025-04-17T20:03:17+00:00
feat: Add XEP-0486

Fixes #12273

- - - - -


2 changed files:

- data/gajim.doap
- gajim/common/modules/vcard_avatars.py


Changes:

=====================================
data/gajim.doap
=====================================
@@ -735,6 +735,14 @@
         <xmpp:since>1.9.0</xmpp:since>
       </xmpp:SupportedXep>
     </implements>
+    <implements>
+      <xmpp:SupportedXep>
+        <xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0486.html"/>
+        <xmpp:status>complete</xmpp:status>
+        <xmpp:version>0.1.0</xmpp:version>
+        <xmpp:since>2.1.2</xmpp:since>
+      </xmpp:SupportedXep>
+    </implements>
     <implements>
       <xmpp:SupportedXep>
         <xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0490.html"/>


=====================================
gajim/common/modules/vcard_avatars.py
=====================================
@@ -31,6 +31,9 @@
 from gajim.common.modules.util import as_task
 from gajim.common.task_manager import Task
 
+NS_AVATAR_HASH = 'muc#roominfo_avatarhash'
+NS_AVATAR_HASH_TEMP = '{http://modules.prosody.im/mod_vcard_muc}avatar#sha1'
+
 
 class VCardAvatars(BaseModule):
     def __init__(self, con: types.Client) -> None:
@@ -124,15 +127,23 @@ def muc_disco_info_update(self, disco_info: DiscoInfo) -> 
None:
         if not disco_info.supports(Namespace.VCARD):
             return
 
-        field_var = '{http://modules.prosody.im/mod_vcard_muc}avatar#sha1'
-        if not disco_info.has_field(Namespace.MUC_INFO, field_var):
+        ns_avatar_hash = None
+        if disco_info.has_field(Namespace.MUC_INFO, NS_AVATAR_HASH):
+            ns_avatar_hash = NS_AVATAR_HASH
+
+        elif disco_info.has_field(Namespace.MUC_INFO, NS_AVATAR_HASH_TEMP):
+            ns_avatar_hash = NS_AVATAR_HASH_TEMP
+
+        if ns_avatar_hash is None:
             # Workaround so we don’t delete the avatar for servers that don’t
-            # support sha in disco info. Once there is a accepted XEP this
-            # can be removed
+            # support sha in disco info.
             return
 
-        avatar_sha = disco_info.get_field_value(Namespace.MUC_INFO, field_var)
+        avatar_sha = disco_info.get_field_value(
+            Namespace.MUC_INFO, ns_avatar_hash) or None
         state = AvatarState.EMPTY if not avatar_sha else AvatarState.ADVERTISED
+
+        assert disco_info.jid is not None
         self._process_update(disco_info.jid, state, avatar_sha, True)
 
     def _process_update(self,



View it on GitLab: 
https://dev.gajim.org/gajim/gajim/-/commit/5504b85c2cbdb9e45424b0e487761fe76118e9c3

-- 
View it on GitLab: 
https://dev.gajim.org/gajim/gajim/-/commit/5504b85c2cbdb9e45424b0e487761fe76118e9c3
You're receiving this email because of your account on dev.gajim.org.


_______________________________________________
Commits mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to