Added channel list.
This commit is contained in:
parent
b6eba60843
commit
3baa6e53df
@ -86,6 +86,15 @@ class ChannelService(BaseService):
|
|||||||
if (datetime.fromisoformat(now()) - datetime.fromisoformat(user["last_ping"])).total_seconds() < 20:
|
if (datetime.fromisoformat(now()) - datetime.fromisoformat(user["last_ping"])).total_seconds() < 20:
|
||||||
yield user
|
yield user
|
||||||
|
|
||||||
|
async def get_for_user(self, user_uid):
|
||||||
|
async for channel_member in self.services.channel_member.find(
|
||||||
|
user_uid=user_uid,
|
||||||
|
is_banned=False,
|
||||||
|
deleted_at=None,
|
||||||
|
):
|
||||||
|
channel = await self.get(uid=channel_member["channel_uid"])
|
||||||
|
yield channel
|
||||||
|
|
||||||
async def ensure_public_channel(self, created_by_uid):
|
async def ensure_public_channel(self, created_by_uid):
|
||||||
model = await self.get(is_listed=True, tag="public")
|
model = await self.get(is_listed=True, tag="public")
|
||||||
is_moderator = False
|
is_moderator = False
|
||||||
|
@ -33,11 +33,9 @@
|
|||||||
<aside class="sidebar">
|
<aside class="sidebar">
|
||||||
<h2 class="no-select">Chat Rooms</h2>
|
<h2 class="no-select">Chat Rooms</h2>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a class="no-select" href="#">General</a></li>
|
{% for channel in channels %}
|
||||||
<li><a class="no-select" href="#">Development</a></li>
|
<li><a class="no-select" href="/web/{{channel['channel_uid']}}.html">{{channel['label']}}</a></li>
|
||||||
<li><a class="no-select" href="#">Support</a></li>
|
{% endfor %}
|
||||||
<li><a class="no-select" href="#">Random</a></li>
|
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
</aside>
|
</aside>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
@ -46,121 +46,8 @@ class WebView(BaseView):
|
|||||||
messages = [await self.app.services.channel_message.to_extended_dict(message) for message in await self.app.services.channel_message.offset(
|
messages = [await self.app.services.channel_message.to_extended_dict(message) for message in await self.app.services.channel_message.offset(
|
||||||
channel["uid"]
|
channel["uid"]
|
||||||
)]
|
)]
|
||||||
return await self.render_template("web.html", {"channel": channel,"user": user,"messages": messages})
|
channels = []
|
||||||
|
async for subscribed_channel in self.app.services.channel_member.find(user_uid=self.session.get("uid"), deleted_at=None, is_banned=False):
|
||||||
|
print("CHANNELL!!\n",flush=True)
|
||||||
|
channels.append(subscribed_channel)
|
||||||
|
return await self.render_template("web.html", {"channel": channel,"user": user,"messages": messages , "channels": channels})
|
||||||
async def get2(self):
|
|
||||||
|
|
||||||
if self.login_required and not self.session.get("logged_in"):
|
|
||||||
return web.HTTPFound("/")
|
|
||||||
|
|
||||||
channel = None
|
|
||||||
|
|
||||||
if not self.request.match_info.get("channel"):
|
|
||||||
channel = await self.app.services.channel.get(
|
|
||||||
tag="public",deleted_at=None
|
|
||||||
)
|
|
||||||
if channel:
|
|
||||||
return web.HTTPFound("/channel/{}.html".format(channel["uid"]))
|
|
||||||
if not channel:
|
|
||||||
print(self.request.match_info.get("channel"), flush=True)
|
|
||||||
channel = await self.app.services.channel.get(
|
|
||||||
uid=str(self.request.match_info.get("channel"))
|
|
||||||
)
|
|
||||||
if channel:
|
|
||||||
print(f'found {channel["uid"]} {channel["name"]}', flush=True)
|
|
||||||
if not channel:
|
|
||||||
|
|
||||||
name = "#" + str(self.request.match_info.get("channel")).lstrip("#")
|
|
||||||
|
|
||||||
print("TADAAA:",name, flush=True)
|
|
||||||
|
|
||||||
channel = await self.app.services.channel.get(
|
|
||||||
label=name,deleted_at=None
|
|
||||||
)
|
|
||||||
if not channel:
|
|
||||||
user = await self.app.services.user.get(uid=self.request.match_info.get("channel"))
|
|
||||||
if not user:
|
|
||||||
print("HIERRR EXIT\n",flush=True)
|
|
||||||
return web.HTTPNotFound()
|
|
||||||
|
|
||||||
print("FOUND USer: ",user['username'],flush=True)
|
|
||||||
own_channels = self.app.services.channel_member.find(
|
|
||||||
user_uid=self.session.get("uid"),deleted_at=None
|
|
||||||
)
|
|
||||||
user_channels = self.app.services.channel_member.find(
|
|
||||||
user_uid=user['uid'],deleted_at=None
|
|
||||||
)
|
|
||||||
found_channel = False
|
|
||||||
async for user_channel in user_channels:
|
|
||||||
if found_channel:
|
|
||||||
break
|
|
||||||
async for own_channel in own_channels:
|
|
||||||
if user_channel["channel_uid"] == own_channel["channel_uid"]:
|
|
||||||
channel = await self.app.services.channel.get(uid=user_channel["channel_uid"])
|
|
||||||
if channel['tag'] == 'dm':
|
|
||||||
found_channel = True
|
|
||||||
print("FOUND DM\n",flush=True)
|
|
||||||
break
|
|
||||||
channel = None
|
|
||||||
else:
|
|
||||||
print("Channel mistmatch!\n",flush=True)
|
|
||||||
if found_channel:
|
|
||||||
print(f"FOUND CHANNEL; {channel['uid']}\n",flush=True)
|
|
||||||
return web.HTTPFound("/channel/{}.html".format(channel["uid"]))
|
|
||||||
|
|
||||||
channel = await self.app.services.channel.create(
|
|
||||||
label="Direct Message",
|
|
||||||
created_by_uid=self.session.get("uid"),
|
|
||||||
tag="dm",
|
|
||||||
description="Direct Chat",
|
|
||||||
is_private=True,
|
|
||||||
is_listed=True
|
|
||||||
)
|
|
||||||
print(f"UID NEW CHANNELr: {channel['uid']}\n",flush=True)
|
|
||||||
channel_member_self = await self.app.services.channel_member.create(
|
|
||||||
channel_uid=channel['uid'],
|
|
||||||
user_uid=self.session.get("uid"),
|
|
||||||
is_moderator=True
|
|
||||||
)
|
|
||||||
print(f"UID NEW CHANNEL_MEMBER SELF: {channel_member_self['uid']}\n",flush=True)
|
|
||||||
channel_member_user = await self.app.services.channel_member.create(
|
|
||||||
channel_uid=channel['uid'],
|
|
||||||
user_uid=user["uid"],
|
|
||||||
is_moderator=True
|
|
||||||
)
|
|
||||||
print(f"UID NEW CHANNEL_MEMBER USER: {channel_member_user['uid']}\n",flush=True)
|
|
||||||
self.app.db.commit()
|
|
||||||
print(f"REDIRECT NAAR GOEDE: {channel['uid']}\n",flush=True)
|
|
||||||
return web.HTTPFound("/channel/{}.html".format(channel["uid"]))
|
|
||||||
|
|
||||||
if not channel:
|
|
||||||
print("NOT found!\n",flush=True)
|
|
||||||
return web.HTTPNotFound()
|
|
||||||
print(channel['uid'],":",self.session.get('uid'),flush=True)
|
|
||||||
from pprint import pprint as pp
|
|
||||||
pp(channel)
|
|
||||||
channel_member = await self.app.services.channel_member.get(
|
|
||||||
channel_uid=channel["uid"], user_uid=self.session.get("uid"),deleted_at=None
|
|
||||||
)
|
|
||||||
if not channel_member:
|
|
||||||
print("NO CHANNEL_MEMBER")
|
|
||||||
return web.HTTPNotFound()
|
|
||||||
|
|
||||||
print("HIER\n",flush=True)
|
|
||||||
print("UUID=",self.session.get("uid"),flush=True)
|
|
||||||
user = await self.app.services.user.get(uid=self.session.get("uid"))
|
|
||||||
if not user:
|
|
||||||
return web.HTTPNotFound()
|
|
||||||
|
|
||||||
if self.request.path.endswith(".json"):
|
|
||||||
return await super().get()
|
|
||||||
|
|
||||||
messages = [await self.app.services.channel_message.to_extended_dict(message) for message in await self.app.services.channel_message.offset(
|
|
||||||
channel["uid"]
|
|
||||||
)]
|
|
||||||
|
|
||||||
|
|
||||||
return await self.render_template("web.html", {"channel": channel_member,"user": user,"messages": messages})
|
|
Loading…
Reference in New Issue
Block a user