def leave_chat(): data = request.get_json() current_user = get_jwt_identity() chat = Chat.find_by_id(data["chat_id"]) if chat: pass
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})
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})
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)
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})
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})
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})
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})
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
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})
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
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}")