예제 #1
0
def receive(rk_user, params):
    '''
    领取邮件中的内容
    '''
    mails_id = str(params['mails_id'])
    all_info = UserMail.hgetall(rk_user.uid)
    return_info = {}
    for m in all_info:
        mid = all_info[m]['mail_info']['mid']
        if mid == mails_id:
            can_get = all_info[m]['mail_info'].get('can_get', False)
            if can_get is False:
                break
            awards = all_info[m]['mail_info']['awards']
            where = 'mail_' + all_info[m]['mail_info']['title']
            return_info = tools.add_things(rk_user, [{
                "_id": goods,
                "num": awards[goods]
            } for goods in awards if goods], where)

            umobj = UserMail.hget(rk_user.uid, m)
            umobj.mail_info['can_get'] = False
            umobj.mail_info['open_time'] = utils.datetime_toString(
                datetime.datetime.now())
            umobj.hput()
            break

    return 0, {'receive': return_info}
예제 #2
0
파일: mail.py 프로젝트: wzgdavid/myCoding
def delete_all_mails():
    all_info = UserMail.hgetall(uid)
    #for mail_id, mail_info in all_info.items()[:-3]:# 注意 这里不是去全删
    for mail_id, mail_info in all_info.items():
        print mail_id, mail_info
        umobj = UserMail.hget(uid, mail_id)
        umobj.delete()
예제 #3
0
파일: mail.py 프로젝트: wzgdavid/myCoding
def show_mails(rk_user, params):
    """
    获取邮件列表
    'type': 'system': 系统邮件
    'type': 'pvp'   : pvp邮件 
    Returns:
        {'show_mails': 
            {1: {'awards': [
                    {'equipSoul': {'equip_type': u'1', 'good_id': u'53003_equip', 'num': 1}},                
                    {'mat': {'good_id': u'3_mat', 'num': 2}},
                    {'gold': {'good_id': u'gold', 'num': 10}},
                    {'props': {'good_id': u'1_props', 'num': 1}},
                    {'equip': {'color': u'green', 'good_id': u'13001_equip', 'num': 3}},
                    {'cardSoul': {'good_id': u'5_card', 'num': 1}},
                    {'fight_soul': {'good_id': u'fight_soul', 'num': 100}},
                    {'card': {'good_id': u'5_card', 'num': 1}},
                    {'honor': {'good_id': u'honor', 'num': 100}},
                    {'equipSoul': {'good_id': u'12002_equip', 'num': 1}}
                ],
                'can_get': True,
                'content': u'5345',
                'create_time': u'2014-11-04 11:32:56',
                'mid': u'201411041132562390414',
                'type': u'system'},
            2:  ......
    """
    data = {}
    all_info = UserMail.hgetall(rk_user.uid)
    expire_days = game_config.mail_config.get('expire_days', 2)
    clear_date = (datetime.datetime.now() - datetime.timedelta(days=expire_days)).strftime('%Y-%m-%d %H:%M:%S')
    # 根据创建时间排序
    key_create_time_list = [(m, all_info[m]['mail_info'].get('create_time', ''), 
                            all_info[m]['mail_info'].get('open_time')) for m in all_info]

    key_create_time_list = sorted(key_create_time_list , key=lambda key_time: key_time[1], reverse=True)
    for index, key_create_time in enumerate(key_create_time_list):
        key, create_time, open_time = key_create_time
        mail_info = all_info[key]['mail_info']
        can_get = mail_info.get('can_get', False)
        print 'create time:', create_time,  'open time:',open_time,  ' can get:', can_get
        if can_get is False and clear_date > open_time:
        #if can_get is False:
            umobj = UserMail.hget(rk_user.uid, key)
            umobj.delete()
            continue

        this_data = {
            'type': mail_info['type'],
            'title': mail_info['title'],
            'content': mail_info['content'],
            'can_get': mail_info['can_get'],
            'awards': [tools.pack_good(good, num) for good, num in mail_info['awards'].items()],
            'create_time': mail_info['create_time'],
            #'mid': mail_info['mid'],
            'mid': key,
        }
        data[index + 1] = this_data
    #print data
    return {'show_mails': data}
예제 #4
0
def delete(rk_user, params):
    '''一键删除不带奖励的邮件'''
    mails = UserMail.hgetall(rk_user.uid)
    for mail_id in mails:
        if not mails[mail_id]['mail_info'].get('awards'):
            mail = UserMail.hget(rk_user.uid, mail_id)
            mail.delete()
    return 0, {}
예제 #5
0
def delete(rk_user, params):
    '''一键删除不带奖励的邮件'''
    mails = UserMail.hgetall(rk_user.uid)
    for mail_id in mails:
        if not mails[mail_id]['mail_info'].get('awards'):
            mail = UserMail.hget(rk_user.uid, mail_id)
            mail.delete()
    return 0, {}
예제 #6
0
def _get_pvprank_record(uid):
    pvprank_record_list = []
    all_info = UserMail.hgetall(uid)
    for mid in all_info:
        type = all_info[mid]['mail_info'].get('type', '')
        can_get = all_info[mid]['mail_info'].get('can_get', False)
        if type == 'pvp':
            pvprank_record = all_info[mid]['mail_info'].get('pvprank_record', {})
            for r in pvprank_record:
                pvprank_record_list.append((r, pvprank_record[r]))
    if pvprank_record_list:
        pvprank_record_list = [ (i[0][:13], i[1]) for i in sorted(pvprank_record_list, key=lambda d:d[0],reverse=False)]
    return pvprank_record_list
예제 #7
0
def _get_pvprank_record(uid):
    pvprank_record_list = []
    all_info = UserMail.hgetall(uid)
    for mid in all_info:
        type = all_info[mid]['mail_info'].get('type', '')
        can_get = all_info[mid]['mail_info'].get('can_get', False)
        if type == 'pvp':
            pvprank_record = all_info[mid]['mail_info'].get(
                'pvprank_record', {})
            for r in pvprank_record:
                pvprank_record_list.append((r, pvprank_record[r]))
    if pvprank_record_list:
        pvprank_record_list = [(i[0][:13], i[1]) for i in sorted(
            pvprank_record_list, key=lambda d: d[0], reverse=False)]
    return pvprank_record_list
예제 #8
0
파일: mail.py 프로젝트: wzgdavid/myCoding
def modify_one_mail():
    all_mail = UserMail.hgetall(uid)
    #print all_mail
    for key in all_mail:
    
        if key == 'system_201411111104385687940':
            all_mail[key]['open_time'] = '1234'
            this_mail = UserMail.hget(uid, key)
            this_mail.hput()
            print this_mail
    key == 'system_201411111104385687940'
    this_mail = UserMail.hget(uid, key)
    print this_mail.mail_info
    this_mail.mail_info['read_time']= '123'
    this_mail.hput()
예제 #9
0
def receive(rk_user, params):
    '''
    领取邮件中的内容
    '''
    mails_id = str(params['mails_id'])
    all_info = UserMail.hgetall(rk_user.uid)
    return_info = {}
    for m in all_info:
        mid = all_info[m]['mail_info']['mid']
        if mid == mails_id:
            can_get = all_info[m]['mail_info'].get('can_get', False)
            if can_get is False:
                break
            awards = all_info[m]['mail_info']['awards']
            where = 'mail_' + all_info[m]['mail_info']['title']
            return_info = tools.add_things(rk_user, [{"_id": goods, "num": awards[goods]} for goods in awards if goods], where)

            umobj = UserMail.hget(rk_user.uid, m)
            umobj.mail_info['can_get'] = False
            umobj.mail_info['open_time'] = utils.datetime_toString(datetime.datetime.now())
            umobj.hput()
            break

    return 0, {'receive': return_info}
예제 #10
0
def show_mails(rk_user, params):
    """
    获取邮件列表
    'type': 'system': 系统邮件
    'type': 'pvp'   : pvp邮件 
    Returns:
        {'show_mails': 
            {1: {'awards': [
                    {'equipSoul': {'equip_type': u'1', 'good_id': u'53003_equip', 'num': 1}},                
                    {'mat': {'good_id': u'3_mat', 'num': 2}},
                    {'gold': {'good_id': u'gold', 'num': 10}},
                    {'props': {'good_id': u'1_props', 'num': 1}},
                    {'equip': {'color': u'green', 'good_id': u'13001_equip', 'num': 3}},
                    {'cardSoul': {'good_id': u'5_card', 'num': 1}},
                    {'fight_soul': {'good_id': u'fight_soul', 'num': 100}},
                    {'card': {'good_id': u'5_card', 'num': 1}},
                    {'honor': {'good_id': u'honor', 'num': 100}},
                    {'equipSoul': {'good_id': u'12002_equip', 'num': 1}}
                ],
                'can_get': True,
                'content': u'5345',
                'create_time': u'2014-11-04 11:32:56',
                'mid': u'201411041132562390414',
                'type': u'system'},
            2:  ......
    """
    data = {}
    all_info = UserMail.hgetall(rk_user.uid)
    expire_days = game_config.mail_config.get('expire_days', 2)
    clear_date = (
        datetime.datetime.now() -
        datetime.timedelta(days=expire_days)).strftime('%Y-%m-%d %H:%M:%S')
    # 根据创建时间排序
    key_create_time_list = [
        (m, all_info[m]['mail_info'].get('create_time', ''),
         all_info[m]['mail_info'].get('open_time', '9999-99-99 99:99:99'))
        for m in all_info
    ]

    key_create_time_list = sorted(key_create_time_list,
                                  key=lambda key_time: key_time[1],
                                  reverse=True)
    for index, key_create_time in enumerate(key_create_time_list):
        key, create_time, open_time = key_create_time
        mail_info = all_info[key]['mail_info']
        can_get = mail_info.get('can_get', False)

        if can_get is False and clear_date > open_time:
            #if can_get is False:
            umobj = UserMail.hget(rk_user.uid, key)
            umobj.delete()
            continue

        this_data = {
            'type':
            mail_info['type'],
            'title':
            mail_info['title'],
            'content':
            mail_info['content'],
            'can_get':
            mail_info['can_get'],
            'awards': [
                tools.pack_good(good, num)
                for good, num in mail_info['awards'].items()
            ],
            'create_time':
            mail_info['create_time'],
            'mid':
            mail_info['mid'],
        }
        data[index + 1] = this_data
    return {'show_mails': data}
예제 #11
0
파일: mail.py 프로젝트: wzgdavid/myCoding
def show_all_mails():
    all_mail = UserMail.hgetall(uid)
    #for mail_id, mail_info in all_info.items():
    #    print mail_id, '------', mail_info

    pprint(all_mail)