Added channel list.
This commit is contained in:
parent
3baa6e53df
commit
37da903936
@ -37,6 +37,19 @@ class ChannelMemberService(BaseService):
|
||||
async for model in self.query("SELECT channel_member.* FROM channel_member INNER JOIN channel ON (channel.uid = channel_member.channel_uid and channel.tag = 'dm') INNER JOIN channel_member AS channel_member2 ON(channel_member2.channel_uid = channel.uid AND channel_member2.user_uid = :to_user) WHERE channel_member.user_uid=:from_user " ,dict(from_user=from_user, to_user=to_user)):
|
||||
return model
|
||||
return None
|
||||
|
||||
async def get_other_dm_user(self, channel_uid, user_uid):
|
||||
channel_member = await self.get(channel_uid=channel_uid, user_uid=user_uid)
|
||||
channel = await self.services.channel.get(uid=channel_member['channel_uid'])
|
||||
if channel["tag"] != "dm":
|
||||
print("NONT!\n", flush=True)
|
||||
return None
|
||||
print("YEAHH",flush=True)
|
||||
async for model in self.services.channel_member.find(channel_uid=channel_uid):
|
||||
print("huh!!!",model['uid'],flush=True)
|
||||
if model["uid"] != channel_member['uid']:
|
||||
print("GOOOD!!",flush=True)
|
||||
return await self.services.user.get(uid=model["user_uid"])
|
||||
|
||||
async def create_dm(self,channel_uid, from_user_uid, to_user_uid):
|
||||
result = await self.create(channel_uid, from_user_uid)
|
||||
|
@ -54,8 +54,10 @@ class ChannelMessageService(BaseService):
|
||||
|
||||
async def offset(self, channel_uid, offset=0):
|
||||
results = []
|
||||
|
||||
async for model in self.query("SELECT * FROM channel_message WHERE channel_uid=:channel_uid ORDER BY created_at DESC LIMIT 60 OFFSET :offset",dict(channel_uid=channel_uid, offset=offset)):
|
||||
results.append(model)
|
||||
try:
|
||||
async for model in self.query("SELECT * FROM channel_message WHERE channel_uid=:channel_uid ORDER BY created_at DESC LIMIT 60 OFFSET :offset",dict(channel_uid=channel_uid, offset=offset)):
|
||||
results.append(model)
|
||||
except:
|
||||
pass
|
||||
results.sort(key=lambda x: x['created_at'])
|
||||
return results
|
||||
|
@ -34,7 +34,7 @@
|
||||
<h2 class="no-select">Chat Rooms</h2>
|
||||
<ul>
|
||||
{% for channel in channels %}
|
||||
<li><a class="no-select" href="/web/{{channel['channel_uid']}}.html">{{channel['label']}}</a></li>
|
||||
<li><a class="no-select" href="/channel/{{channel['uid']}}.html">{{channel['name']}}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</aside>
|
||||
|
@ -48,8 +48,8 @@
|
||||
|
||||
function updateLayout() {
|
||||
const messagesContainer = document.querySelector(".chat-messages");
|
||||
messagesContainer.scrollTop = messagesContainer.scrollHeight + 1000;
|
||||
|
||||
//messagesContainer.scrollTop = messagesContainer.scrollHeight + 1000;
|
||||
|
||||
updateTimes();
|
||||
let previousUser = null;
|
||||
document.querySelectorAll(".message").forEach((message) => {
|
||||
@ -60,6 +60,9 @@
|
||||
message.classList.remove("switch-user");
|
||||
}
|
||||
});
|
||||
const lastMessage = messagesContainer.querySelector(".message:last-child");
|
||||
lastMessage.scrollIntoView({ inline: "nearest" });
|
||||
|
||||
}
|
||||
|
||||
setInterval(updateTimes, 1000);
|
||||
@ -81,7 +84,7 @@
|
||||
updateLayout();
|
||||
setTimeout(()=>{
|
||||
updateLayout()
|
||||
},200)
|
||||
},1000)
|
||||
});
|
||||
|
||||
initInputField(document.querySelector("textarea"));
|
||||
|
@ -48,6 +48,13 @@ class WebView(BaseView):
|
||||
)]
|
||||
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)
|
||||
item = {}
|
||||
other_user = await self.app.services.channel_member.get_other_dm_user(subscribed_channel["channel_uid"], self.session.get("uid"))
|
||||
if other_user:
|
||||
item["name"] = other_user["nick"]
|
||||
item["uid"] = other_user["uid"]
|
||||
else:
|
||||
item["name"] = subscribed_channel["label"]
|
||||
item["uid"] = subscribed_channel["channel_uid"]
|
||||
channels.append(item)
|
||||
return await self.render_template("web.html", {"channel": channel,"user": user,"messages": messages , "channels": channels})
|
Loading…
Reference in New Issue
Block a user