From 971169fe2c9fce8dfdebf61f4614428189f7890c Mon Sep 17 00:00:00 2001 From: Yohann D'ANELLO Date: Thu, 29 Oct 2020 23:57:29 +0100 Subject: [PATCH] Define rooms avatar --- .../management/commands/fix_matrix_channels.py | 3 +++ corres2math/matrix.py | 13 +++++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/apps/participation/management/commands/fix_matrix_channels.py b/apps/participation/management/commands/fix_matrix_channels.py index 4bd1ef6..66082ff 100644 --- a/apps/participation/management/commands/fix_matrix_channels.py +++ b/apps/participation/management/commands/fix_matrix_channels.py @@ -46,6 +46,9 @@ class Command(BaseCommand): preset=RoomPreset.public_chat, ) + Matrix.set_room_avatar("#annonces:correspondances-maths.fr", avatar_uri) + Matrix.set_room_avatar("#faq:correspondances-maths.fr", avatar_uri) + Matrix.set_room_power_level_event("#annonces:correspondances-maths.fr", "events_default", 50) for r in Registration.objects.all(): diff --git a/corres2math/matrix.py b/corres2math/matrix.py index 1dae861..784c905 100644 --- a/corres2math/matrix.py +++ b/corres2math/matrix.py @@ -74,8 +74,6 @@ class Matrix: initial_state=(), power_level_override: Optional[Dict[str, Any]] = None, ) -> Union[RoomCreateResponse, RoomCreateError]: - resp: Union[RoomCreateResponse, RoomCreateError] - client = await cls._get_client() return await client.room_create( visibility, alias, name, topic, room_version, federate, is_direct, preset, invite, initial_state, @@ -131,3 +129,14 @@ class Matrix: else: content[event] = power_level return await client.room_put_state(room_id, "m.room.power_levels", content=content, state_key=resp.state_key) + + @classmethod + @async_to_sync + async def set_room_avatar(cls, room_id: str, avatar_uri: str)\ + -> Union[RoomPutStateResponse, RoomPutStateError]: + client = await cls._get_client() + if room_id.startswith("#"): + room_id = await cls.resolve_room_alias(room_id) + return await client.room_put_state(room_id, "m.room.avatar", content={ + "url": avatar_uri + }, state_key="")