Most recent users.
This commit is contained in:
parent
973afa0cc2
commit
96629113f1
src/snek
@ -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