Exemplo n.º 1
0
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))
Exemplo n.º 2
0
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))