Esempio n. 1
0
 def new_message_object(self, sender, room_name, message_content):
     message = Message()
     if sender is not None:
         message.sender = sender
     message.room_name = room_name
     message.content = message_content
     message.created_at = now()
     return message
Esempio n. 2
0
    async def receive(self, text_data):
        import datetime
        from .tasks import execute
        text_data_json = json.loads(text_data)
        print(text_data)
        message = text_data_json['message']
        if len(message) == 0:
            return False

        if "from_bot" in text_data_json:
            username = "******"
        else:
            username = self.username

        if message[0] == '/' and '=' in message:
            command = message.split('=')[0]
            parameter = message.split('=')[1]
            execute.s(command, parameter,
                      self.room_group_name).apply_async(serializer="pickle")
        currentDT = datetime.datetime.now()
        datetime = currentDT.strftime("%Y-%m-%d %H:%M:%S")
        # Send message to room group
        msg = Message()
        msg.message = message
        if not "from_bot" in text_data_json:
            msg.user = self.user
        msg.username = self.username
        msg.room_name = self.room_name
        msg.room_group_name = self.room_group_name
        msg.save()
        await self.channel_layer.group_send(
            self.room_group_name, {
                'type': 'chat_message',
                'message': message,
                'username': username,
                'datetime': datetime
            })