Philipp Hörist pushed to branch master at gajim / gajim
Commits:
eeb7595a by Philipp Hörist at 2022-09-22T21:27:31+02:00
fix: React correctly to UserAvatar updates
Fixes: #11065
- - - - -
1 changed file:
- gajim/common/modules/user_avatar.py
Changes:
=====================================
gajim/common/modules/user_avatar.py
=====================================
@@ -61,28 +61,39 @@ def _avatar_metadata_received(self,
if metadata is None or not metadata.infos:
self._log.info('No avatar published: %s', jid)
- app.storage.cache.set_contact(jid, 'avatar', None)
contact.update_avatar(None)
+ return
- else:
- sha = contact.avatar_sha
- if contact.avatar_sha:
- if sha in metadata.avatar_shas:
- self._log.info('Avatar already known: %s %s', jid, sha)
- return
+ sha = contact.avatar_sha
+ if sha is not None:
+ if sha in metadata.avatar_shas and
app.interface.avatar_exists(sha):
+ self._log.info('Avatar already known: %s %s', jid, sha)
+ return
- if app.interface.avatar_exists(sha):
- contact.update_avatar(sha)
- return
+ if app.interface.avatar_exists(metadata.default):
+ self._log.info('Avatar found in cache, update: %s %s',
+ jid, metadata.default)
+ contact.update_avatar(metadata.default)
+ return
- self._log.info('Request: %s %s', jid, metadata.default)
- self._request_avatar_data(contact, metadata.default)
+ # There are following cases this code is reached:
+ # - We lost the avatar cache
+ # - We use an outdated avatar
+ # - We currently have no avatar set
+ #
+ # Reset the sha, because we don’t know if the avatar data query will
+ # succeed. This forces an update of the avatar if the query succeeds.
+ contact.update_avatar(None)
+ self._request_avatar_data(contact, metadata.default)
@as_task
def _request_avatar_data(self,
contact: types.ChatContactT,
sha: str
) -> Generator[Optional[AvatarData], None, None]:
+
+ self._log.info('Request: %s %s', contact.jid, sha)
+
_task = yield # noqa: F841
avatar = yield self._nbxmpp('UserAvatar').request_avatar_data(
View it on GitLab:
https://dev.gajim.org/gajim/gajim/-/commit/eeb7595aafbc43221d890b6c214629fb509c60e3
--
View it on GitLab:
https://dev.gajim.org/gajim/gajim/-/commit/eeb7595aafbc43221d890b6c214629fb509c60e3
You're receiving this email because of your account on dev.gajim.org.
_______________________________________________
Commits mailing list
[email protected]
https://lists.gajim.org/cgi-bin/listinfo/commits