UPdate live type.
This commit is contained in:
parent
e76bf15135
commit
481d7e3ab6
@ -25,7 +25,6 @@ class ChatInputComponent extends NjetComponent {
|
||||
textarea = null;
|
||||
_value = "";
|
||||
lastUpdateEvent = null;
|
||||
expiryTimer = null;
|
||||
queuedMessage = null;
|
||||
lastMessagePromise = null;
|
||||
_leetSpeak = false;
|
||||
@ -248,7 +247,7 @@ textToLeetAdvanced(text) {
|
||||
this.user = user;
|
||||
});
|
||||
|
||||
this.liveType = this.getAttribute("live-type") !== "true";
|
||||
this.liveType = this.getAttribute("live-type") == "true";
|
||||
this.liveTypeInterval = parseInt(this.getAttribute("live-type-interval")) || 6;
|
||||
this.channelUid = this.getAttribute("channel");
|
||||
|
||||
@ -388,7 +387,7 @@ textToLeetAdvanced(text) {
|
||||
}
|
||||
}
|
||||
|
||||
async finalizeMessage(messageUid) {
|
||||
finalizeMessage(messageUid) {
|
||||
let value = this.value;
|
||||
value = this.replaceMentionsWithAuthors(value)
|
||||
if(this._leetSpeak){
|
||||
@ -396,18 +395,16 @@ textToLeetAdvanced(text) {
|
||||
}else if(this._leetSpeakAdvanced){
|
||||
value = this.textToLeetAdvanced(value);
|
||||
}
|
||||
await app.rpc.sendMessage(this.channelUid, value , true);
|
||||
app.rpc.sendMessage(this.channelUid, value , true);
|
||||
this.value = "";
|
||||
this.messageUid = null;
|
||||
this.queuedMessage = null;
|
||||
this.lastMessagePromise = null;
|
||||
}
|
||||
|
||||
|
||||
|
||||
updateFromInput(value) {
|
||||
if (this.expiryTimer) {
|
||||
clearTimeout(this.expiryTimer);
|
||||
this.expiryTimer = null;
|
||||
}
|
||||
|
||||
this.value = value;
|
||||
|
||||
@ -421,9 +418,6 @@ textToLeetAdvanced(text) {
|
||||
}
|
||||
|
||||
async sendMessage(channelUid, value, is_final) {
|
||||
if (!value.trim()) {
|
||||
return null;
|
||||
}
|
||||
return await app.rpc.sendMessage(channelUid, value, is_final);
|
||||
}
|
||||
}
|
||||
|
@ -267,17 +267,43 @@ class RPCView(BaseView):
|
||||
}
|
||||
return result
|
||||
|
||||
|
||||
async def _finalize_message_task(self, message_uid):
|
||||
await asyncio.sleep(7)
|
||||
self._finalize_task = None
|
||||
self._require_login()
|
||||
message = await self.services.channel_message.get(message_uid)
|
||||
if not message:
|
||||
return False
|
||||
|
||||
if message["user_uid"] != self.user_uid:
|
||||
raise Exception("Not allowed")
|
||||
|
||||
if not message["is_final"]:
|
||||
await self.services.chat.finalize(message["uid"])
|
||||
|
||||
return True
|
||||
|
||||
async def _queue_finalize_message(self, message_uid):
|
||||
if self._finalize_task:
|
||||
self._finalize_task.cancel()
|
||||
self._finalize_task = asyncio.create_task(
|
||||
self._finalize_message_task(message_uid)
|
||||
)
|
||||
|
||||
async def send_message(self, channel_uid, message, is_final=True):
|
||||
self._require_login()
|
||||
|
||||
#if not is_final:
|
||||
# check_message = await self.services.channel_message.get(channel_uid=channel_uid, user_uid=self.user_uid,is_final=False)
|
||||
# if check_message:
|
||||
# return await self.update_message_text(check_message["uid"], message)
|
||||
is_final = True
|
||||
if not is_final:
|
||||
check_message = await self.services.channel_message.get(channel_uid=channel_uid, user_uid=self.user_uid,is_final=False)
|
||||
if check_message:
|
||||
await self._queue_finalize_message(check_message["uid"])
|
||||
return await self.update_message_text(check_message["uid"], message)
|
||||
|
||||
message = await self.services.chat.send(
|
||||
self.user_uid, channel_uid, message, is_final
|
||||
)
|
||||
await self._queue_finalize_message(message["uid"])
|
||||
|
||||
return message["uid"]
|
||||
|
||||
@ -326,8 +352,10 @@ class RPCView(BaseView):
|
||||
return True
|
||||
|
||||
async def update_message_text(self, message_uid, text):
|
||||
|
||||
async with self.app.no_save():
|
||||
self._require_login()
|
||||
|
||||
message = await self.services.channel_message.get(message_uid)
|
||||
if message["user_uid"] != self.user_uid:
|
||||
raise Exception("Not allowed")
|
||||
|
Loading…
Reference in New Issue
Block a user