def api(): uid = _apikeyvalidate(g.db,request.args.get('key', 0)) if uid == 0: abort(404) type = request.args.get('t', 0) if type == 'A': #add order contract_id = request.args.get('cid', 0,type=int) b_s = request.args.get('bs', 0) point = request.args.get('pt', 0) lots = request.args.get('lt', 0,type=int) res = _add_order(g.db,uid,contract_id,b_s,point,lots,'S') return jsonify(res) elif type == 'C': #cancel order orderid = request.args.get('oid', 0) res = _cancel_order(g.db,uid,orderid) return jsonify(res) elif type == 'O': #get orderlist res = _update_user(g.db,{'user_id':uid},['orders']) return jsonify(res) elif type == 'U': #Update server contract_id = request.args.get('cid', 0,type=int) _update_contract(g.db,contract_id,'D') return jsonify({'category':'suc'}) else: abort(404)
def admin(): if 'email' not in session or session['email'] <> app.config['ADMIN']: abort(404) if request.method == 'POST': if request.form['a_r'] == 'R': cur = g.db.cursor() cur.execute("UPDATE contract SET status='R' WHERE contract_id=%s",request.form['id']) g.db.commit() cur.close() flash("Reject Contract "+request.form['id']+" Successfully") if request.form['a_r'] == 'M': cur = g.db.cursor() cur.execute("UPDATE contract SET apinstruction=%s WHERE contract_id=%s",(request.form['apinstruction'],request.form['id'])) g.db.commit() cur.close() flash("Update Contract "+request.form['id']+" Approval Instruction Successfully") elif request.form['a_r'] == 'A': cur = g.db.cursor() cur.execute("UPDATE contract SET status='P' WHERE contract_id=%s and status='N'",request.form['id']) cur.execute("UPDATE contract SET status='Q' WHERE contract_id=%s and status='C'",request.form['id']) cur.execute("UPDATE contract c join users u on c.owner = u.user_id SET u.invite = u.invite + 5 WHERE c.contract_id=%s",request.form['id']) g.db.commit() cur.close() flash("Approval Contract "+request.form['id']+" Successfully") _update_contract(g.db,request.form['id'],'D') return redirect(url_for('admin')) cur = g.db.cursor() cur.execute("select a.account, a.balance,b.bio from btc_account a left join \ (select user,sum(amount) as bio from btc_trans where timestamp > NOW() + interval -30 day group by user ) b on a.account = b.user") btc_account = [dict(account=orow[0],balance=orow[1],bio=orow[2]) for orow in cur.fetchall()] return render_template('admin.html',u = btc_account)
def trade(): if 'user_id' not in session: return redirect(url_for('home')) if request.method == 'POST': #---Add order--- res = _add_order(g.db,session['user_id'],long(request.form['contract_id']),request.form['b_s'], request.form['point'], request.form['lots']) session['bs'] = request.form['b_s'] flash(res['msg'],res['category']) if res['category'] == 'suc': if 'Deal' in res['msg']: _update_contract(g.db,request.form['contract_id'],'D') else: _update_contract(g.db,request.form['contract_id'],'C') return redirect(url_for('trade',c=request.form['contract_id'])) else: co = request.args.get('co', 0,type=int) contract_id = request.args.get('c', 0, type=int) if co >= 1: #Cancel order res = _cancel_order(g.db,session['user_id'],co) flash(res['msg'],res['category']) _update_contract(g.db,contract_id,'C') return redirect(url_for('trade',c=contract_id)) else: g.u = _update_user(g.db,session,[]) if contract_id == 0 and 'latestcont' in session: contract_id = session['latestcont'] return render_template('trade.html',default_cid = contract_id )
def eod_process(): global db, cur, t, gv_contract db = _connect_db() cur = db.cursor() forced_close() open_cont() close_cont() return_fee() settle_cont() achieve_cont() balance2date(datetime.date.today() - datetime.timedelta(1)) update_feerate() _update_contract(db) cur.close() db.close() t = threading.Timer(EOD_INTERVAL, eod_process) t.start() print >>sys.stderr, time.strftime("%d_%H:%M", time.localtime(time.time())), "EOD Process Finished."
def before_first_request(): g.db = _connect_db() _update_contract(g.db) _start_eod_sevice() _start_twt_sevice()
def account(): if 'user_id' not in session: return redirect(url_for('home')) if request.method == 'POST': type = request.args.get('t', 0) if type == 'P': #reset password if _loginuser(g.db,session['email'],request.form['opassword']): _update_pass(g.db,session['email'],request.form['password']) msg = dict(msg = 'Password Changed Successfully.',type ='suc') else: msg = dict(msg='Orignal Password Not Match.',type = 'err') return jsonify(msg) elif type == 'Q': #reset capital password if _vali_cpass(g.db,session['email'],request.form['opassword']): _update_cpass(g.db,session['email'],request.form['password']) if request.form['opassword'] == "not set yet": flash('Capital Password Set Successfully.','suc') return jsonify({'goto':url_for("account",tab=3)}) msg = dict(msg = 'Capital Password Changed Successfully.',type ='suc') else: msg = dict(msg='Orignal Capital Password Not Match.',type = 'err') return jsonify(msg) elif type == 'E': #resend email _send_mail(session['email'],render_template("email/activate.html",para={'user': session['email'].split('@')[0].upper(), 'url':url_for('register',v=_activecode(g.db,session['email']))})) #_send_mail(session['email'],'activate',{'url':request.url_root+url_for('register',v=_activecode(g.db,session['email']))}) msg = dict(msg='Validate Email sent successfully',type = 'suc') return jsonify(msg) elif type == 'I': #invite email if not validateEmail(request.form['email']): flash('Not validate Email','err') elif _change_invitenum(g.db,session['user_id'],-1): _send_mail(request.form['email'],render_template("email/invite.html",para={'user': request.form['email'].split('@')[0].upper(), 'url':url_for('register',r = _enrcode(session['user_id'],request.form['email'])),'refer':session['email'].split('@')[0].upper()})) flash('Invite Email Sent.','suc') return jsonify({'goto':url_for("account",tab=0)}) else: msg = dict(msg='Not Enough Email Invite.',type = 'err') return jsonify(msg) elif type in ['C','D','S']: #new ,modify and settle contract cid = long(request.form['id']) if cid == 0 or gv_contract[cid]['owner'] == session['email']: if type == 'C': msg,cid = _modify_cont(g.db,cid,request.form['code'],request.form['btc_multi'],request.form['opendate'],request.form['opentime'],request.form['settledate'],request.form['settletime'],request.form['leverage'],\ request.form['fullname'],session['user_id'],request.form['twitter_id'],request.form['write_fee'],request.form['region'],request.form['sector'],request.form['description'],request.form['movelimit']) elif type == 'D': #delete msg = _delete_cont(g.db,cid) elif type == 'S': #settle msg = _settle_cont(g.db,cid,request.form['settlepoint'],request.form['settleproof']) else: msg = dict(msg='Contract Owner Not Match.',type = 'err') if msg['type'] == 'suc': flash(msg['msg'],msg['type']) _update_contract(g.db,cid,'D') return jsonify({'goto':url_for("account",tab=2)}) else: return jsonify(msg) g.u=_update_user(g.db,session,['positions','info','rtvol','log']) tab = request.args.get('tab', 0) return render_template('account.html',tab=tab)