def admin(cookies_value): cookies = cookies_value task_db = db() a = task_db.auth_admin_cookies(cookies) if a['status'] == 0 and a['data']: result_1 = task_db.select_users_miners() if result_1['status'] == 0: users_number = result_1['data']['users'] miners_number = result_1['data']['miners'] result_2 = task_db.select_all_miner_info() if result_2['status'] == 0: result_3 = {} for x in result_2['data']: result_3[x[1]] = [] for y in result_2['data']: result_3[y[1]].append({y[0]: y[2]}) return json.dumps({ 'status': 0, 'user_number': users_number, 'miners_number': miners_number, 'data': result_3 }) else: return json.dumps({ 'status': -1, 'errmsg': 'error db result 2' }) else: return json.dumps({'status': -1, 'errmsg': 'error db result 1'}) else: return json.dumps({'status': -1, 'errmsg': 'erroe cookies'})
def admin_login(): if safelogin(request): username = request.json['username'] password = request.json['password'] task_db = db() result = task_db.auth_admin(username, password) if result['status'] == 0: if result['data']: get_authtoken = task_db.select_admin_authtoken(username) if get_authtoken['status'] == 0 and get_authtoken['data']: return json.dumps({ 'status': 0, 'data': { 'username': username, 'cookies': get_authtoken['data']['cookies'], 'token': get_authtoken['data']['token'] } }) else: return json.dumps({ 'status': -1, 'errmsg': 'get authtoken failed' }) else: return json.dumps({ 'status': -1, 'errmsg': 'select database failed' }) else: return json.dumps({'status': -1, 'errmsg': 'error input data'})
def job_1(): ''' { '*****@*****.**':[{'miner_id':'miner_data'},...], .... } ''' task_db = db() result = task_db.select_all_miner_info() if result['status'] == 0: data_list = {} for x in result['data']: data_list[x[1]] = [] for y in result['data']: data_list[y[1]].append({y[0]:y[2]}) if data_list: global send_queue for z in data_list: send_queue.put(z) return True else: send_log('job1 没有需要发送的矿机日报') return False else: send_log('job1 获取所有矿机信息失败') return False
def miner(): miner_data = request.json owner = miner_data['data']['owner'] miner_id = miner_data['data']['miner_id'] now_miner_status = miner_data['data']['miner_data'] task_db = db() user_exist = task_db.check_user_miner(owner) # 确认是否有这个用户 if user_exist['status'] == 0: if user_exist['data']: # 有这个用户 try: miner_exist = task_db.check_minerid_exist( miner_id) # 检查是否有这个矿机id if miner_exist['data']: # 矿机已存在 更新矿机状态即可 before_status = task_db.select_status_from_miner_id( str(miner_id))['data'] for x in now_miner_status: before_status[x] = now_miner_status[x] result = task_db.update_miner_status( str(miner_id), json.dumps(before_status)) if result['status'] == 0: return json.dumps({ 'status': 0, 'data': 'update finished' }) else: return json.dumps({ 'status': -1, 'errmsg': 'db update miner status failed', 'db:': result }) else: # 矿机id不存在,新矿机,插入第一次矿机数据 result = task_db.insert_miner_data( str(miner_id), str(owner), json.dumps(now_miner_status)) if result['status'] == 0: return json.dumps({ 'status': 0, 'data': 'insert finished' }) else: return json.dumps({ 'status': -1, 'errmsg': 'db insert miner status failed', 'db:': result }) except Exception as e: logger('json miner data', str(e)) return json.dumps({'status': -1, 'errmsg': str(e)}) else: return json.dumps({'status': -1, 'errmsg': 'this user not exist'}) else: return json.dumps({'status': -1, 'errmsg': 'db error'})
def user(cookies_value): ''' 用户登陆完毕后,api会请求相关信息,矿机数据 ''' cookies = cookies_value task_db = db() result_1 = task_db.select_username_from_cookies(cookies) if result_1['status'] == 0: username = result_1['data'] result_2 = task_db.select_miners_from_username(username) if result_2['status'] == 0: return json.dumps({ 'status': 0, 'miners_number': result_2['miners_number'], 'data': result_2['data'] }) else: return json.dumps({'status': 0, 'data': 0}) else: return json.dumps({'status': -1, 'errmsg': 'db error'})
def login(): ''' 登陆完毕,前端应该转移到Dashboard页面,api请求/user的相关信息 ''' if safelogin(request): username = request.json['username'] password = request.json['password'] task_db = db() result = task_db.auth_username_password(username, password) if result['status'] == 0: if result['data']: get_authtoken = task_db.select_user_authtoken(username) if get_authtoken['status'] == 0 and get_authtoken['data']: # return json.dumps({'status':0,'data':{'username':username,'cookies':get_authtoken['data']['cookies'],'token':get_authtoken['data']['token']}}) return json.dumps({ 'status': 0, 'userinfo': { 'userName': username }, 'token': get_authtoken['data']['token'] }) else: return json.dumps({ 'status': -1, 'errmsg': 'get authtoken failed' }) else: return json.dumps({ 'status': -1, 'errmsg': 'error username or password' }) else: return json.dumps({ 'status': -1, 'errmsg': 'select database failed' }) else: return json.dumps({'status': -1, 'errmsg': 'error input data'})
def register(): ''' 注册完毕,前端应该转移到登陆页面 ''' if saferegister(request): username = request.json['username'] password = request.json['password'] registertime = int(time.time()) user_uuid = str(uuid.uuid1()) create_authtoken = auth(username, user_uuid) cookies = create_authtoken.create_cookies() token = create_authtoken.create_token() task_db = db() result = task_db.insert_user(username, password, registertime, user_uuid, cookies, token) if result['status'] == 0: return json.dumps({'status': 0, 'data': {'username': username}}) else: return json.dumps({ 'status': -1, 'errmsg': 'insert database failed' }) else: return json.dumps({'status': -1, 'errmsg': 'error input data'})