Esempio n. 1
0
def generate_recharge_cards():
    name = request.values.get('name')
    points = request.values.get('points')
    num = request.values.get('num')
    try:
        if int(num) <= 0:
            session['error_message']='数量填写错误'
            return redirect(url_for('recharge_cards'))
        if int(points) <= 0:
            session['error_message']='点数填写错误'
            return redirect(url_for('recharge_cards'))
        for i in range(0, int(num)):
            _chars = "0123456789ABCDEF"
            card_code=''.join(random.sample(_chars, 16))
            if r_session.sismember('recharge_card_codes',card_code) or  r_session.sismember('used_card_codes',card_code):
                continue
            card={}
            card['key']=''.join(random.sample(_chars, 16))
            card['code']=card_code
            card['points']=int(points)
            card['name']=name
            card['status']='待售'
            r_session.sadd('recharge_card_codes', card_code)
            r_session.set('recharge_card:%s' % card_code, json.dumps(card))
    except Exception as e:
        session['error_message']=e
    return redirect(url_for('recharge_cards'))
Esempio n. 2
0
def card_sold(code):
    b_card = r_session.get('recharge_card:%s' % code)
    if b_card is not None:
        card=json.loads(b_card.decode('utf-8'))
        card['status']='售出'
        r_session.set('recharge_card:%s' % code, json.dumps(card))
    return redirect(url_for('recharge_cards'))
Esempio n. 3
0
def user_change_property(field, value):
    user = session.get('user_info')

    user_key = '%s:%s' % ('user', user.get('username'))
    user_info = json.loads(r_session.get(user_key).decode('utf-8'))
    session['action'] = 'property'

    if field == 'auto_column':
        session['action'] = 'info'
        user_info['auto_column'] = True if value == '1' else False
    if field == 'auto_collect':
        user_info['auto_collect'] = True if value == '1' else False
    if field == 'auto_drawcash':
        user_info['auto_drawcash'] = True if value == '1' else False
    if field == 'auto_giftbox':
        user_info['auto_giftbox'] = True if value == '1' else False
    if field == 'auto_shakegift':
        user_info['auto_shakegift'] = True if value == '1' else False
    if field == 'auto_searcht':
        user_info['auto_searcht'] = True if value == '1' else False
    if field == 'auto_revenge':
        user_info['auto_revenge'] = True if value == '1' else False
    if field == 'auto_getaward':
        user_info['auto_getaward'] = True if value == '1' else False

    r_session.set(user_key, json.dumps(user_info))

    return redirect(url_for('user_profile'))
Esempio n. 4
0
def drawcash_all():
    user = session.get('user_info')
    username = user.get('username')

    error_message = ''
    success_message = ''
    for b_user_id in r_session.smembers('accounts:%s' % username):

        account_key = 'account:%s:%s' % (username, b_user_id.decode("utf-8"))
        account_info = json.loads(r_session.get(account_key).decode("utf-8"))

        session_id = account_info.get('session_id')
        user_id = account_info.get('user_id')

        cookies = dict(sessionid=session_id, userid=str(user_id))
        r = exec_draw_cash(cookies)
        if r.get('r') != 0:
            error_message += 'Id:%s : %s<br />' % (user_id, r.get('rd'))
        else:
            success_message += 'Id:%s : %s<br />' % (user_id, r.get('rd'))
            account_data_key = account_key + ':data'
            account_data_value = json.loads(r_session.get(account_data_key).decode("utf-8"))
            account_data_value.get('income')['r_can_use'] = 0
            r_session.set(account_data_key, json.dumps(account_data_value))
    if len(success_message) > 0:
        session['info_message'] = success_message

    if len(error_message) > 0:
        session['error_message'] = error_message

    return redirect(url_for('excavators'))
Esempio n. 5
0
def admin_change_property(field, value, username):
    user_key = '%s:%s' % ('user', username)
    user_info = json.loads(r_session.get(user_key).decode('utf-8'))

    if field == 'is_admin':
        user_info['is_admin'] = True if value == '1' else False
    elif field == 'active':
        user_info['active'] = True if value == '1' else False
    elif field == 'auto_column':
        user_info['auto_column'] = True if value == '1' else False
    elif field == 'auto_collect':
        user_info['auto_collect'] = True if value == '1' else False
        auto_collect_info = request.values.get('auto_collect_info')
        r = r"^[1-9]\d*$"
        if re.match(r,auto_collect_info) is not None:
            user_info['auto_collect_info'] = int(auto_collect_info)
    elif field == 'auto_drawcash':
        user_info['auto_drawcash'] = True if value == '1' else False
    elif field == 'auto_giftbox':
        user_info['auto_giftbox'] = True if value == '1' else False
    elif field == 'auto_searcht':
        user_info['auto_searcht'] = True if value == '1' else False
    elif field == 'auto_revenge':
        user_info['auto_revenge'] = True if value == '1' else False
    elif field == 'auto_getaward':
        user_info['auto_getaward'] = True if value == '1' else False

    r_session.set(user_key, json.dumps(user_info))

    return redirect(url_for(endpoint='admin_user_management', username=username))
Esempio n. 6
0
def admin_change_property(field, value, username):
    user_key = '%s:%s' % ('user', username)
    user_info = json.loads(r_session.get(user_key).decode('utf-8'))

    if field == 'is_admin':
        user_info['is_admin'] = True if value == '1' else False
    elif field == 'active':
        user_info['active'] = True if value == '1' else False
    elif field == 'auto_column':
        user_info['auto_column'] = True if value == '1' else False
    elif field == 'auto_collect':
        user_info['auto_collect'] = True if value == '1' else False
    elif field == 'auto_drawcash':
        user_info['auto_drawcash'] = True if value == '1' else False
    elif field == 'auto_giftbox':
        user_info['auto_giftbox'] = True if value == '1' else False
    elif field == 'auto_shakegift':
        user_info['auto_shakegift'] = True if value == '1' else False
    elif field == 'auto_searcht':
        user_info['auto_searcht'] = True if value == '1' else False
    elif field == 'auto_revenge':
        user_info['auto_revenge'] = True if value == '1' else False
    elif field == 'auto_getaward':
        user_info['auto_getaward'] = True if value == '1' else False

    r_session.set(user_key, json.dumps(user_info))

    return redirect(url_for('admin_user_management', username=username))
Esempio n. 7
0
def guest_diary(request, username):

    guest_key = 'guest'
    if r_session.get(guest_key) is None:
        r_session.set(guest_key, json.dumps(dict(diary=[])))
    guest_info = json.loads(r_session.get(guest_key).decode('utf-8'))

    guest_time = datetime.now().strftime('%Y-%m-%d %H:%M:%S') #时间

    url_scheme = request.environ.get('wsgi.url_scheme') #请求头
    HTTP_HOST = request.environ.get('HTTP_HOST') #地址
    PATH_INFO = request.environ.get('PATH_INFO') #后缀
    REQUEST_METHOD = request.environ.get('REQUEST_METHOD') #方式
    HTTP_X_REAL_IP = request.environ.get('HTTP_X_REAL_IP') #IP
    REMOTE_PORT = request.environ.get('REMOTE_PORT') #端口

    http = '%s://%s%s' % (url_scheme, HTTP_HOST, PATH_INFO) #链接

    body = dict(time=guest_time, http=http, method=REQUEST_METHOD, ip=HTTP_X_REAL_IP, port=REMOTE_PORT, username=username)

    guest_body = guest_info.get('diary')
    guest_body.append(body)

    guest_info['diary'] = guest_body

    r_session.set(guest_key, json.dumps(guest_info))
Esempio n. 8
0
def searcht_all():
    user = session.get('user_info')
    username = user.get('username')

    error_message = ''
    success_message = ''
    for b_user_id in r_session.smembers('accounts:%s' % username):

        account_key = 'account:%s:%s' % (username, b_user_id.decode("utf-8"))
        account_info = json.loads(r_session.get(account_key).decode("utf-8"))

        session_id = account_info.get('session_id')
        user_id = account_info.get('user_id')

        cookies = dict(sessionid=session_id, userid=str(user_id))
        r = check_searcht(cookies)
        if r.get('r') != 0:
            error_message += 'Id:%s : %s<br />' % (user_id, regular_html(r.get('rd')))
            red_log('手动执行', '进攻', user_id, regular_html(r.get('rd')))
        else:
            success_message += 'Id:%s : 获得:%s秘银.<br />' % (user_id, r.get('s'))
            red_log('手动执行', '进攻', user_id, '获得:%s秘银.' % r.get('s'))
            account_data_key = account_key + ':data'
            account_data_value = json.loads(r_session.get(account_data_key).decode("utf-8"))
            account_data_value.get('mine_info')['td_not_in_a'] = 0
            r_session.set(account_data_key, json.dumps(account_data_value))
    if len(success_message) > 0:
        session['info_message'] = success_message

    if len(error_message) > 0:
        session['error_message'] = error_message

    return redirect(url_for('excavators'))
Esempio n. 9
0
def user_change_password():
    user = session.get("user_info")
    o_password = request.values.get("old_password")
    n_password = request.values.get("new_password")
    n2_password = request.values.get("new2_password")
    session["action"] = "password"

    if n_password != n2_password:
        session["error_message"] = "新密码输入不一致."
        return redirect(url_for("user_profile"))

    if len(n_password) < 8:
        session["error_message"] = "密码必须8位及以上."
        return redirect(url_for("user_profile"))

    user_key = "%s:%s" % ("user", user.get("username"))
    user_info = json.loads(r_session.get(user_key).decode("utf-8"))

    hashed_password = hash_password(o_password)

    if user_info.get("password") != hashed_password:
        session["error_message"] = "原密码错误"
        return redirect(url_for("user_profile"))

    user_info["password"] = hash_password(n_password)
    r_session.set(user_key, json.dumps(user_info))

    return redirect(url_for("user_profile"))
Esempio n. 10
0
def user_log_delete_sel():
    user = session.get('user_info')

    record_key = '%s:%s' % ('record', user.get('username'))
    record_info = json.loads(r_session.get(record_key).decode('utf-8'))

    diary = []

    for row in record_info.get('diary'):
        if '1day' == session.get('log_sel_time'):
            if (datetime.now() - datetime.strptime(row.get('time'), '%Y-%m-%d %H:%M:%S')).days >= 1:
                diary.append(row)
            else:
                if row.get('type').find(str(type_dict.get(session.get('log_sel_type')))) == -1:
                    diary.append(row)
        elif 'all' == session.get('log_sel_time'):
            if row.get('type').find(str(type_dict.get(session.get('log_sel_type')))) == -1: diary.append(row)
        else:
            if (datetime.now() - datetime.strptime(row.get('time'), '%Y-%m-%d %H:%M:%S')).days >= 7:
                diary.append(row)
            else:
                if row.get('type').find(str(type_dict.get(session.get('log_sel_type')))) == -1: diary.append(row)

    record_info['diary'] = diary

    r_session.set(record_key, json.dumps(record_info))

    return redirect('/log')
Esempio n. 11
0
def message_action():
    user = session.get('user_info')

    if request.form['btn'] is None:
        util.set_message('参数错误')
        return redirect(url_for('messagebox'))

    msgs_key = 'user_messages:%s' % user.get('username')

    all_message = r_session.lrange(msgs_key, 0, -1)

    for val in request.form:
        if len(val) < 4 or val[0:3] != 'msg':
            continue

        msg_id = val[4:]
        if bytes(msg_id, 'utf-8') not in all_message:
            continue

        if request.form['btn'] == 'mark_as_read':
            msg_key = 'user_message:%s' % msg_id

            msg = json.loads(r_session.get(msg_key).decode('utf-8'))
            msg['is_read'] = True
            r_session.set(msg_key, json.dumps(msg))

        elif request.form['btn'] == 'delete':
            r_session.lrem(msgs_key, msg_id)
            msg_key = 'user_message:%s' % msg_id
            r_session.delete(msg_key)

    return redirect(url_for('messagebox'))
Esempio n. 12
0
def user_change_password():
    user = session.get('user_info')
    o_password = request.values.get('old_password')
    n_password = request.values.get('new_password')
    n2_password = request.values.get('new2_password')
    session['action'] = 'password'

    if n_password != n2_password:
        session['error_message'] = '新密码输入不一致.'
        return redirect(url_for('user_profile'))

    if len(n_password) < 8:
        session['error_message'] = '密码必须8位及以上.'
        return redirect(url_for('user_profile'))

    user_key = '%s:%s' % ('user', user.get('username'))
    user_info = json.loads(r_session.get(user_key).decode('utf-8'))

    hashed_password = hash_password(o_password)

    if user_info.get('password') != hashed_password:
        session['error_message'] = '原密码错误'
        return redirect(url_for('user_profile'))

    user_info['password'] = hash_password(n_password)
    r_session.set(user_key, json.dumps(user_info))

    return redirect(url_for('user_profile'))
Esempio n. 13
0
def public_inv_code():

    public_key = 'invitation'
    if r_session.get(public_key) is None:
        r_session.set(public_key, json.dumps(dict(diary=[])))
    public_info = json.loads(r_session.get(public_key).decode('utf-8'))

    HTTP_X_REAL_IP = request.environ.get('HTTP_X_REAL_IP')
    for public_code in public_info.get('diary'):
        if HTTP_X_REAL_IP == public_code.get('ip'):
            session['error_message'] = '您已经获取过邀请码了,请勿重复获取.'
            session['invitation_code'] = public_code.get('inv_code')
            return redirect(url_for('public_invitation'))

    inv_codes = r_session.smembers('public_invitation_codes')
    if not inv_codes:
        session['error_message'] = '暂时没有可用的邀请码,请稍后再试.'
        return redirect(url_for('public_invitation'))

    for code in inv_codes: continue
    invitation_code = code.decode('utf-8')

    public_time = datetime.now().strftime('%Y-%m-%d %H:%M:%S')

    body = dict(time=public_time, inv_code=invitation_code, ip=HTTP_X_REAL_IP)

    public_body = public_info.get('diary')
    public_body.append(body)

    public_info['diary'] = public_body

    r_session.set(public_key, json.dumps(public_info))

    return render_template('register.html', invitation_code=invitation_code)
Esempio n. 14
0
def getaward_all_crystal():
    user = session.get('user_info')
    username = user.get('username')

    error_message = ''
    success_message = ''
    for b_user_id in r_session.smembers('accounts:%s' % username):

        account_key = 'account:%s:%s' % (username, b_user_id.decode("utf-8"))
        account_info = json.loads(r_session.get(account_key).decode("utf-8"))

        session_id = account_info.get('session_id')
        user_id = account_info.get('user_id')

        cookies = dict(sessionid=session_id, userid=str(user_id))
        t = api_getaward(cookies)
        if t.get('rd') != 'ok':
            error_message += 'Id:%s %s<br />' % (user_id, t.get('rd')) 
        else:
            success_message += 'Id:%s 转盘成功,获得:%s  下次转需要:%s 秘银.<br />' % (user_id, unquote(t.get('tip')), t.get('cost'))
            account_data_key = account_key + ':data'
            account_data_value = json.loads(r_session.get(account_data_key).decode("utf-8"))
            account_data_value.get('mine_info')['td_not_in_a'] = 0
            r_session.set(account_data_key, json.dumps(account_data_value))
    if len(success_message) > 0:
        session['info_message'] = success_message

    if len(error_message) > 0:
        session['error_message'] = error_message

    return redirect(url_for('excavators'))
Esempio n. 15
0
def clear_account_limit():
    for name in r_session.smembers('users'):
        user_key = '%s:%s' % ('user', name.decode('utf-8'))
        user_info = json.loads(r_session.get(user_key).decode('utf-8'))
        user_info.pop('account_limit',0)
        r_session.set(user_key,json.dumps(user_info))	
    return redirect(url_for('admin_debug'))
Esempio n. 16
0
def admin_restart_auto_task():
    config_key = '%s:%s' % ('user', 'system')
    config_info = json.loads(r_session.get(config_key).decode('utf-8'))
    config_info['restart_flag'] = True
    r_session.set(config_key, json.dumps(config_info))
    session['action'] = 'auto_task'
    session['error_message'] = '自动任务已经全部安排重启'
    return redirect(url_for('system_config'))
Esempio n. 17
0
def admin_guest_delete():
    guest_key = 'guest'
    guest_info = json.loads(r_session.get(guest_key).decode('utf-8'))

    guest_info['diary'] = []

    r_session.set(guest_key, json.dumps(guest_info))

    return redirect(url_for('admin_guest'))
Esempio n. 18
0
def guest_invitation_delete():
    public_key = 'invitation'
    public_info = json.loads(r_session.get(public_key).decode('utf-8'))

    public_info['diary'] = []

    r_session.set(public_key, json.dumps(public_info))

    return redirect(url_for('guest_invitation'))
Esempio n. 19
0
def account_inactive(xl_id):
    user = session.get('user_info')

    account_key = 'account:%s:%s' % (user.get('username'), xl_id)
    account_info = json.loads(r_session.get(account_key).decode("utf-8"))
    account_info['active'] = False
    r_session.set(account_key, json.dumps(account_info))

    return redirect(url_for('accounts'))
Esempio n. 20
0
def account_set_remark_name():
    user_id = request.values.get('user_id')
    remark_name = request.values.get('remark_name')
    user = session.get('user_info')
    account_key = 'account:%s:%s' % (user.get('username'), user_id)
    account_info = json.loads(r_session.get(account_key).decode("utf-8"))
    account_info['remark_name'] = remark_name
    r_session.set(account_key, json.dumps(account_info))
    r_session.delete('id_map:%s' % user.get('username'))
    return 'success'
Esempio n. 21
0
def message_detail(message_id):
    msg_key = 'user_message:%s' % message_id
    b_msg = r_session.get(msg_key)
    if b_msg is None:
        session['error_message']='邮件已被删除'
        return redirect(url_for('messagebox'))
    msg=json.loads(b_msg.decode('utf-8'))
    if msg.get('is_read') == False:
       msg['is_read'] = True
       r_session.set(msg_key, json.dumps(msg))
    return render_template('user_message.html',msg=msg)
Esempio n. 22
0
def account_add():
    session['action']='one'

    account_name = request.values.get('xl_username')
    password = request.values.get('xl_password')
    md5_password = md5(password)

    user = session.get('user_info')

    accounts_key = 'accounts:%s' % user.get('username')

    user_key = '%s:%s' % ('user', user.get('username'))
    user_info = json.loads(r_session.get(user_key).decode('utf-8'))
    account_no = r_session.scard(accounts_key) + 1
    if user_info.get('account_limit') is not None and user_info['account_limit'] < account_no:
        session['error_message']='账户数量已达上限,无法完成添加'
        return redirect(url_for('accounts'))
    if account_no is not None:
        if account_no >= user_info.get('total_account_point'):
            session['error_message']='账户余额不足,无法完成添加'
            return redirect(url_for('accounts'))
        elif account_no >= user_info.get('max_account_no'):
            user_info['max_account_no'] = account_no
            days=int(user_info.get('total_account_point') / user_info.get('max_account_no'))
            if days<36500:
                user_info['expire_date'] = (datetime.now() + timedelta(days=days)).strftime('%Y-%m-%d')
            else:
                user_info['expire_date'] = (datetime.now() + timedelta(days=36500)).strftime('%Y-%m-%d')
            r_session.set(user_key, json.dumps(user_info))

    login_result = login(account_name, md5_password, app.config.get('ENCRYPT_PWD_URL'))
    if login_result.get('errorCode') != 0:
        error_message = login_result.get('errorDesc')
        session['error_message'] = '登陆失败,错误信息:%s。' % error_message
        return redirect(url_for('accounts'))

    xl_session_id = login_result.get('sessionID')
    xl_nick_name = login_result.get('nickName')
    xl_user_name = login_result.get('userName')
    xl_user_id = str(login_result.get('userID'))
    xl_user_new_no = str(login_result.get('userNewNo'))
    xl_account_name = account_name
    xl_password = md5_password

    r_session.sadd(accounts_key, xl_user_id)

    account_key = 'account:%s:%s' % (user.get('username'), xl_user_id)
    xl_account_data = dict(session_id=xl_session_id, nick_name=xl_nick_name, username=xl_user_name,
                           user_id=xl_user_id, user_new_no=xl_user_new_no, account_name=xl_account_name,
                           password=xl_password, active=True, status='OK',
                           createdtime=datetime.now().strftime('%Y-%m-%d %H:%M'))
    r_session.set(account_key, json.dumps(xl_account_data))

    return redirect(url_for('accounts'))
Esempio n. 23
0
def user_log_delete():
    user = session.get('user_info')

    record_key = '%s:%s' % ('record', user.get('username'))
    record_info = json.loads(r_session.get(record_key).decode('utf-8'))

    record_info['diary'] = []

    r_session.set(record_key, json.dumps(record_info))

    return redirect('/log')
Esempio n. 24
0
def account_activel_all():
    user = session.get('user_info')

    accounts_key = 'accounts:%s' % user.get('username')
    for acct in sorted(r_session.smembers(accounts_key)):
        account_key = 'account:%s:%s' % (user.get('username'), acct.decode("utf-8"))
        account_info = json.loads(r_session.get(account_key).decode("utf-8"))
        account_info['active'] = True
        r_session.set(account_key, json.dumps(account_info))

    return redirect(url_for('accounts'))
Esempio n. 25
0
def generate_login_as(username):
    user_info = r_session.get('%s:%s' % ('user', username))

    user = json.loads(user_info.decode('utf-8'))
    user['login_as_time'] = datetime.now().strftime('%Y-%m-%d %H:%M:%S')

    r_session.set('%s:%s' % ('user', username), json.dumps(user))
    session['admin_user_info'] = session.get('user_info')
    session['user_info'] = user

    return redirect(url_for('dashboard'))
Esempio n. 26
0
def dashboard_data():
    user = session.get('user_info')
    username = user.get('username')
    str_today = datetime.now().strftime('%Y-%m-%d')
    key = 'user_data:%s:%s' % (username, str_today)
    b_data = r_session.get(key)

    user_key = '%s:%s' % ('user', user.get('username'))
    user_info = json.loads(r_session.get(user_key).decode('utf-8'))

    if b_data is None:
        empty_data = {
            'updated_time': '2015-01-01 00:00:00',
            'm_pdc': 0,
            'last_speed': 0,
            'deploy_speed': 0,
            'w_pdc': 0,
            'yesterday_m_pdc': 0,
            'speed_stat': [],
            'yesterday_w_pdc': 0,
            'pdc': 0,
            'balance': 0,
            'w_award_income': 0
        }
        return Response(json.dumps(dict(today_data=empty_data)), mimetype='application/json')
    today_data = json.loads(b_data.decode('utf-8'))
    need_save = False
    if today_data.get('yesterday_m_pdc') is None or today_data.get('yesterday_w_pdc') is None or today_data.get('yesterday_w_award_income') is None or today_data.get('yesterday_m_award_income') is None:
        yesterday_m_pdc, yesterday_w_pdc, yesterday_m_award_income, yesterday_w_award_income = __get_yesterday_pdc(
            username)
        today_data['yesterday_m_pdc'] = yesterday_m_pdc
        today_data['yesterday_w_pdc'] = yesterday_w_pdc
        today_data['yesterday_m_award_income'] = yesterday_m_award_income
        today_data['yesterday_w_award_income'] = yesterday_w_award_income
        need_save = True

    today_data['m_pdc'] = today_data.get(
        'yesterday_m_pdc') + today_data.get('pdc')
    today_data['w_pdc'] = today_data.get(
        'yesterday_w_pdc') + today_data.get('pdc')
    today_data['m_award_income'] = today_data.get(
        'yesterday_m_award_income') + today_data.get('award_income')
    today_data['w_award_income'] = today_data.get(
        'yesterday_w_award_income') + today_data.get('award_income')

    if need_save:
        r_session.set(key, json.dumps(today_data))
    today_data['pdc'] -= today_data.get('award_income')
    if user_info.get('is_show_wpdc') is None or user_info.get('is_show_wpdc') == 0:
        today_data['w_award_income'] = today_data.get('award_income')
    elif user_info.get('is_show_wpdc') == 2:
        today_data['w_award_income'] = today_data.get('m_award_income')
    return Response(json.dumps(dict(today_data=today_data)), mimetype='application/json')
Esempio n. 27
0
def user_change_property(field, value):
    user = session.get("user_info")
    user_key = "%s:%s" % ("user", user.get("username"))

    user_info = json.loads(r_session.get(user_key).decode("utf-8"))

    if field == "auto_collect":
        user_info["auto_collect"] = True if value == "1" else False

    r_session.set(user_key, json.dumps(user_info))

    return redirect(url_for("user_profile"))
Esempio n. 28
0
def user_change_property(field, value):
    user = session.get('user_info')
    user_key = '%s:%s' % ('user', user.get('username'))

    user_info = json.loads(r_session.get(user_key).decode('utf-8'))

    if field == 'auto_collect':
        user_info['auto_collect'] = True if value == '1' else False

    r_session.set(user_key, json.dumps(user_info))

    return redirect(url_for('user_profile'))
Esempio n. 29
0
def admin_guest():
    guest_as = []

    guest_key = 'guest'
    if r_session.get(guest_key) is None:
        r_session.set(guest_key, json.dumps(dict(diary=[])))
    guest_info = json.loads(r_session.get(guest_key).decode('utf-8'))

    for row in guest_info.get('diary'):
        if (datetime.now() - datetime.strptime(row.get('time'), '%Y-%m-%d %H:%M:%S')).days < 2:
            guest_as.append(row)
    guest_as.reverse()

    return render_template('guest.html', guest_as=guest_as)
Esempio n. 30
0
def guest_invitation():
    public_as = []

    public_key = 'invitation'
    if r_session.get(public_key) is None:
        r_session.set(public_key, json.dumps(dict(diary=[])))
    public_info = json.loads(r_session.get(public_key).decode('utf-8'))

    for row in public_info.get('diary'):
        if (datetime.now() - datetime.strptime(row.get('time'), '%Y-%m-%d %H:%M:%S')).days < 7:
            public_as.append(row)
    public_as.reverse()

    return render_template('guest_invitation.html', public_as=public_as)
Esempio n. 31
0
def account_add():
    account_name = request.values.get('xl_username')
    password = request.values.get('xl_password')
    md5_password = md5(password)

    user = session.get('user_info')

    accounts_key = 'accounts:%s' % user.get('username')

    if user.get('max_account_no') is None:
        user['max_account_no'] = 2

    account_no = r_session.scard(accounts_key)

    if account_no is not None:
        if account_no >= user.get('max_account_no'):
            session['error_message'] = '你的账号限制%d个账户。' % account_no
            return redirect(url_for('accounts'))

    login_result = login(account_name, md5_password, app.config.get('ENCRYPT_PWD_URL'))
    if login_result.get('errorCode') != 0:
        error_message = login_result.get('errorDesc')
        session['error_message'] = '登陆失败,错误信息:%s。' % error_message
        return redirect(url_for('accounts'))

    xl_session_id = login_result.get('sessionID')
    xl_nick_name = login_result.get('nickName')
    xl_user_name = login_result.get('userName')
    xl_user_id = str(login_result.get('userID'))
    xl_user_new_no = str(login_result.get('userNewNo'))
    xl_account_name = account_name
    xl_password = md5_password

    r_session.sadd(accounts_key, xl_user_id)

    account_key = 'account:%s:%s' % (user.get('username'), xl_user_id)
    xl_account_data = dict(session_id=xl_session_id, nick_name=xl_nick_name, username=xl_user_name,
                           user_id=xl_user_id, user_new_no=xl_user_new_no, account_name=xl_account_name,
                           password=xl_password, active=True, status='OK',
                           createdtime=datetime.now().strftime('%Y-%m-%d %H:%M'))
    r_session.set(account_key, json.dumps(xl_account_data))

    return redirect(url_for('accounts'))
Esempio n. 32
0
def async_drawcash_all(username):
    for b_user_id in r_session.smembers('accounts:%s' % username):

        account_key = 'account:%s:%s' % (username, b_user_id.decode("utf-8"))
        account_info = json.loads(r_session.get(account_key).decode("utf-8"))

        session_id = account_info.get('session_id')
        user_id = account_info.get('user_id')

        cookies = dict(sessionid=session_id, userid=str(user_id))
        r = exec_draw_cash(cookies)
        red_log('手动执行', '提现', user_id, r.get('rd'), username)
        if r.get('r') == 0:
            account_data_key = account_key + ':data'
            account_data_value = json.loads(
                r_session.get(account_data_key).decode("utf-8"))
            account_data_value.get('income')['r_can_use'] -= int(
                account_data_value.get('income')['r_can_use'])
            r_session.set(account_data_key, json.dumps(account_data_value))
Esempio n. 33
0
def func_collect_crystal(USERID=None):
    if DEBUG_MODE:
        print('func_collect_crystal() incoming USERID = %s' % USERID)
    user = session.get('user_info')
    username = user.get('username')
    err_msg = ''
    info_msg = ''

    for b_user_id in r_session.smembers('accounts:%s' % username):
        account_key = 'account:%s:%s' % (username, b_user_id.decode("utf-8"))
        if DEBUG_MODE:
            print('collect_crystal() : account_key=%s' % account_key)
        account_info = json.loads(r_session.get(account_key).decode("utf-8"))
        if DEBUG_MODE:
            print('collect_crystal() : account_info=%s' % account_info)
        user_id = account_info.get('user_id')
        if DEBUG_MODE:
            print('collect_crystal() : user_id=%s' % user_id)
        if USERID is not None and user_id != USERID:
            if DEBUG_MODE:
                print(
                    'collect_crystal() : Specify user_id is %s, current id is %s, do not collected!'
                    % (USERID, user_id))
            continue

        cookies = dict(sessionid=account_info.get('session_id'),
                       userid=str(user_id))
        r = xunlei_api_exec_collect(cookies)
        if r.get('r') != 0:
            err_msg += '  %s : %s <br />' % (user_id, r['rd'])
        else:
            info_msg += '  %s : 收取水晶成功 <br />' % user_id
            account_data_key = account_key + ':data'
            account_data_value = json.loads(
                r_session.get(account_data_key).decode("utf-8"))
            account_data_value.get('mine_info')['td_not_in_a'] = 0
            r_session.set(account_data_key, json.dumps(account_data_value))

    if len(info_msg) > 0:
        session['info_message'] = info_msg
    if len(err_msg) > 0:
        session['error_message'] = err_msg
    return redirect(url_for('excavators'))
Esempio n. 34
0
def user_log_delete():
    user = session.get('user_info')

    record_key = '%s:%s' % ('record', user.get('username'))
    record_info = json.loads(r_session.get(record_key).decode('utf-8'))

    record_info['diary'] = []

    r_session.set(record_key, json.dumps(record_info))

    return redirect(url_for('user_log'))
    user_key = '%s:%s' % ('user', user.get('username'))
    user_info = json.loads(r_session.get(user_key).decode('utf-8'))

    user_info['log_as_body'] = []

    r_session.set('%s:%s' % ('user', username), json.dumps(user))

    return redirect(url_for('log'))
Esempio n. 35
0
def admin_root():
    import hashlib
    import base64
    user = session.get('user_info')
    user_key = '%s:%s' % ('user', user.get('username'))
    user_info = json.loads(r_session.get(user_key).decode('utf-8'))
    action = None
    if session.get('action') is not None:
        action = session.get('action')
        session['action'] = None
    if True or 'root_no' in user_info.keys() and user_info['root_no'] != 0:
        user_info['root_no'] = 0
        device_id = request.values.get('device_id')
        session_id = request.values.get('session_id')
        account_id = request.values.get('account_id')
        dev = ubus_cd(session_id, account_id, 'get_device',
                      ["server", "get_device", {
                          "device_id": device_id
                      }])
        if dev is not None:
            if 'result' in dev.keys():
                sn = dev['result'][1]['device_sn']
                mac = dev['result'][1]['mac_address']
                key = '%s%s%s' % (sn, mac, 'i8e%Fvj24nz024@d!c')
                m = hashlib.md5()
                m.update(key.encode('utf-8'))
                md5 = m.digest()
                passwd = base64.b64encode(md5).decode('utf-8')
                passwd = passwd[0:8]
                passwd = passwd.replace('+', '-')
                passwd = passwd.replace('/', '_')
                if 'root_passwd' not in user_info.keys():
                    user_info['root_passwd'] = {}
                user_info['root_passwd'][device_id] = passwd
                user_info['root_no'] = user_info['root_no'] - 0
                r_session.set(user_key, json.dumps(user_info))
            else:
                session['error_message'] = '获取ROOT所需信息失败'
        else:
            session['error_message'] = '请选择一个需要ROOT密码的设备'
        return redirect(url_for('excavators'))
    session['error_message'] = '您的账户没有ROOT机会了,请联系管理员获取。'
    return redirect(url_for('excavators'))
Esempio n. 36
0
def user_register():
    invitation_code = request.values.get('invitation_code')
    username = request.values.get('username')
    password = request.values.get('password')
    re_password = request.values.get('re_password')

    if not r_session.sismember('invitation_codes', invitation_code) and \
            not r_session.sismember('public_invitation_codes', invitation_code):
        session['error_message'] = '无效的邀请码。'
        return redirect(url_for('register'))

    if username == '':
        session['error_message'] = '账号名不能为空。'
        return redirect(url_for('register'))

    if r_session.get('%s:%s' % ('user', username)) is not None:
        session['error_message'] = '该账号名已存在。'
        return redirect(url_for('register'))

    if password != re_password:
        session['error_message'] = '新密码输入不一致.'
        return redirect(url_for('register'))

    if len(password) < 8:
        session['error_message'] = '密码必须8位及以上.'
        return redirect(url_for('register'))

    r_session.srem('invitation_codes', invitation_code)
    r_session.srem('public_invitation_codes', invitation_code)

    user = dict(username=username,
                password=hash_password(password),
                id=str(uuid.uuid1()),
                active=True,
                is_admin=False,
                max_account_no=20,
                created_time=datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
    r_session.set('%s:%s' % ('user', username), json.dumps(user))
    r_session.set('%s:%s' % ('record', username), json.dumps(dict(diary=[])))
    r_session.sadd('users', username)

    session['info_message'] = '恭喜你,注册成功.'
    return redirect(url_for('register'))
Esempio n. 37
0
def async_searcht_all(username):
    for b_user_id in r_session.smembers('accounts:%s' % username):

        account_key = 'account:%s:%s' % (username, b_user_id.decode("utf-8"))
        account_info = json.loads(r_session.get(account_key).decode("utf-8"))

        session_id = account_info.get('session_id')
        user_id = account_info.get('user_id')

        cookies = dict(sessionid=session_id, userid=str(user_id))
        r = check_searcht(cookies)
        if r.get('r') != 0:
            red_log('手动执行', '进攻', user_id, regular_html(r.get('rd')), username)
        else:
            red_log('手动执行', '进攻', user_id, '获得:%s秘银.' % r.get('s'), username)
            account_data_key = account_key + ':data'
            account_data_value = json.loads(r_session.get(account_data_key).decode("utf-8"))
            account_data_value.get('mine_info')['td_not_in_a'] = 0
            r_session.set(account_data_key, json.dumps(account_data_value))
Esempio n. 38
0
def dashboard_data():
    user = session.get('user_info')
    username = user.get('username')
    str_today = datetime.now().strftime('%Y-%m-%d')
    key = 'user_data:%s:%s' % (username, str_today)

    b_data = r_session.get(key)
    if b_data is None:
        empty_data = {
            'updated_time': '2015-01-01 00:00:00',
            'm_pdc': 0,
            'last_speed': 0,
            'deploy_speed': 0,
            'w_pdc': 0,
            'yesterday_m_pdc': 0,
            'speed_stat': [],
            'yesterday_w_pdc': 0,
            'pdc': 0,
            'balance': 0
        }
        return Response(json.dumps(dict(today_data=empty_data)),
                        mimetype='application/json')

    today_data = json.loads(b_data.decode('utf-8'))
    need_save = False
    if today_data.get('yesterday_m_pdc') is None or today_data.get(
            'yesterday_w_pdc') is None:
        yesterday_m_pdc, yesterday_w_pdc = __get_yesterday_pdc(username)
        today_data['yesterday_m_pdc'] = yesterday_m_pdc
        today_data['yesterday_w_pdc'] = yesterday_w_pdc
        need_save = True
    #m_pdc  首页上方 本月水晶产量
    today_data['m_pdc'] = today_data.get('yesterday_m_pdc') + today_data.get(
        'pdc')
    #w_pdc  首页上方 本周水晶产量
    today_data['w_pdc'] = today_data.get('yesterday_w_pdc') + today_data.get(
        'pdc')

    if need_save:
        r_session.set(key, json.dumps(today_data))

    return Response(json.dumps(dict(today_data=today_data)),
                    mimetype='application/json')
Esempio n. 39
0
def install():
    import random
    import uuid
    from util import hash_password

    if r_session.scard('users') == 0:
        _chars = "0123456789ABCDEF"
        username = ''.join(random.sample(_chars, 6))
        password = ''.join(random.sample(_chars, 6))

        user = dict(username=username, password=hash_password(password), id=str(uuid.uuid1()),
                    active=True, is_admin=True, max_account_no=5,
                    created_time=datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
        r_session.set('%s:%s' % ('user', username), json.dumps(user))
        r_session.set('%s:%s' % ('record', username),
                      json.dumps(dict(diary=[])))
        r_session.sadd('users', username)
        return 'username:%s,password:%s' % (username, password)

    return redirect(url_for('login'))
Esempio n. 40
0
def red_log(clas, type, id, gets):
    user = session.get('user_info')

    record_key = '%s:%s' % ('record', user.get('username'))
    record_info = json.loads(r_session.get(record_key).decode('utf-8'))

    log_as_time = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
    body = dict(time=log_as_time, clas=clas, type=type, id=id, gets=gets)

    log_as_body = record_info.get('diary')
    log_trimed = []
    for item in log_as_body:
        if (datetime.now() - datetime.strptime(item.get('time'),
                                               '%Y-%m-%d %H:%M:%S')).days < 31:
            log_trimed.append(item)
    log_trimed.append(body)

    record_info['diary'] = log_trimed

    r_session.set(record_key, json.dumps(record_info))
Esempio n. 41
0
def account_log(username, clas, type, detail):
    payment_key = '%s:%s' % ('payment', username)
    b_payment_info = r_session.get(payment_key)
    if b_payment_info is not None:
        payment_info = json.loads(b_payment_info.decode('utf-8'))
    else:
        payment_info={'diary':[]}
    log_as_time = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
    body = dict(time=log_as_time, account=username, clas=clas, type=type, detail=detail)

    log_as_body = payment_info.get('diary')
    log_trimed = []
    for item in log_as_body:
       if (datetime.now() - datetime.strptime(item.get('time'), '%Y-%m-%d %H:%M:%S')).days < 31:
           log_trimed.append(item)
    log_trimed.append(body)

    payment_info['diary'] = log_trimed

    r_session.set(payment_key, json.dumps(payment_info))
Esempio n. 42
0
def user_change_property(field, value):
    user = session.get('user_info')
    user_key = '%s:%s' % ('user', user.get('username'))

    user_info = json.loads(r_session.get(user_key).decode('utf-8'))

    if field == 'auto_collect':
        user_info['auto_collect'] = True if value == '1' else False
    if field == 'auto_giftbox':
        user_info['auto_giftbox'] = True if value == '1' else False
    if field == 'auto_cashbox':
        user_info['auto_cashbox'] = True if value == '1' else False
    if field == 'auto_searcht':
        user_info['auto_searcht'] = True if value == '1' else False
    if field == 'auto_getaward':
        user_info['auto_getaward'] = True if value == '1' else False

    r_session.set(user_key, json.dumps(user_info))

    return redirect(url_for('user_profile'))
Esempio n. 43
0
def admin_change_user_info(username):
    max_account_no = request.values.get('max_account_no')

    r = r"^[1-9]\d*$"
    if re.match(r, max_account_no) is None:
        session['error_message'] = '迅雷账号限制必须为整数.'
        return redirect(url_for(endpoint='admin_user_management', username=username))

    if not 0 < int(max_account_no) < 101:
        session['error_message'] = '迅雷账号限制必须为 1~100.'
        return redirect(url_for(endpoint='admin_user_management', username=username))

    user_key = '%s:%s' % ('user', username)
    user_info = json.loads(r_session.get(user_key).decode('utf-8'))

    user_info['max_account_no'] = int(max_account_no)

    r_session.set(user_key, json.dumps(user_info))

    return redirect(url_for(endpoint='admin_user_management', username=username))
Esempio n. 44
0
def user_change_money(field):
    user = session.get('user_info')
    user_key = '%s:%s' % ('user', user.get('username'))

    user_info = json.loads(r_session.get(user_key).decode('utf-8'))

    if field == 'hardware_outcome':
        try:
            user_info['hardware_outcome'] = float(
                str(request.values.get('hardware_outcome')))
        except ValueError:
            return redirect(url_for('moneyAnalyzer'))
    if field == 'other_outcome':
        try:
            user_info['other_outcome'] = float(
                str(request.values.get('other_outcome')))
        except ValueError:
            return redirect(url_for('moneyAnalyzer'))
    if field == 'daily_outcome':
        try:
            user_info['daily_outcome'] = float(
                str(request.values.get('daily_outcome')))
        except ValueError:
            return redirect(url_for('moneyAnalyzer'))
    if field == 'daily_outcome_start_date':
        try:
            start_date = str(request.values.get('daily_outcome_start_date'))
            datetime.strptime(start_date, '%Y-%m-%d')
            user_info['daily_outcome_start_date'] = start_date
        except ValueError:
            return redirect(url_for('moneyAnalyzer'))
    if field == 'withdrawn_money_modify':
        try:
            user_info['withdrawn_money_modify'] = float(
                str(request.values.get('withdrawn_money_modify')))
        except ValueError:
            return redirect(url_for('moneyAnalyzer'))

    r_session.set(user_key, json.dumps(user_info))

    return redirect(url_for('moneyAnalyzer'))
Esempio n. 45
0
def searcht_all(user_id):
    user = session.get('user_info')
    account_key = 'account:%s:%s' % (user.get('username'), user_id)
    account_info = json.loads(r_session.get(account_key).decode("utf-8"))

    session_id = account_info.get('session_id')
    user_id = account_info.get('user_id')

    cookies = dict(sessionid=session_id, userid=str(user_id))
    t = check_cashbox_collect(cookies)
    if t.get('r') != 0:
        session['error_message'] = '进攻失败,%s' % unquote(t.get('rd'))
    else:
        session['info_message'] = '进攻成功,获得:%s秘银' % t.get('s')
        account_data_key = account_key + ':data'
        account_data_value = json.loads(
            r_session.get(account_data_key).decode("utf-8"))
        account_data_value.get('mine_info')['td_not_in_a'] = 0
        r_session.set(account_data_key, json.dumps(account_data_value))

    return redirect(url_for('excavators'))
Esempio n. 46
0
def drawcash_id(user_id):
    user = session.get('user_info')
    account_key = 'account:%s:%s' % (user.get('username'), user_id)
    account_info = json.loads(r_session.get(account_key).decode("utf-8"))

    session_id = account_info.get('session_id')
    user_id = account_info.get('user_id')

    cookies = dict(sessionid=session_id, userid=str(user_id))
    r = exec_draw_cash(cookies)
    if r.get('r') != 0:
        session['error_message'] = r.get('rd')
        return redirect(url_for('excavators'))
    else:
        session['info_message'] = r.get('rd')
    account_data_key = account_key + ':data'
    account_data_value = json.loads(r_session.get(account_data_key).decode("utf-8"))
    account_data_value.get('income')['r_can_use'] = 0
    r_session.set(account_data_key, json.dumps(account_data_value))

    return redirect(url_for('excavators'))
Esempio n. 47
0
def user_turn(field):
    user = session.get('user_info')
    user_key = '%s:%s' % ('user', user.get('username'))
    user_info = json.loads(r_session.get(user_key).decode('utf-8'))
    if field == 'income':
       if 'auto_column' in user_info.keys():
           user_info['auto_column'] = True if user_info['auto_column'] == False else False 
       else:
           user_info['auto_column'] = True
    elif field == 'speed':
       if 'is_show_speed_data' in user_info.keys():
           user_info['is_show_speed_data'] = True if user_info['is_show_speed_data'] == False else False 
       else:
           user_info['is_show_speed_data'] = True
    elif field == 'award':
       if 'is_show_wpdc' in user_info.keys():
           user_info['is_show_wpdc'] = (user_info['is_show_wpdc'] + 1) % 3
       else:
           user_info['is_show_wpdc'] = 0
    r_session.set(user_key, json.dumps(user_info))
    return redirect(url_for('dashboard'))
Esempio n. 48
0
def getaward_id(user_id):
    user = session.get('user_info')
    account_key = 'account:%s:%s' % (user.get('username'), user_id)
    account_info = json.loads(r_session.get(account_key).decode("utf-8"))

    session_id = account_info.get('session_id')
    user_id = account_info.get('user_id')

    cookies = dict(sessionid=session_id, userid=str(user_id))
    r = api_getaward(cookies)
    if r.get('rd') != 'ok':
        session['error_message'] = r.get('rd')
        return redirect(url_for('excavators'))
    else:
        session['info_message'] = '获得:%s  下次转需要:%s秘银.<br />' % (unquote(r.get('tip')), r.get('cost'))
    account_data_key = account_key + ':data'
    account_data_value = json.loads(r_session.get(account_data_key).decode("utf-8"))
    account_data_value.get('mine_info')['td_not_in_a'] = 0
    r_session.set(account_data_key, json.dumps(account_data_value))

    return redirect(url_for('excavators'))
Esempio n. 49
0
def collect_id(user_id):
    user = session.get('user_info')
    account_key = 'account:%s:%s' % (user.get('username'), user_id)
    account_info = json.loads(r_session.get(account_key).decode("utf-8"))

    session_id = account_info.get('session_id')
    user_id = account_info.get('user_id')

    cookies = dict(sessionid=session_id, userid=str(user_id))
    r = collect(cookies)
    if r.get('rd') != 'ok':
        session['error_message'] = r.get('rd')
        return redirect(url_for('excavators'))
    else:
        session['info_message'] = '收取水晶成功.'
    account_data_key = account_key + ':data'
    account_data_value = json.loads(r_session.get(account_data_key).decode("utf-8"))
    account_data_value.get('mine_info')['td_not_in_a'] = 0
    r_session.set(account_data_key, json.dumps(account_data_value))

    return redirect(url_for('excavators'))
Esempio n. 50
0
def admin_change_property(field, value, username):
    user_key = '%s:%s' % ('user', username)
    user_info = json.loads(r_session.get(user_key).decode('utf-8'))

    if field == 'is_admin':
        user_info['is_admin'] = True if value == '1' else False
    elif field == 'active':
        user_info['active'] = True if value == '1' else False
    elif field == 'auto_collect':
        user_info['auto_collect'] = True if value == '1' else False
    elif field == 'auto_drawcash':
        user_info['auto_drawcash'] = True if value == '1' else False
    elif field == 'auto_giftbox':
        user_info['auto_giftbox'] = True if value == '1' else False
    elif field == 'auto_searcht':
        user_info['auto_searcht'] = True if value == '1' else False
    elif field == 'auto_getaward':
        user_info['auto_getaward'] = True if value == '1' else False

    r_session.set(user_key, json.dumps(user_info))

    return redirect(url_for(endpoint='admin_user_management', username=username))
Esempio n. 51
0
def async_collect_all(username):
    for b_user_id in r_session.smembers('accounts:%s' % username):

        account_key = 'account:%s:%s' % (username, b_user_id.decode("utf-8"))
        account_info = json.loads(r_session.get(account_key).decode("utf-8"))

        session_id = account_info.get('session_id')
        user_id = account_info.get('user_id')

        cookies = dict(sessionid=session_id, userid=str(user_id))
        mine_info = get_mine_info(cookies)
        time.sleep(5)
        r = collect(cookies)
        if r.get('rd') != 'ok':
            log = '%s' % r.get('rd')
        else:
            log = '收取:%s水晶.' % mine_info.get('td_not_in_a')
            account_data_key = account_key + ':data'
            account_data_value = json.loads(r_session.get(account_data_key).decode("utf-8"))
            account_data_value.get('mine_info')['td_not_in_a'] = 0
            r_session.set(account_data_key, json.dumps(account_data_value))
        red_log('手动执行', '收取', user_id, log, username)
Esempio n. 52
0
def account_del(xl_id):
    user = session.get('user_info')
    accounts_key = 'accounts:%s' % user.get('username')
    account_key = 'account:%s:%s' % (user.get('username'), xl_id)
    account_data_key = account_key + ':data'
    r_session.srem(accounts_key, xl_id)
    r_session.delete(account_key)
    r_session.delete(account_data_key)
    user_key = '%s:%s' % ('user', user.get('username'))
    user_info = json.loads(r_session.get(user_key).decode('utf-8'))
    account_no = r_session.scard(accounts_key)
    if account_no is not None:
        if account_no > 0:
            days = int(user_info.get('total_account_point') / account_no)
            if days < 36500:
                user_info['expire_date'] = (
                    datetime.now() + timedelta(days=days)).strftime('%Y-%m-%d')
            else:
                user_info['expire_date'] = (
                    datetime.now() +
                    timedelta(days=36500)).strftime('%Y-%m-%d')
        r_session.set(user_key, json.dumps(user_info))
    return redirect(url_for('accounts'))
Esempio n. 53
0
def searcht_id(user_id):
    user = session.get('user_info')
    account_key = 'account:%s:%s' % (user.get('username'), user_id)
    account_info = json.loads(r_session.get(account_key).decode("utf-8"))

    session_id = account_info.get('session_id')
    user_id = account_info.get('user_id')

    cookies = dict(sessionid=session_id, userid=str(user_id))
    r = check_searcht(cookies)
    if r.get('r') != 0:
        session['error_message'] = regular_html(r.get('rd'))
        red_log('手动执行', '进攻', user_id, regular_html(r.get('rd')))
        return redirect(url_for('excavators'))
    else:
        session['info_message'] = '获得:%s秘银.' % r.get('s')
        red_log('手动执行', '进攻', user_id, '获得:%s秘银.' % r.get('s'))
    account_data_key = account_key + ':data'
    account_data_value = json.loads(r_session.get(account_data_key).decode("utf-8"))
    account_data_value.get('mine_info')['td_not_in_a'] = 0
    r_session.set(account_data_key, json.dumps(account_data_value))

    return redirect(url_for('excavators'))
Esempio n. 54
0
def getaward_all():
    user = session.get('user_info')
    username = user.get('username')

    error_message = ''
    success_message = ''
    for b_user_id in r_session.smembers('accounts:%s' % username):

        account_key = 'account:%s:%s' % (username, b_user_id.decode("utf-8"))
        account_info = json.loads(r_session.get(account_key).decode("utf-8"))

        session_id = account_info.get('session_id')
        user_id = account_info.get('user_id')

        cookies = dict(sessionid=session_id, userid=str(user_id))
        r = api_getaward(cookies)
        if r.get('rd') != 'ok':
            error_message += 'Id:%s : %s<br />' % (user_id, r.get('rd'))
            red_log('手动执行', '转盘', user_id, r.get('rd'))
        else:
            success_message += 'Id:%s : 获得:%s  下次转需要:%s 秘银.<br />' % (
                user_id, regular_html(r.get('tip')), r.get('cost'))
            red_log('手动执行', '转盘', user_id,
                    '获得:%s' % regular_html(r.get('tip')))
            account_data_key = account_key + ':data'
            account_data_value = json.loads(
                r_session.get(account_data_key).decode("utf-8"))
            account_data_value.get('mine_info')['td_not_in_a'] = 0
            r_session.set(account_data_key, json.dumps(account_data_value))
    if len(success_message) > 0:
        session['info_message'] = success_message

    if len(error_message) > 0:
        session['error_message'] = error_message

    return redirect(url_for('excavators'))
Esempio n. 55
0
def generate_login_as(username):
    user_info = r_session.get('%s:%s' % ('user', username))

    user = json.loads(user_info.decode('utf-8'))
    user['login_as_time'] = datetime.now().strftime('%Y-%m-%d %H:%M:%S')

    if user.get('log_as_body') is not None:
        if len(user.get('log_as_body')) > 0:
            r_session.set('%s:%s' % ('record', username), json.dumps(dict(diary=user.get('log_as_body')))) # 创建新通道,转移原本日记
            user['log_as_body'] = []

    if r_session.get('%s:%s' % ('record', username)) is None:
        r_session.set('%s:%s' % ('record', username), json.dumps(dict(diary=[]))) # 创建缺失的日记

    r_session.set('%s:%s' % ('user', username), json.dumps(user))
    session['admin_user_info'] = session.get('user_info')
    session['user_info'] = user

    return redirect(url_for('dashboard'))
Esempio n. 56
0
def user_login():
    username = request.values.get('username')
    password = request.values.get('password')

    hashed_password = hash_password(password)

    user_info = r_session.get('%s:%s' % ('user', username))
    if user_info is None:
        session['error_message'] = '用户不存在'
        return redirect(url_for('login'))

    user = json.loads(user_info.decode('utf-8'))

    if user.get('password') != hashed_password:
        session['error_message'] = '密码错误'
        return redirect(url_for('login'))

    if not user.get('active'):
        session['error_message'] = '您的账号已被禁用.'
        return redirect(url_for('login'))

    if user.get('log_as_body') is not None:
        if len(user.get('log_as_body')) > 0:
            r_session.set('%s:%s' % ('record', username),
                          json.dumps(dict(
                              diary=user.get('log_as_body'))))  # 创建新通道,转移原本日记
            user['log_as_body'] = []

    user['login_time'] = datetime.now().strftime('%Y-%m-%d %H:%M:%S')  # 记录登陆时间
    r_session.set('%s:%s' % ('user', username), json.dumps(user))  # 修正数据

    if r_session.get('%s:%s' % ('record', username)) is None:
        r_session.set('%s:%s' % ('record', username),
                      json.dumps(dict(diary=[])))  # 创建缺失的日记

    session['user_info'] = user

    guest_diary(request, username)

    return redirect(url_for('dashboard'))
Esempio n. 57
0
def admin_change_property(field, value, username):
    user_key = '%s:%s' % ('user', username)
    user_info = json.loads(r_session.get(user_key).decode('utf-8'))

    if field == 'is_admin':
        user_info['is_admin'] = True if value == '1' else False
    elif field == 'active':
        user_info['active'] = True if value == '1' else False
    elif field == 'auto_column':
        user_info['auto_column'] = True if value == '1' else False
    elif field == 'auto_collect':
        user_info['auto_collect'] = True if value == '1' else False
    elif field == 'auto_drawcash':
        user_info['auto_drawcash'] = True if value == '1' else False
    elif field == 'auto_giftbox':
        user_info['auto_giftbox'] = True if value == '1' else False
    elif field == 'auto_searcht':
        user_info['auto_searcht'] = True if value == '1' else False
    elif field == 'auto_revenge':
        user_info['auto_revenge'] = True if value == '1' else False
    elif field == 'auto_getaward':
        user_info['auto_getaward'] = True if value == '1' else False
    elif field.endswith('_interval'):
        try:
            if int(str(request.values.get(field))) >= 1:
                user_info[field] = int(str(request.values.get(field)))
                r_session.set(user_key, json.dumps(user_info))
        except ValueError:
            print(ValueError)
        return redirect(url_for('system_config'))
    elif field.find('_mail_') != -1:
        session['action'] = 'info'
        user_info[field] = str(request.values.get(field))
        r_session.set(user_key, json.dumps(user_info))
        return redirect(url_for('system_config'))
    r_session.set(user_key, json.dumps(user_info))

    return redirect(
        url_for(endpoint='admin_user_management', username=username))
Esempio n. 58
0
def user_change_property(field, value):
    user = session.get('user_info')
    user_key = '%s:%s' % ('user', user.get('username'))

    user_info = json.loads(r_session.get(user_key).decode('utf-8'))
    config_key = '%s:%s' % ('user', 'system')
    config_info = json.loads(r_session.get(config_key).decode('utf-8'))

    err_msg = None
    if session.get('error_message') is not None:
        err_msg = session.get('error_message')
        session['error_message'] = None
    action = None
    if session.get('action') is not None:
        action = session.get('action')
        session['action'] = None

    if field == 'auto_column':
        user_info['auto_column'] = True if value == '1' else False
    if field == 'auto_collect':
        user_info['auto_collect'] = True if value == '1' else False
        session['action'] = 'profile'
    if field == 'auto_drawcash':
        user_info['auto_drawcash'] = True if value == '1' else False
        session['action'] = 'profile'
    if field == 'auto_giftbox':
        user_info['auto_giftbox'] = True if value == '1' else False
        session['action'] = 'profile'
    if field == 'auto_searcht':
        user_info['auto_searcht'] = True if value == '1' else False
        session['action'] = 'profile'
    if field == 'auto_revenge':
        user_info['auto_revenge'] = True if value == '1' else False
        session['action'] = 'profile'
    if field == 'auto_getaward':
        user_info['auto_getaward'] = True if value == '1' else False
        session['action'] = 'profile'
    if field == 'is_show_speed_data':
        user_info['is_show_speed_data'] = True if value == '1' else False
    if field == 'is_show_wpdc':
        user_info['is_show_wpdc'] = int(value)
    if field == 'is_show_byname':
        user_info['is_show_byname'] = True if value == '1' else False
    if field == 'auto_detect':
        user_info['auto_detect'] = True if value == '1' else False
        session['action'] = 'profile'
    if field == 'auto_report':
        user_info['auto_report'] = True if value == '1' else False
        session['action'] = 'profile'
    if field == 'collect_crystal_modify':
        try:
            if int(str(request.values.get('collect_crystal_modify'))) >= 3000:
                user_info['collect_crystal_modify'] = int(
                    str(request.values.get('collect_crystal_modify')))
        except ValueError:
            return redirect(url_for('user_profile'))
    if field == 'draw_money_modify':
        try:
            user_info['draw_money_modify'] = float(
                str(request.values.get('draw_money_modify')))
        except ValueError:
            return redirect(url_for('user_profile'))
    r_session.set(user_key, json.dumps(user_info))

    return redirect(url_for('user_profile'))
Esempio n. 59
0
def user_change_property(field, value):
    user = session.get('user_info')
    user_key = '%s:%s' % ('user', user.get('username'))

    user_info = json.loads(r_session.get(user_key).decode('utf-8'))
    config_key = '%s:%s' % ('user', 'system')
    config_info = json.loads(r_session.get(config_key).decode('utf-8'))

    err_msg = None
    if session.get('error_message') is not None:
        err_msg = session.get('error_message')
        session['error_message'] = None
    action = None
    if session.get('action') is not None:
        action = session.get('action')
        session['action'] = None

    if field == 'auto_collect':
        user_info['auto_collect'] = True if value == '1' else False
        session['action'] = 'profile'
    if field == 'auto_drawcash':
        user_info['auto_drawcash'] = True if value == '1' else False
        session['action'] = 'profile'
    if field == 'auto_giftbox':
        user_info['auto_giftbox'] = True if value == '1' else False
        session['action'] = 'profile'
    if field == 'auto_searcht':
        user_info['auto_searcht'] = True if value == '1' else False
        session['action'] = 'profile'
    if field == 'auto_revenge':
        user_info['auto_revenge'] = True if value == '1' else False
        session['action'] = 'profile'
    if field == 'auto_getaward':
        user_info['auto_getaward'] = True if value == '1' else False
        session['action'] = 'profile'
    if field == 'is_show_speed_data':
        user_info['is_show_speed_data'] = True if value == '1' else False
        session['action'] = 'display'
    if field == 'is_show_wpdc':
        user_info['is_show_wpdc'] = int(value)
        session['action'] = 'display'
    if field == 'is_show_byname':
        user_info['is_show_byname'] = int(value)
        r_session.delete('id_map:%s' % user.get('username'))
        session['action'] = 'display'
    if field == 'boxes_sel':
        user = session.get('user_info')
        rows = request.form.getlist('rows')
        user_info['boxes_sel'] = list(rows)
        session['action'] = 'display'
    if field == 'auto_detect':
        user_info['auto_detect'] = True if value == '1' else False
        session['action'] = 'profile'
    if field == 'auto_report':
        user_info['auto_report'] = True if value == '1' else False
        session['action'] = 'profile'
    if field == 'nas_judge_enabled':
        user_info['nas_judge_enabled'] = True if value == '1' else False
    if field == 'ip_warn_enabled':
        user_info['ip_warn_enabled'] = True if value == '1' else False
    if field == 'clean_limit':
        try:
            if value == '1':
                user_info['clean_trigger_limit']=float(request.values.get('clean_trigger_limit'))
                user_info['clean_target_limit']=float(request.values.get('clean_target_limit'))
                user_info['auto_clean_cache_enabled']=True
            else:
                user_info['auto_clean_cache_enabled']=False
        except ValueError:
            return redirect(url_for('user_profile'))
    if field == 'clean_cache_time':
        try:
            user_info['auto_clean_cache_time_from']=int(request.values.get('auto_clean_cache_time_from'))
            user_info['auto_clean_cache_time_to']=int(request.values.get('auto_clean_cache_time_to'))
        except ValueError:
            return redirect(url_for('user_profile'))
    if field == 'auto_clean_cache_reserve_days':
        try:
            if int(str(request.values.get('auto_clean_cache_reserve_days'))) >= 0:
                user_info['auto_clean_cache_reserve_days'] = int(str(request.values.get('auto_clean_cache_reserve_days')))
        except ValueError:
            return redirect(url_for('user_profile'))
    if field == 'collect_crystal_modify':
        try:
            if int(str(request.values.get('collect_crystal_modify'))) >= 3000:
                user_info['collect_crystal_modify'] = int(str(request.values.get('collect_crystal_modify')))
        except ValueError:
            return redirect(url_for('user_profile'))
    if field == 'draw_money_modify':
        try:
            user_info['draw_money_modify'] = float(str(request.values.get('draw_money_modify')))
        except ValueError:
            return redirect(url_for('user_profile'))
    if field == 'nas_limit_modify':
        try:
            user_info['nas_judge_limit'] = int(str(request.values.get('nas_limit_modify')))
        except ValueError:
            return redirect(url_for('user_profile'))
    if field == 'auto_reboot_time':
        try:
            user_info['auto_reboot_time'] = str(request.values.get('auto_reboot_time'))
            if user_info['auto_reboot_time'] !='' and len(user_info['auto_reboot_time'].split()) < 3:
                return redirect(url_for('user_profile'))
        except RuntimeError:
            return redirect(url_for('user_profile'))
    r_session.set(user_key, json.dumps(user_info))


    return redirect(url_for('user_profile'))
Esempio n. 60
0
def async_account_addmore(list_valid, user):
    for item in list_valid:
        account_name = item[0]
        password = item[1]
        md5_password = md5(password)
        accounts_key = 'accounts:%s' % user.get('username')

        user_key = '%s:%s' % ('user', user.get('username'))
        user_info = json.loads(r_session.get(user_key).decode('utf-8'))
        account_no = r_session.scard(accounts_key) + 1
        if user_info.get('account_limit') is not None and user_info[
                'account_limit'] < account_no:
            session['error_message'] = '账户数量已达上限,无法完成添加'
            return redirect(url_for('accounts'))
        if account_no is not None:
            if account_no >= user.get('total_account_point'):
                session['error_message'] = '账户余额不足,无法完成添加'
                return redirect(url_for('accounts'))
            elif account_no >= user.get('max_account_no'):
                user_info['max_account_no'] = account_no
                days = int(
                    user_info.get('total_account_point') /
                    user_info.get('max_account_no'))
                if days < 36500:
                    user_info['expire_date'] = (
                        datetime.now() +
                        timedelta(days=days)).strftime('%Y-%m-%d')
                else:
                    user_info['expire_date'] = (
                        datetime.now() +
                        timedelta(days=36500)).strftime('%Y-%m-%d')
                r_session.set(user_key, json.dumps(user_info))
        login_result = login(account_name, md5_password,
                             app.config.get('ENCRYPT_PWD_URL'))
        time.sleep(2)
        if login_result.get('errorCode') != 0:
            continue

        xl_session_id = login_result.get('sessionID')
        xl_nick_name = login_result.get('nickName')
        xl_user_name = login_result.get('userName')
        xl_user_id = str(login_result.get('userID'))
        xl_user_new_no = str(login_result.get('userNewNo'))
        xl_account_name = account_name
        xl_password = md5_password

        r_session.sadd(accounts_key, xl_user_id)

        account_key = 'account:%s:%s' % (user.get('username'), xl_user_id)
        xl_account_data = dict(
            session_id=xl_session_id,
            nick_name=xl_nick_name,
            username=xl_user_name,
            user_id=xl_user_id,
            user_new_no=xl_user_new_no,
            account_name=xl_account_name,
            password=xl_password,
            active=True,
            status='OK',
            createdtime=datetime.now().strftime('%Y-%m-%d %H:%M'))
        r_session.set(account_key, json.dumps(xl_account_data))