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