def run(sc, parameters): # pprint(parameters) user_id = sc_to_user_id[sc] sender = database.get_user(user_id) # target_id在后面填入,对于发送方和接收方不一样 message = { "message": parameters['message'], 'sender_id': user_id, 'sender_name': sender['username'], 'target_type': parameters['target_type'], 'time': int(round(time.time() * 1000)) } if parameters['target_type'] == 0: # 私聊 if not database.is_friend_with(user_id, parameters['target_id']): sc.send(MessageType.general_failure, '还不是好友') return # 给发送方发回执 message['target_id'] = parameters['target_id'] user_id_to_sc[user_id].send(MessageType.on_new_message, message) database.add_to_chat_history(user_id, message['target_id'], message['target_type'], _serialize_dict(message), True) # 给接收方发消息,存入聊天记录 message['target_id'] = user_id sent = False if parameters['target_id'] in user_id_to_sc: sent = True user_id_to_sc[parameters['target_id']].send( MessageType.on_new_message, message) database.add_to_chat_history(parameters['target_id'], message['target_id'], message['target_type'], _serialize_dict(message), sent) if parameters['target_type'] == 1: # 群聊 message['target_id'] = parameters['target_id'] if not database.in_room(user_id, parameters['target_id']): sc.send(MessageType.general_failure, '还没有加入该群') return users_id = database.get_room_members_id(parameters['target_id']) for user_id in users_id: sent = False if user_id in user_id_to_sc: user_id_to_sc[user_id].send(MessageType.on_new_message, message) sent = True database.add_to_chat_history(user_id, message['target_id'], message['target_type'], _serialize_dict(message), sent)
def run(sc, parameters): user_id = server.memory.sc_to_user_id[sc] if not database.in_room(user_id, parameters): sc.send(MessageType.general_failure, '不在群里') return sc.send(MessageType.query_room_users_result, [database.get_room_members(parameters), parameters])
def run(sc, parameters): user_id = server.memory.sc_to_user_id[sc] if database.in_room(user_id, parameters): sc.send(MessageType.general_failure, '已经在群里了') return room = database.get_room(parameters) if room is None: sc.send(MessageType.general_failure, '群不存在') return database.add_to_room(user_id, parameters) sc.send(MessageType.contact_info, add_target_type(room, 1))