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'))
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'))
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'))
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'))
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))
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))
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))
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'))
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"))
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')
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'))
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'))
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)
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'))
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'))
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'))
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'))
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'))
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'))
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'
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)
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'))
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')
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'))
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'))
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')
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"))
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'))
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)
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)
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'))
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))
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'))
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'))
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'))
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'))
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))
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')
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'))
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))
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))
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'))
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))
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'))
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'))
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'))
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'))
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'))
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'))
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))
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)
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'))
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'))
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'))
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'))
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'))
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))
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'))
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'))
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))