Don't try to set room state in non-existent portals

This commit is contained in:
Tulir Asokan
2022-02-23 12:46:16 +02:00
parent 437e86a15b
commit 9ea495324d
+35 -27
View File
@@ -1118,9 +1118,10 @@ class Portal(DBPortal, BasePortal):
return False return False
self.about = about self.about = about
await self._try_set_state( if self.mxid:
sender, EventType.ROOM_TOPIC, RoomTopicStateEventContent(topic=self.about) await self._try_set_state(
) sender, EventType.ROOM_TOPIC, RoomTopicStateEventContent(topic=self.about)
)
if save: if save:
await self.save() await self.save()
return True return True
@@ -1132,14 +1133,15 @@ class Portal(DBPortal, BasePortal):
return False return False
self.title = title self.title = title
try: if self.mxid:
await self._try_set_state( try:
sender, EventType.ROOM_NAME, RoomNameStateEventContent(name=self.title) await self._try_set_state(
) sender, EventType.ROOM_NAME, RoomNameStateEventContent(name=self.title)
self.name_set = True )
except Exception as e: self.name_set = True
self.log.warning(f"Failed to set room name: {e}") except Exception as e:
self.name_set = False self.log.warning(f"Failed to set room name: {e}")
self.name_set = False
if save: if save:
await self.save() await self.save()
return True return True
@@ -1152,14 +1154,17 @@ class Portal(DBPortal, BasePortal):
if puppet.avatar_url: if puppet.avatar_url:
self.photo_id = puppet.photo_id self.photo_id = puppet.photo_id
self.avatar_url = puppet.avatar_url self.avatar_url = puppet.avatar_url
try: if self.mxid:
await self._try_set_state( try:
None, EventType.ROOM_AVATAR, RoomAvatarStateEventContent(url=self.avatar_url) await self._try_set_state(
) None,
self.avatar_set = True EventType.ROOM_AVATAR,
except Exception as e: RoomAvatarStateEventContent(url=self.avatar_url),
self.log.warning(f"Failed to set room avatar: {e}") )
self.avatar_set = False self.avatar_set = True
except Exception as e:
self.log.warning(f"Failed to set room avatar: {e}")
self.avatar_set = False
return True return True
elif photo is not None and user is not None: elif photo is not None and user is not None:
return await self._update_avatar(user, photo=photo) return await self._update_avatar(user, photo=photo)
@@ -1202,14 +1207,17 @@ class Portal(DBPortal, BasePortal):
return False return False
self.photo_id = photo_id self.photo_id = photo_id
self.avatar_url = file.mxc self.avatar_url = file.mxc
try: if self.mxid:
await self._try_set_state( try:
sender, EventType.ROOM_AVATAR, RoomAvatarStateEventContent(url=self.avatar_url) await self._try_set_state(
) sender,
self.avatar_set = True EventType.ROOM_AVATAR,
except Exception as e: RoomAvatarStateEventContent(url=self.avatar_url),
self.log.warning(f"Failed to set room avatar: {e}") )
self.avatar_set = False self.avatar_set = True
except Exception as e:
self.log.warning(f"Failed to set room avatar: {e}")
self.avatar_set = False
if save: if save:
await self.save() await self.save()
return True return True