Most recent users.
This commit is contained in:
		
							parent
							
								
									973afa0cc2
								
							
						
					
					
						commit
						96629113f1
					
				| @ -67,6 +67,10 @@ class ChannelService(BaseService): | |||||||
|         await self.services.channel_member.create_dm(channel["uid"], user1, user2) |         await self.services.channel_member.create_dm(channel["uid"], user1, user2) | ||||||
|         return channel |         return channel | ||||||
| 
 | 
 | ||||||
|  |     async def get_recent_users(self, channel_uid): | ||||||
|  |         async for user in self.query("SELECT user.uid, user.username,user.color,user.last_ping,user.nick FROM channel_member INNER JOIN user ON user.uid = channel_member.user_uid WHERE channel_uid=:channel_uid ORDER BY last_ping DESC LIMIT 30", {"channel_uid": channel_uid}): | ||||||
|  |             yield user | ||||||
|  | 
 | ||||||
|     async def get_users(self, channel_uid): |     async def get_users(self, channel_uid): | ||||||
|         async for channel_member in self.services.channel_member.find( |         async for channel_member in self.services.channel_member.find( | ||||||
|             channel_uid=channel_uid, |             channel_uid=channel_uid, | ||||||
|  | |||||||
| @ -56,7 +56,7 @@ class ChatInputComponent extends HTMLElement { | |||||||
|          |          | ||||||
|     } |     } | ||||||
|  extractMentions(text) { |  extractMentions(text) { | ||||||
|   const regex = /@([a-zA-Z0-9_]+)/g; |   const regex = /@([a-zA-Z0-9_-]+)/g; | ||||||
|   const mentions = []; |   const mentions = []; | ||||||
|   let match; |   let match; | ||||||
| 
 | 
 | ||||||
| @ -81,7 +81,6 @@ class ChatInputComponent extends HTMLElement { | |||||||
|             distance += 10         |             distance += 10         | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|       console.warn([ mention, author, distance ]); |  | ||||||
|       if (distance < minDistance) { |       if (distance < minDistance) { | ||||||
|         minDistance = distance; |         minDistance = distance; | ||||||
|         closestAuthor = author; |         closestAuthor = author; | ||||||
| @ -153,7 +152,7 @@ levenshteinDistance(a, b) { | |||||||
|       parseInt(this.getAttribute("live-type-interval")) || 3; |       parseInt(this.getAttribute("live-type-interval")) || 3; | ||||||
|     this.channelUid = this.getAttribute("channel"); |     this.channelUid = this.getAttribute("channel"); | ||||||
|      |      | ||||||
|     app.rpc.getUsers(this.channelUid).then(users=>{ |     app.rpc.getRecentUsers(this.channelUid).then(users=>{ | ||||||
|         this.users = users     |         this.users = users     | ||||||
|     }) |     }) | ||||||
|       this.messageUid = null; |       this.messageUid = null; | ||||||
|  | |||||||
| @ -327,6 +327,19 @@ class RPCView(BaseView): | |||||||
|             await self.ws.send_json(obj) |             await self.ws.send_json(obj) | ||||||
|             return "noresponse" |             return "noresponse" | ||||||
| 
 | 
 | ||||||
|  |         async def get_recent_users(self, channel_uid): | ||||||
|  |             self._require_login() | ||||||
|  | 
 | ||||||
|  |             return [ | ||||||
|  |                 { | ||||||
|  |                     "uid": record["uid"], | ||||||
|  |                     "username": record["username"], | ||||||
|  |                     "nick": record["nick"], | ||||||
|  |                     "last_ping": record["last_ping"], | ||||||
|  |                 } | ||||||
|  |                 async for record in self.services.channel.get_recent_users(channel_uid) | ||||||
|  |             ] | ||||||
|  | 
 | ||||||
|         async def get_users(self, channel_uid): |         async def get_users(self, channel_uid): | ||||||
|             self._require_login() |             self._require_login() | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user