This commit is contained in:
retoor 2025-06-25 17:54:12 +02:00
parent 481d7e3ab6
commit 3130933ea4
2 changed files with 17 additions and 8 deletions

View File

@ -80,7 +80,7 @@ class MessageList extends HTMLElement {
const html = receivedHtml.querySelector(".text").innerHTML; const html = receivedHtml.querySelector(".text").innerHTML;
const textElement = messageDiv.querySelector(".text"); const textElement = messageDiv.querySelector(".text");
textElement.innerHTML = html; textElement.innerHTML = html;
textElement.style.display = message.text == "" ? "none" : "block"; messageDiv.style.display = message.text == "" ? "none" : "block";
if(scrollToBottom) if(scrollToBottom)
this.scrollToBottom(true) this.scrollToBottom(true)
} }

View File

@ -268,22 +268,26 @@ class RPCView(BaseView):
return result return result
async def _finalize_message_task(self, message_uid): async def _finalize_message_task(self,message_uid):
await asyncio.sleep(7) await asyncio.sleep(7)
self._finalize_task = None self._finalize_task = None
self._require_login() message = await self.services.channel_message.get(message_uid, is_final=False)
message = await self.services.channel_message.get(message_uid)
if not message: if not message:
return False return False
if message["user_uid"] != self.user_uid: if message["user_uid"] != self.user_uid:
raise Exception("Not allowed") raise Exception("Not allowed")
if message["is_final"]:
return True
if not message["is_final"]: if not message["is_final"]:
await self.services.chat.finalize(message["uid"]) await self.services.chat.finalize(message["uid"])
return True return True
async def _queue_finalize_message(self, message_uid): async def _queue_finalize_message(self, message_uid):
if self._finalize_task: if self._finalize_task:
self._finalize_task.cancel() self._finalize_task.cancel()
@ -293,13 +297,18 @@ class RPCView(BaseView):
async def send_message(self, channel_uid, message, is_final=True): async def send_message(self, channel_uid, message, is_final=True):
self._require_login() self._require_login()
message = message.strip()
if not is_final: if not is_final:
if_final = False
check_message = await self.services.channel_message.get(channel_uid=channel_uid, user_uid=self.user_uid,is_final=False) check_message = await self.services.channel_message.get(channel_uid=channel_uid, user_uid=self.user_uid,is_final=False)
if check_message: if check_message:
await self._queue_finalize_message(check_message["uid"]) await self._queue_finalize_message(check_message["uid"])
return await self.update_message_text(check_message["uid"], message) return await self.update_message_text(check_message["uid"], message)
message = await self.services.chat.send( message = await self.services.chat.send(
self.user_uid, channel_uid, message, is_final self.user_uid, channel_uid, message, is_final
) )