Ejemplo n.º 1
0
def leave_chat():
    data = request.get_json()
    current_user = get_jwt_identity()

    chat = Chat.find_by_id(data["chat_id"])
    if chat:
        pass
Ejemplo n.º 2
0
def get_unread_dialogs_count():
    if not 'signed_user' in session:
        return json.dumps({
            'answer': False,
            'details': 'You are not signed in'
        })

    User().set_online(session['signed_user'])
    res = Chat().get_unread_chats(session['signed_user'])
    return json.dumps({'answer': True, 'dialogs_count': res})
Ejemplo n.º 3
0
def like():
    if not 'signed_user' in session:
        return json.dumps({
            'answer': False,
            'details': 'You are not signed in'
        })
    if session['registration_ended'] == 0:
        return json.dumps({
            'answer': False,
            'details': 'Your registration is not ended'
        })

    username = request.args.get('username')
    User().set_online(session['signed_user'])
    if not (User().is_liked(session['signed_user'], username)):
        User().like(session['signed_user'], username)
        Chat().create_dialog(session['signed_user'], username)
        Chat().new_message(session['signed_user'], username,
                           "Привет, теперь мы друзья!")
    return json.dumps({'answer': True})
Ejemplo n.º 4
0
def add_new_chat(is_group_chat, name, unread, key, avatar, user_id):
    add_value(
        Chat(is_group_chat=is_group_chat,
             name=name,
             unread=unread,
             key=key,
             avatar=avatar,
             user_id=user_id))
    commit_value()
    email = get_email(user_id)
    name_chat_got = get_name(user_id)
    send_mail_on_chat.delay(name_chat_got, name, email)
Ejemplo n.º 5
0
def get_messages():
    if not 'signed_user' in session:
        return json.dumps({
            'answer': False,
            'details': 'You are not signed in'
        })
    if session['registration_ended'] == 0:
        return json.dumps({
            'answer': False,
            'details': 'Your registration is not ended'
        })

    username = request.args.get('username')
    last = request.args.get('last')
    if (last == -1):
        messages = Chat().get_messages(session['signed_user'], username)
    else:
        messages = Chat().get_new_messages(session['signed_user'], username,
                                           last)

    unread = Chat().get_unread_by_friend(session['signed_user'], username)

    User().set_online(session['signed_user'])
    return json.dumps({'answer': True, 'messages': messages, 'unread': unread})
Ejemplo n.º 6
0
def get_my_chats():
    if not 'signed_user' in session:
        return json.dumps({
            'answer': False,
            'details': 'You are not signed in'
        })
    if session['registration_ended'] == 0:
        return json.dumps({
            'answer': False,
            'details': 'Your registration is not ended'
        })

    User().set_online(session['signed_user'])
    res = Chat().get_my_chats(session['signed_user'])
    return json.dumps({'answer': True, 'chats': res})
Ejemplo n.º 7
0
def new_message():
    if not 'signed_user' in session:
        return json.dumps({
            'answer': False,
            'details': 'You are not signed in'
        })
    if session['registration_ended'] == 0:
        return json.dumps({
            'answer': False,
            'details': 'Your registration is not ended'
        })

    form = NewMessageForm()
    Chat().new_message(session['signed_user'], form.friend.data,
                       form.curr_message.data)

    User().set_online(session['signed_user'])
    return json.dumps({'answer': True})
Ejemplo n.º 8
0
def unlike():
    if not 'signed_user' in session:
        return json.dumps({
            'answer': False,
            'details': 'You are not signed in'
        })
    if session['registration_ended'] == 0:
        return json.dumps({
            'answer': False,
            'details': 'Your registration is not ended'
        })

    username = request.args.get('username')
    User().set_online(session['signed_user'])
    if (User().is_liked(session['signed_user'], username)):
        User().unlike(session['signed_user'], username)
        Chat().delete_dialog(session['signed_user'], username)
    return json.dumps({'answer': True})
Ejemplo n.º 9
0
def send_message():
    data = request.get_json()
    current_user = get_jwt_identity()
    time_stamp = datetime.utcnow()

    sender = User.find_by_email(current_user["email"])
    chat = Chat.find_by_id(data.get("chat_id"))
    if chat:
        if sender in chat.members:
            pending_msg = PendingMsg(_id=ObjectId(),
                                     sender=sender,
                                     chat_id=chat.id,
                                     body=data["body"],
                                     time_stamp=time_stamp)
            response = {
                "data": {
                    "_id": str(pending_msg._id),
                    "sender": {
                        "email": sender.email,
                        "user_name": sender.user_name
                    },
                    "chat_id": str(chat.id),
                    "body": pending_msg.body,
                    "time_stamp": int(time_stamp.timestamp())
                }
            }
            for user in chat.members:
                user.pending_msgs.append(pending_msg)
                user.save()
                if user.sid and user != sender:
                    emit("new message",
                         response,
                         namespace=NAMESPACE,
                         room=user.sid)
        else:
            response = {"error": "you aren't a part of this chat."}
    else:
        response = {
            "error": "couldn't find the chat you're trying to send to."
        }

    return response
Ejemplo n.º 10
0
def get_chat_with():
    if not 'signed_user' in session:
        return json.dumps({
            'answer': False,
            'details': 'You are not signed in'
        })
    if session['registration_ended'] == 0:
        return json.dumps({
            'answer': False,
            'details': 'Your registration is not ended'
        })

    user = request.args.get('username')

    res = Chat().get_chat_with(session['signed_user'], user)
    if res == False:
        return json.dumps({
            'answer': False,
            'details': 'No chat with this user'
        }), 404
    return json.dumps({'answer': True, 'user_info': res})
Ejemplo n.º 11
0
def add_chat_service(data):
    """
    发消息
    :param data:{
        # "send_id": "",
        "get_id": "",
        "content": ""
    }
    :return:
    """
    session = g.session
    data["send_id"] = get_user_info()["user_id"]
    if int(data["send_id"]) == int(data["get_id"]):
        return 2
    chat = Chat()
    for key, value in data.items():
        setattr(chat, key, value)
    # 标记接受者新消息
    sql_result = session.query(ChatList).filter(
        and_(
            ChatList.get_id == data["get_id"],
            ChatList.send_id == data["send_id"]
        )

    ).one_or_none()
    if sql_result:
        sql_result.status = 0
    else:
        chat_list = ChatList()
        chat_list.send_id = data["send_id"]
        chat_list.get_id = data["get_id"]
        chat_list.status = 0
        session.add(chat_list)
    session.add(chat)
    session.commit()
    return True
Ejemplo n.º 12
0
async def chat_migrate(message: types.Message, chat: Chat):
    old_id = message.chat.id
    new_id = message.migrate_to_chat_id
    chat.chat_id = new_id
    await chat.save()
    logger.info(f"Migrate chat from {old_id} to {new_id}")