Exemple #1
0
def handleMessage(data):
    # data: contain {  message: { _id: uuid4, text: "", user: {_id: "", name: "", avatar: ""}, createdAt: "" }, conversationId: "1", receiverId: "" }
    # convert the data to python Dictionary
    data = json.loads(data)
    # print("data['receiverId'] ", data['receiverId'])
    # send the new message to conversation
    print("message ", data['message'], " conversationId ",
          data['conversationId'])
    emit("message", data['message'], room=data['conversationId'])

    # set the sender
    # try to get user from db.
    try:
        sender = User.objects.get(userId=data['message']['user']['_id'])
        print("User in message from db", json.loads(sender.to_json()))
    # if user does not exist.
    except User.DoesNotExist:
        sender = User(userId=data['message']['user']['_id'],
                      name=data['message']['user']['name'],
                      avatar=data['message']['user']['avatar']).save()
        print("\n\n\nsender: ", sender, "\nchat.py L:156")

    # get the conversation
    conversation = Conversation.objects.get(
        conversationId=str(data['conversationId']))

    # set the new message
    newMessage = Message(messageId=data['message']['_id'],
                         createdAt=str(data['message']['createdAt']),
                         text=data['message']['text'],
                         user=sender)  # , conversationRef=conversation)
    print("\n\n\nnewMessage: ", newMessage.to_json(), "\nchat.py L:160")

    print("\n\n\nnewMessage: ", newMessage, "\nchat.py L:162")

    # save the chages on the database
    # newMessage.save()
    # add the new message to messages in the conversation
    conversation.addMessage(newMessage)
    # set readStatus
    # conversation.updateReadStatus(userId=sender.userId)

    conversation.save()
    print("new message to conversationId ", str(data['conversationId']))
Exemple #2
0
    def post(self, conversation_id):
        conversation = Conversation.objects.get(id=conversation_id)
        query = Message.objects()
        character = Character.objects.get(id=conversation.character.id)

        query = Knowledge.objects()

        knowledges = Knowledge.objects(character=conversation.character.id)

        ramdom_message = []

        for i in range(0,random.randint(1, 10)):
            ramdom_message.append(knowledges[random.randrange(len(knowledges))].content+' ')

        message =  Message()
        message.content = ''.join(ramdom_message).strip()
        message.conversation = conversation
        message.sender_character = True
        message.save()
        return Response(message.to_json(), mimetype="application/json", status=200)