Handle update_info errors inside entity instead of in user
This commit is contained in:
@@ -521,21 +521,24 @@ class PortalMetadata(BasePortal, ABC):
|
|||||||
return
|
return
|
||||||
|
|
||||||
self.log.debug("Updating info")
|
self.log.debug("Updating info")
|
||||||
if not entity:
|
try:
|
||||||
entity = await self.get_entity(user)
|
if not entity:
|
||||||
self.log.debug(f"Fetched data: {entity}")
|
entity = await self.get_entity(user)
|
||||||
changed = False
|
self.log.debug(f"Fetched data: {entity}")
|
||||||
|
changed = False
|
||||||
|
|
||||||
if self.peer_type == "channel":
|
if self.peer_type == "channel":
|
||||||
changed = await self._update_username(entity.username) or changed
|
changed = await self._update_username(entity.username) or changed
|
||||||
|
|
||||||
if hasattr(entity, "about"):
|
if hasattr(entity, "about"):
|
||||||
changed = self._update_about(entity.about) or changed
|
changed = self._update_about(entity.about) or changed
|
||||||
|
|
||||||
changed = await self._update_title(entity.title) or changed
|
changed = await self._update_title(entity.title) or changed
|
||||||
|
|
||||||
if isinstance(entity.photo, ChatPhoto):
|
if isinstance(entity.photo, ChatPhoto):
|
||||||
changed = await self._update_avatar(user, entity.photo) or changed
|
changed = await self._update_avatar(user, entity.photo) or changed
|
||||||
|
except Exception:
|
||||||
|
self.log.exception(f"Failed to update info from source {user.tgid}")
|
||||||
|
|
||||||
if changed:
|
if changed:
|
||||||
self.save()
|
self.save()
|
||||||
|
|||||||
@@ -234,9 +234,12 @@ class Puppet(CustomPuppetMixin):
|
|||||||
self.username = info.username
|
self.username = info.username
|
||||||
changed = True
|
changed = True
|
||||||
|
|
||||||
changed = await self.update_displayname(source, info) or changed
|
try:
|
||||||
if isinstance(info.photo, UserProfilePhoto):
|
changed = await self.update_displayname(source, info) or changed
|
||||||
changed = await self.update_avatar(source, info.photo) or changed
|
if isinstance(info.photo, UserProfilePhoto):
|
||||||
|
changed = await self.update_avatar(source, info.photo) or changed
|
||||||
|
except Exception:
|
||||||
|
self.log.exception(f"Failed to update info from source {source.tgid}")
|
||||||
|
|
||||||
self.is_bot = info.bot
|
self.is_bot = info.bot
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user