Beispiel #1
0
def change_password_submit():
    mobile = request.form.get('mobile')
    password = request.form.get('password')
    code = request.form.get('code', '')
    v, reason = Code.verify(mobile, code)
    if v:
        try:
            u = User.query_one({'mobile': mobile})
            u.change_password(password)
        except Exception as e:
            return jsonify(status=500, reason=str(e))
        return jsonify(status=200)
    else:
        return jsonify(status=400, reason=reason)
Beispiel #2
0
def check_login():
    if current_user.is_authenticated():
        return jsonify(status=200)

    mobile = request.form.get('mobile')
    password = request.form.get('password')
    remember = request.form.get('remember') == 'on'
    u = User.check_login(mobile, password)
    if u:
        login_user(u, remember=remember)
        u.last_login_at = datetime.utcnow()
        u.upsert()
        return jsonify(status=200, reason='')
    else:
        return jsonify(status=403, reason='用户名或密码错误')
Beispiel #3
0
def register():
    mobile = request.form.get('mobile', '')
    username = request.form.get('username', '')
    password = request.form.get('password', '')
    invited_by = request.form.get('invited_by', '')
    code = request.form.get('code', '')
    v, reason = Code.verify(mobile, code)
    if v:
        try:
            u = User.create_user(mobile, username, password, invited_by)
        except Exception as e:
            return jsonify(status=500, reason=str(e))
        else:
            u.activate()
        return jsonify(status=200)
    else:
        return jsonify(status=400, reason=reason)
Beispiel #4
0
Datei: app.py Projekt: sopnic/ybk
 def load_user(user_id):
     return User.query_one({'_id': user_id})
Beispiel #5
0
Datei: app.py Projekt: maocis/ybk
 def load_user(user_id):
     return User.query_one({'_id': user_id})
Beispiel #6
0
def update_trade_account(trade_account):
    ta = trade_account
    log.info('更新账号{}的信息'.format(ta._id))
    if not ta.login_password:
        ta.verified = False
        ta.verify_message = '没有密码不能登录'
    else:
        try:
            t = Trader(ta.exchange, ta.login_name, ta.login_password)
        except KeyError:
            ta.verified = False
            ta.verify_message = '该交易所协议未破解'
        except Exception as e:
            ta.verified = False
            ta.verify_message = str(e)
        else:
            if not t.is_logged_in:
                ta.verified = False
                ta.verify_message = t.last_error
            else:
                ta.verified = True

                # update money
                ta.money = t.money()
                # update position
                position = t.position()
                if position is not None:
                    for p in position:
                        p['name'] = Collection.get_name(
                            ta.exchange, p['symbol']) or ''
                    ta.position = position

                # update orders
                orders = t.orders()
                aggorders = {}
                for o in orders:
                    o['name'] = Collection.get_name(
                        ta.exchange, o['symbol']) or ''
                    st = (o['symbol'], o['type_'])
                    if st not in aggorders:
                        aggorders[st] = o
                    else:
                        # 把成交汇总一下
                        oo = aggorders[st]
                        if oo['quantity'] > 0:
                            amount = oo['price'] * oo['quantity'] + \
                                o['price'] * o['quantity']
                            oo['quantity'] += o['quantity']
                            oo['price'] = amount / oo['quantity']

                orders = aggorders.values()

                ta.orders = orders

                # update order_status
                order_status = t.order_status()
                for o in order_status:
                    o['name'] = Collection.get_name(
                        ta.exchange, o['symbol']) or ''
                ta.order_status = order_status

    ta.upsert()
    user = User.query_one({'_id': ta.user})
    accounting(user)
Beispiel #7
0
def update_trade_account(trade_account):
    ta = trade_account
    log.info('更新账号{}的信息'.format(ta._id))
    if not ta.login_password:
        ta.verified = False
        ta.verify_message = '没有密码不能登录'
    else:
        try:
            t = Trader(ta.exchange, ta.login_name, ta.login_password)
        except KeyError:
            ta.verified = False
            ta.verify_message = '该交易所协议未破解'
        except Exception as e:
            ta.verified = False
            ta.verify_message = str(e)
        else:
            if not t.is_logged_in:
                ta.verified = False
                ta.verify_message = t.last_error
            else:
                ta.verified = True

                # update money
                ta.money = t.money()
                # update position
                position = t.position()
                if position is not None:
                    for p in position:
                        p['name'] = Collection.get_name(
                            ta.exchange, p['symbol']) or ''
                    ta.position = position

                # update orders
                orders = t.orders()
                aggorders = {}
                for o in orders:
                    o['name'] = Collection.get_name(ta.exchange,
                                                    o['symbol']) or ''
                    st = (o['symbol'], o['type_'])
                    if st not in aggorders:
                        aggorders[st] = o
                    else:
                        # 把成交汇总一下
                        oo = aggorders[st]
                        if oo['quantity'] > 0:
                            amount = oo['price'] * oo['quantity'] + \
                                o['price'] * o['quantity']
                            oo['quantity'] += o['quantity']
                            oo['price'] = amount / oo['quantity']

                orders = aggorders.values()

                ta.orders = orders

                # update order_status
                order_status = t.order_status()
                for o in order_status:
                    o['name'] = Collection.get_name(ta.exchange,
                                                    o['symbol']) or ''
                ta.order_status = order_status

    ta.upsert()
    user = User.query_one({'_id': ta.user})
    accounting(user)