diff --git a/grouprise/features/matrix_chat/matrix_bot.py b/grouprise/features/matrix_chat/matrix_bot.py index 93d14faf..e1ea960a 100644 --- a/grouprise/features/matrix_chat/matrix_bot.py +++ b/grouprise/features/matrix_chat/matrix_bot.py @@ -69,34 +69,7 @@ async def synchronize_rooms_of_group(self, group): except MatrixError as exc: logger.error(f"Failed to synchronize room: {exc}") continue - avatar_changed = False - if group.avatar: - grouprise_avatar_url = full_url(group.avatar_64.url) - response = await self.client.room_get_state_event( - room.room_id, "m.room.avatar" - ) - if isinstance(response, nio.responses.RoomGetStateEventResponse): - current_matrix_avatar_url = response.content.get("url") - elif isinstance(response, nio.responses.RoomGetStateEventError) and ( - response.status_code == "M_NOT_FOUND" - ): - current_matrix_avatar_url = None - else: - logger.warning( - f"Failed to retrieve current avatar of group '{group}': {response}" - ) - continue - if current_matrix_avatar_url != grouprise_avatar_url: - response = await self.client.room_put_state( - room.room_id, "m.room.avatar", {"url": grouprise_avatar_url} - ) - if isinstance(response, nio.responses.RoomPutStateResponse): - avatar_changed = True - else: - logger.warning( - f"Failed to update avatar for room '{room}': {response}" - ) - if created or avatar_changed: + if created: yield room async def _get_or_create_room(self, group, is_private): diff --git a/grouprise/features/matrix_chat/signals.py b/grouprise/features/matrix_chat/signals.py index d4c294ea..708697a4 100644 --- a/grouprise/features/matrix_chat/signals.py +++ b/grouprise/features/matrix_chat/signals.py @@ -17,9 +17,10 @@ @receiver(post_save, sender=grouprise.features.groups.models.Group) -@db_task() -def update_matrix_rooms_for_group(sender, instance, created, update_fields, **kwargs): - if created or (update_fields and "logo" in update_fields): +def update_matrix_rooms_for_group(sender, instance, created, **kwargs): + if created: + _sync_rooms_delayed(instance) + @db_task() def _sync_rooms_delayed(group):