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