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: | ||||
|                 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): | ||||
|         model = await self.get(is_listed=True, tag="public") | ||||
|         is_moderator = False | ||||
|  | ||||
| @ -33,11 +33,9 @@ | ||||
|     <aside class="sidebar"> | ||||
|       <h2 class="no-select">Chat Rooms</h2> | ||||
|       <ul> | ||||
|         <li><a class="no-select" href="#">General</a></li> | ||||
|         <li><a class="no-select" href="#">Development</a></li> | ||||
|         <li><a class="no-select" href="#">Support</a></li> | ||||
|         <li><a class="no-select" href="#">Random</a></li> | ||||
|         | ||||
|         {% for channel in channels %} | ||||
|         <li><a class="no-select" href="/web/{{channel['channel_uid']}}.html">{{channel['label']}}</a></li> | ||||
|         {% endfor %} | ||||
|       </ul> | ||||
|     </aside> | ||||
|     {% 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( | ||||
|             channel["uid"] | ||||
|         )] | ||||
|         return await self.render_template("web.html", {"channel": channel,"user": user,"messages": messages}) | ||||
| 
 | ||||
|          | ||||
| 
 | ||||
| 
 | ||||
|     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}) | ||||
|         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}) | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user