Esempio n. 1
0
    def SendData(self, data: chat.Data, context):
        if data.connect is True:
            if doesSessionExist(data, self.reqMap) is True:
                return chat.Empty()
            self.chats[data.sender].appendData(data)

        send_to = [data.receiver]

        if data.group is not '':
            send_to = server_config['groups'][data.group]

        # Add it to the chat queue
        for usr in send_to:
            if usr not in self.chats:
                self.chats.update({usr: UserChat()})

        try:
            for usr in send_to:
                if usr == data.sender:
                    continue
                # self.chats[data.sender].applyRateLimit()
                data.receiver = usr
                self.chats[usr].appendData(data)
        except:
            print('Too many requests...message not sent.')
            pass
        return chat.Empty()
Esempio n. 2
0
 def SendMessage(self, request, context):
     response = chat.ChatRequest()
     response.name = request.name
     response.message = request.message
     print(f"{request.name}: {request.message}")
     self.messages.append(response)
     return chat.Empty()
Esempio n. 3
0
 def receive_message(self, chat_stub):
     '''
     This method will be ran in a separate thread as the main/ui thread, because the for-in call is blocking
     when waiting for new messages
     '''
     for message in chat_stub.ReceiveMsg(chat.Empty()):
         print("[{}] {}".format(self.encrypt.decrypt(message.name), self.encrypt.decrypt(message.note)))
Esempio n. 4
0
    def RefreshTabuleiro(self):
        if not self.stub:
            return None

        print("[REFRESH TABULEIRO]")
        for message in self.stub.RefreshTabuleiro(chat_pb2.Empty()):
            if self.ui != None:
                self.ui.renderTabuleiro()
Esempio n. 5
0
 def TabuleiroAtual(self):
     print("[TABULEIRO ATUAL]")
     response = self.stub.TabuleiroAtual(chat_pb2.Empty())
     tabuleiro = [
         response.line1, response.line2, response.line3, response.line4,
         response.line5, response.line6, response.line7, response.line8
     ]
     return tabuleiro
Esempio n. 6
0
 def PostMessage(self, request, context):
     logging.info('PostMessage(): nick="{0}", text="{1}"'\
         .format(request.nick, request.text))
     with self.lock:
         for queue in self.queues:
             message = chat_pb2.Message(nick=request.nick,
                                        text=request.text)
             queue.put(message)
     return chat_pb2.Empty()
Esempio n. 7
0
    def ChangeTabuleiro(self, request, context):
        print("[CHANGE TABULEIRO]")
        pos = request.pos
        color = request.cor
        self.tabuleiro[pos[0]][pos[1]] = color

        self.refresh.append(chat_pb2.Empty())
        self.refresh_index = 0
        return chat_pb2.Status(status=True)
Esempio n. 8
0
 def _get_messages(self):
     empty = chat_pb2.Empty()
     while self.running:
         self.messages = self.stub.GetMessages(empty)
         try:
             for message in self.messages:
                 self.recv_queue.put(message)
         except grpc.RpcError as e:
             if not e.cancelled():
                 logging.error('RPC error: {0}'.format(e))
     self.messages = None
Esempio n. 9
0
    def receive_messages(self):
        if not self.stub:
            return None

        print("[RECEIVE MESSAGE]")
        for message in self.stub.ReceiveMessage(chat_pb2.Empty()):
            print("Chat client received: " + message.name + " " +
                  message.message)
            if self.ui != None:
                self.ui.renderChatMessages(message.name + " " +
                                           message.message)
Esempio n. 10
0
 def SendMessage(self, request: chat.Message, context):
     message = self.message_decrypted(request)
     if (self.encrypt.decrypt(message.to) == 'server'):
         if (self.encrypt.decrypt(message.method) == 'add_user'):
             self.user_stub.AddUser(message.user.name)
         elif (self.encrypt.decrypt(message.method) == 'remove_user'):
             self.user_stub.RemoveUser(message.user.name)
         elif (self.encrypt.decrypt(message.method) == 'get_users'):
             self.user_stub.GetUsers()
         print('[{}] {}'.format(message.user.name, message.user.note))
     return chat.Empty()
Esempio n. 11
0
 def get_users(self, chat_stub, user_stub):
     self.userslist = []
     for _usr in user_stub.GetUsers(chat.Empty()):
         self.userslist.append(self.encrypt.decrypt(_usr.name))
     message = chat.Message()
     message.name = self.encrypt.encrypt('Spartan')
     print_string = 'User list:'
     for usr in self.userslist:
         print_string += '{},'.format(usr)
     message.note = self.encrypt.encrypt(print_string[:-1])
     chat_stub.SendMsg(message)
Esempio n. 12
0
 def SendNote(self, request: chat_pb2.ChatNote, context):
     
     self.chats.append(request)  
     print("[{}] {} {}".format(request.name, request.message, request.receiver))
     # Add it to the chat history
     self.chats_message.append(request.message)
     self.receiver.append(request.receiver)
     self.LruDict.append(request.message)
     if len(self.LruDict)>5:
         self.LruDict.pop()
     print(self.LruDict)
     return chat_pb2.Empty()
Esempio n. 13
0
    def SendMsg(self, request: chat.Message, context):
        """
        This method is called when a clients sends a Note to the server.

        :param request:
        :param context:
        :return:
        """
        print("[{}] {}".format(self.encrypt.decrypt(request.name),
                               self.encrypt.decrypt(request.note)))
        # Add it to the chat history
        self.chats.append(request)
        return chat.Empty()
Esempio n. 14
0
    def SendNote(self, request: chat.Note, context):
        """
        This method is called when a clients sends a Note to the server.

        :param request:
        :param context:
        :return:
        """
        self.sending.publish(
            'chat',
            json.dumps({
                'message': request.message,
                'user': request.name,
                'timestamp': str(datetime.datetime.now())
            }))
        return chat.Empty()
Esempio n. 15
0
	def __listen_for_messages(self):

		for note in self.conn.ChatStream(chat.Empty()):
			print("R[{}] {}".format(note.name, note.message))
			self.chat_list.insert(END, "[{}] {}\n".format(note.name, note.message))
Esempio n. 16
0
 def TurnoAtual(self):
     print("[TURNO ATUAL]")
     response = self.stub.TurnoAtual(chat_pb2.Empty())
     return response.cor
Esempio n. 17
0
 def run(self, user_stub, chat_stub):
     for message in chat_stub.ReceiveMsg(chat.Empty()):
         if(message.to == 'client'):
             if(message.method == 'list_users'):
Esempio n. 18
0
 def recive(self):
     for note in self.conn.ChatStream(chat.Empty(
     )):  # this line will wait for new messages from the server!
         if note.name and note.name != self.username:
             print("{} : {}\n".format(note.name, note.message))
Esempio n. 19
0
 def SendMessage(self, request, context):
     print("[SEND MESSAGE]")
     self._history.append(request)
     self.last_index = 0
     return chat_pb2.Empty()
Esempio n. 20
0
 def cores_disponiveis(self):
     print("[CORES DISPONIVEIS]")
     response = self.stub.CoresDisponiveis(chat_pb2.Empty())
     return response.data