def getFriendsList(): result = dict( type=ProtocolTypes.GetFriendsList, result=ResultCodes.Success) if request.form['data']: got_data = json.loads(request.form['data']) from_keys = ['session_id'] if checkContainKeys(from_keys, got_data): result['result'], got_user = checkSessionId(got_data['session_id']) if got_user: find_friends = Friend.query.filter_by( user_id=got_user.id, requested=True, accepted=True).all() if find_friends: friends_info = list() for find_friend in find_friends: got_friend = User.query.filter_by( id=find_friend.friend_id).first() if got_friend: friend_level = -1 if not find_friend.friend_id == 1: find_friend_stat = Stat.query.filter_by( user_id=find_friend.friend_id).first() if find_friend_stat: friend_level = find_friend_stat.level friend_character_info = dict() if not find_friend.friend_id == 1: find_friend_character = Character.query.filter_by( user_id=find_friend.friend_id).first() if find_friend_character: friend_character_info = dict( color_r=find_friend_character.color_r, color_g=find_friend_character.color_g, color_b=find_friend_character.color_b, gender=find_friend_character.gender, body_type=find_friend_character.body_type, hair_type=find_friend_character.hair_type, cloak_type=find_friend_character.cloak_type, face_type=find_friend_character.face_type, weapon_type=find_friend_character.weapon_type, ) friend_costume_info = list() if not find_friend.friend_id == 1: find_friend_costume = WornCostume.query.filter_by( user_id=find_friend.friend_id).first() if find_friend_costume: friend_costume_info = json.loads(find_friend_costume.costumes) can_send_friendship = True can_receive_friendship = True sent_friend = Friend.query.filter_by(user_id=find_friend.friend_id, friend_id=got_user.id).first() if sent_friend: if sent_friend.friendship_sent_date: if sent_friend.friendship_sent_date == datetime.date.today(): can_send_friendship = False if not find_friend.friendship_sent_date: can_receive_friendship = False else: if find_friend.friendship_sent_date != datetime.date.today(): can_receive_friendship = False else: if find_friend.friendship_received_date == datetime.date.today(): can_receive_friendship = False else: result['result'] = ResultCodes.InputParamError tmp_friend_info = dict( user_id=got_friend.id, name=got_friend.name, can_send_friendship=can_send_friendship, can_receive_friendship=can_receive_friendship, level=friend_level, character=friend_character_info, costume=friend_costume_info, ) if find_friend.friend_id == 1 or not got_friend.login_date: tmp_friend_info['last_login'] = datetime.datetime.now().strftime("%Y,%m,%d") tmp_friend_info['last_login_ago'] = getDaysAgoFromNow(datetime.datetime.now()) else: tmp_friend_info['last_login'] = got_friend.login_date.strftime("%Y,%m,%d") tmp_friend_info['last_login_ago'] = getDaysAgoFromNow(got_friend.login_date) friends_info.append(tmp_friend_info) result['friends'] = friends_info else: result['result'] = ResultCodes.NoData else: result['result'] = ResultCodes.InputParamError else: result['result'] = ResultCodes.AccessError return str(json.dumps(result))
def getMailList(): result = dict( type=ProtocolTypes.GetMailList, result=ResultCodes.Success ) if request.form['data']: got_data = json.loads(request.form['data']) from_keys = ['session_id'] if checkContainKeys(from_keys, got_data): result['result'], got_user = checkSessionId(got_data['session_id']) if got_user: got_mails = Mail.query.filter_by( to_user_id=got_user.id).all() if got_mails: result['mails'] = list() for got_mail in got_mails: temp_has_gift = 'Y' if not got_mail.items or got_mail.items == '': temp_has_gift = 'N' temp_mail_type = 'N' if got_mail.from_user_id == lst_from_system_mails[0]: temp_mail_type = 'S' temp_mail_system_name = u"시스템" temp_mail_title = u"시스템으로부터의 메일" if got_mail.from_user_id == lst_from_system_mails[1]: temp_mail_type = 'P' temp_mail_system_name = u"해적선" temp_mail_title = u"해적선으로부터의 메일" if not got_mail.from_user_id in lst_from_system_mails: got_friend = User.query.filter_by(id=got_mail.from_user_id).first() if got_friend: got_friend_char = Character.query.filter_by(user_id=got_mail.from_user_id).first() find_friend = Friend.query.filter_by( user_id=got_user.id, friend_id=got_mail.from_user_id, requested=True, accepted=True).first() if find_friend: temp_mail_type = 'F' temp_mail = { 'mail_index': got_mail.id, 'from_name': got_friend_char.name, 'mail_type': temp_mail_type, 'sent_date': got_mail.registered_date.strftime("%Y,%m,%d,%H,%M"), 'days_ago': getDaysAgoFromNow(got_mail.registered_date), 'title': got_friend_char.name + u"로부터 메일", 'got_item': got_mail.did_receive_item, 'gift': temp_has_gift, 'request_friend': got_mail.request_friend, } result['mails'].append(temp_mail) else: temp_mail = { 'mail_index': got_mail.id, 'from_name': temp_mail_system_name, 'mail_type': temp_mail_type, 'sent_date': got_mail.registered_date.strftime( "%Y,%m,%d,%H,%M"), 'days_ago': getDaysAgoFromNow(got_mail.registered_date), 'title': temp_mail_title, 'got_item': got_mail.did_receive_item, 'gift': temp_has_gift, 'request_friend': got_mail.request_friend, } result['mails'].append(temp_mail) else: result['result'] = ResultCodes.NoData else: result['result'] = ResultCodes.InputParamError else: result['result'] = ResultCodes.AccessError return str(json.dumps(result))