From 60266bf0dc5e7740e500a321cf13d69332b9a75c Mon Sep 17 00:00:00 2001 From: retoor Date: Sun, 25 May 2025 12:30:26 +0200 Subject: [PATCH] Channel support. --- src/snek/view/channel.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/snek/view/channel.py b/src/snek/view/channel.py index 960605a..6aba26a 100644 --- a/src/snek/view/channel.py +++ b/src/snek/view/channel.py @@ -137,3 +137,24 @@ class ChannelAttachmentView(BaseView): "channel_uid": channel_uid, } ) + +class ChannelView(BaseView): + async def get(self): + channel_name = self.request.match_info.get("channel") + if(channel_name is None): + return web.HTTPNotFound() + channel = await self.services.channel.get(label="#" + channel_name) + if(channel is None): + channel = await self.services.channel.get(label=channel_name) + channel = await self.services.channel.get(channel_name) + if(channel is None): + channel = await self.services.channel.get(label=channel_name) + if(channel is None): + user = await self.services.user.get(uid=self.session.get("uid")) + is_listed = self.request.query.get("listed", False) == "true" + is_private = self.request.query.get("private", False) == "true" + channel = await self.services.channel.create(label=channel_name,created_by_uid=user['uid'],description="No description provided.",tag="user",is_private=is_private,is_listed=is_listed) + channel_member = await self.services.channel_member.create(channel_uid=channel['uid'],user_uid=user['uid'],is_moderator=True,is_read_only=False,is_muted=False,is_banned=False) + + return web.HTTPFound("/channel/{}.html".format(channel["uid"])) +