Beispiel #1
0
def get_depth(pair_name):
    DEPTH_EXPIRE_DATA_TIME = 5 * 60
    result = sql_module.query_data(
        'SELECT timetick,bid,ask FROM history_depth WHERE pair = "%s" ORDER BY timetick LIMIT 30'
        % pair_name)

    if result:
        timetick = result[0][0]
        exec('bid_list = ' + result[0][1])
        exec('ask_list = ' + result[0][2])

        if base_library.get_time_tick() < timetick + DEPTH_EXPIRE_DATA_TIME:
            return server_data.server_api_result(True,
                                                 data={
                                                     'timetick': timetick,
                                                     'bid': bid_list,
                                                     'ask': ask_list,
                                                 })

    depth_result = exchange_api.exchange.update_depth(pair_name)

    if not depth_result:
        return server_data.server_api_result(False, 'No Data')

    return server_data.server_api_result(True, data=depth_result)
Beispiel #2
0
def get_k_line(pair_name, time_interval='1min'):
    if '1min' == time_interval:
        result = sql_module.query_data(
            'SELECT * FROM history_market WHERE pair = "%s" ORDER BY timetick LIMIT 1440'
            % pair_name)
    #elif '3min' == time_interval :
    #elif '5min' == time_interval :
    #elif '15min' == time_interval :
    #elif '1h' == time_interval :
    #elif '4h' == time_interval :
    #elif '12h' == time_interval :
    #elif '1d' == time_interval :
    #elif '1w' == time_interval :
    #    result = sql_module.query_data('SELECT * FROM history_market WHERE pair = "%s" ORDER BY timetick LIMIT 1440' % pair_name)

    output_result = []

    for index in result:
        output_result.append({
            'open': str(index[1]),
            'close': str(index[2]),
            'max': str(index[3]),
            'min': str(index[4]),
            'timetick': str(index[5]),
            'amount': str(index[6]),
        })

    if not result:
        return server_data.server_api_result(False, 'No Data')

    return server_data.server_api_result(True, data=output_result)
Beispiel #3
0
    def login(tornado_object):
        user_name = tornado_object.get_argument('user')
        password = tornado_object.get_argument('pass')
        tick_id = tornado_object.get_argument('tick')
        valid_result = captcha.check_tick(tick_id)

        if not tick_id.get_status():
            return valid_result

        if not user_name or not password:
            return server_data.server_api_result(False, 'Lost Argument')

        status = user_manager.login(user_name, password)

        if status.get_status():
            if session.SESSION_NAME in tornado_object.request.arguments.keys():
                old_session_id = tornado_object.get_argument(
                    session.SESSION_NAME)
                #old_session_id = tornado_object.get_cookie(session.SESSION_NAME)

                if old_session_id:
                    global_session.delete_session(old_session_id)

            new_session_id = global_session.make_new_session()
            uid = user_manager.get_uid_by_user_name(user_name).get_data()

            global_session.set_session_data(new_session_id, 'uid', uid)
            #tornado_object.set_cookie(session.SESSION_NAME,new_session_id)

            return server_data.server_api_result(True, data=new_session_id)

        return status
Beispiel #4
0
def get_simple_k_line(pair_name):
    SIMPLE_K_LINE_TIME_INTERVAL = 30

    result = sql_module.query_data(
        'SELECT close FROM history_market WHERE pair = "%s" AND timeinterval = "1m" ORDER BY timetick LIMIT 1440'
        % pair_name)

    if not result:
        return server_data.server_api_result(False, 'No Data')

    output_result = []

    for index in range(0, len(result), SIMPLE_K_LINE_TIME_INTERVAL):
        end_search_limit = 0

        if index + SIMPLE_K_LINE_TIME_INTERVAL > len(result):
            end_search_limit = len(result)
        else:
            end_search_limit = index + SIMPLE_K_LINE_TIME_INTERVAL

        max_close = 0

        for search_max_index in range(index, end_search_limit):
            if max_close < result[search_max_index]:
                max_close = str(result[search_max_index][0])

        output_result.append(max_close)

    return server_data.server_api_result(True, data=output_result)
Beispiel #5
0
def withdraw(uid, coin_name, amount):
    #if not exchange_api.base_api.is_support_exchange_coin(coin_name) :
    #    return server_data.server_api_result(False,'Not Found Coin')

    coin_name = coin_name.lower()

    if not len(result):
        return server_data.server_api_result(False,
                                             'User not Bind Withdraw Address')

    address = user_manager.get_user_withdraw_address(uid, coin_name)

    if not address.get_status():
        return address

    address = address.get_data()
    coin_amount = exchange_api.base_api.get_coin_amount(coin_name)

    if amount > coin_amount:
        return server_data.server_api_result(False, 'User Coin Amount Less')

    withdraw_id = exchange_api.exchange.withdraw(coin_name, amount, address)

    if not withdraw_id:
        return server_data.server_api_result(False, 'Withdraw Except')
Beispiel #6
0
def order_sell(uid, pair_name, amount, price):
    symbols_list = exchange_api.exchange.get_all_coin()

    if not pair_name in symbols_list:
        return server_data.server_api_result(False, 'Not Found Symbols')

    base_coin = pair_name.split('/')[0]

    if not exchange_api.base_api.is_support_exchange_coin(
            base_coin) or not exchange_api.base_api.is_exist_coin_pair(
                pair_name):
        return server_data.server_api_result(False,
                                             'Internal Exchange UnSupport')

    coin_amount = exchange_api.base_api.get_coin_amount(base_coin)

    if amount > coin_amount:
        return server_data.server_api_result(False, 'User Coin Amount Less')

    order_id = exchange_api.exchange.order_sell(pair_name, amount, price)

    if not order_id:
        return server_data.server_api_result(False, 'Make Order Except')

    poundage = amount * price * BUY_SELL_POUNDAGE_RATE

    sql_module.insert_data(
        'INSERT INTO history_exchange(uid,pair,amount,price,poundage,timetick) VALUES (%s,"%s","","%s",%s,%s)'
        % (uid, pair_name, amount, price, poundage,
           base_library.get_time_tick()))

    return server_data.server_api_result(True)
Beispiel #7
0
def is_exist_user(user_name):
    result = sql_module.query_data('SELECT * FROM user_info WHERE name="%s"' %
                                   user_name)

    if result:
        return server_data.server_api_result(True)

    return server_data.server_api_result(False, 'Not Found User')
Beispiel #8
0
def get_uid_by_user_name(user_name):
    result = sql_module.query_data(
        'SELECT uid FROM user_info WHERE name="%s"' % user_name)

    if result:
        return server_data.server_api_result(True, data=result[0][0])

    return server_data.server_api_result(False, 'Not Found')
Beispiel #9
0
def is_active_user(user_name):
    result = sql_module.query_data(
        'SELECT active FROM user_info WHERE name="%s"' % user_name)

    if result:
        if result[0][0] == 1:
            return server_data.server_api_result(True)

    return server_data.server_api_result(False, 'This User was not Active')
Beispiel #10
0
def check_tick(tick_id):
    valid_state = captcha.check_tick(tick_id)

    if captcha.tick_result.tick_state_success == valid_state:
        return server_data.server_api_result(True)
    elif captcha.tick_result.tick_state_expire == valid_state:
        return server_data.server_api_result(False, 'Captcha Expire')

    return server_data.server_api_result(False, 'Captcha Error')
Beispiel #11
0
def get_user_coin(uid):
    result = sql_module.query_data(
        'SELECT * FROM user_address WHERE uid = %s' % uid)

    if result:
        result = []

        return server_data.server_api_result(True, data=result)

    return server_data.server_api_result(False, 'Not Found')
Beispiel #12
0
    def logout(tornado_object):
        session_id = tornado_object.get_argument(session.SESSION_NAME)
        #session_id = tornado_object.get_cookie(session.SESSION_NAME)

        if not session_id:
            return server_data.server_api_result(False)

        global_session.delete_session(session_id)
        #tornado_object.set_cookie(session.SESSION_NAME,'')

        return server_data.server_api_result(True)
Beispiel #13
0
    def make_valid_code(tornado_object):
        user_name = tornado_object.get_argument('user')

        if not user_name:
            return server_data.server_api_result(False, 'Not Found User')

        valid_code = user_manager.make_new_user(user_name)

        #  valid_code will send to browser for debug , remember delete it ..

        return server_data.server_api_result(True, data=valid_code)
Beispiel #14
0
def is_not_expier_valid_code_time(user_name):
    result = sql_module.query_data(
        'SELECT valid_code_make_time FROM user_info WHERE name="%s"' %
        user_name)

    if result:
        if base_library.get_time_tick(
        ) <= result[0][0] + VALID_CODE_EXPIER_TIME:
            return server_data.server_api_result(True)

    return server_data.server_api_result(False, 'Valid Code Expire')
Beispiel #15
0
def get_user_balance(uid, coin_name):
    coin_name = coin_name.lower()
    result = sql_module.query_data(
        'SELECT %s FROM user_coin WHERE uid = "%s"' % (coin_name, uid))

    if not len(result):
        return server_data.server_api_result(False, 'No Data')

    if len(result):
        return server_data.server_api_result(True, data=float(result[0][0]))

    return server_data.server_api_result(False, 'Not Found')
Beispiel #16
0
def set_user_balance(uid, coin_name, new_balance):
    new_balance = float(new_balance)

    if new_balance < 0:
        return server_data.server_api_result(False, 'New Balance less than 0')

    coin_name = coin_name.lower()

    sql_module.insert('UPDATE user_coin SET %s = %f WHERE uid = "%s"' %
                      (coin_name, new_balance, uid))

    return server_data.server_api_result(True)
Beispiel #17
0
def get_real_time_deal_record(pair_name):
    result = sql_module.query_data(
        'SELECT price,amount,timetick FROM history_exchange WHERE pair = "%s" ORDER BY timetick LIMIT 60'
        % pair_name)

    if not result:
        return server_data.server_api_result(False, 'No Data')

    format_result = []

    for index in result:
        format_result.append((float(index[0]), float(index[1]), int(index[2])))

    return server_data.server_api_result(True, data=format_result)
Beispiel #18
0
def regedit_new_user(user_name, user_password, valid_code):
    if not is_legal_user_name(user_name):
        return server_data.server_api_result(False, 'Is illegal User Name')

    if is_active_user(user_name).get_status():
        return server_data.server_api_result(False, 'User has Regedit')

    valid_code_status = check_valid_code(user_name, valid_code)

    if not valid_code_status.get_status():
        return server_data.server_api_result(
            False, valid_code_status.get_description())

    return init_user(user_name, user_password)
Beispiel #19
0
def check_valid_code(user_name, valid_code):
    if not is_legal_user_name(user_name):
        return server_data.server_api_result(False, 'Is illegal User Name')

    if not is_not_expier_valid_code_time(user_name).get_status():
        return server_data.server_api_result(False, 'Valid Code Expire')

    result = sql_module.query_data(
        'SELECT valid_code FROM user_info WHERE name="%s"' % user_name)

    if result:
        if result[0][0] == valid_code:
            return server_data.server_api_result(True)

    return server_data.server_api_result(False, 'Valid Code Error')
Beispiel #20
0
def login(user_name, user_password):
    if not is_legal_user_name(user_name):
        return server_data.server_api_result(False, 'Is illegal User Name')

    if not is_active_user(user_name).get_status():
        return server_data.server_api_result(False, 'User has not Regedit')

    result = sql_module.query_data(
        'SELECT password FROM user_info WHERE name = "%s"' % user_name)

    if result:
        if result[0][0] == user_password:
            return server_data.server_api_result(True)

    return server_data.server_api_result(False, 'User or Password incorrect')
Beispiel #21
0
def get_coin_info(pair_name):
    result = sql_module.query_data('SELECT * FROM market WHERE pair = "%s"' %
                                   pair_name)

    if not result:
        return server_data.server_api_result(False, 'No Data')

    result = {
        'pair': result[0][0],
        'price': str(result[0][1]),
        'amount': str(result[0][2]),
        'increase': str(result[0][3]),
        'open': str(result[0][4]),
    }

    return server_data.server_api_result(True, data=result)
Beispiel #22
0
    def check_exist_name(tornado_object):
        user_name = tornado_object.get_argument('user')

        if not user_name:
            return server_data.server_api_result(False, 'Not Found User')

        return user_manager.is_active_user(user_name)
Beispiel #23
0
    def get_depth(tornado_object):
        pair_name = tornado_object.get_argument('pair')

        if not pair_name:
            return server_data.server_api_result(False, 'Lost Argument')

        return market_manager.get_depth(pair_name)
Beispiel #24
0
def init_user(user_name, user_password):
    uid_data = get_uid_by_user_name(user_name)

    if not uid_data.get_status():
        return server_data.server_api_result(False, uid_data.get_description())

    sql_module.insert_data('UPDATE user_info SET password = "******" , active = 1 WHERE name = "%s"' % \
                           (user_password,user_name))

    uid = uid_data.get_data()

    sql_module.insert_data(
        'INSERT INTO user_address(uid,bind_btc_address,bind_eth_address,bind_usdt_address) VALUES (%s)'
        % (uid))
    sql_module.insert_data('INSERT INTO user_coin(uid) VALUES (%s)' % (uid))

    return server_data.server_api_result(True)
Beispiel #25
0
    def regeist_user(tornado_object):
        user_name = tornado_object.get_argument('user')
        password = tornado_object.get_argument('pass')
        valid_code = tornado_object.get_argument('valid_code')

        if not user_name or not password or not valid_code:
            return server_data.server_api_result(False, 'Lost Argument')

        return user_manager.regedit_new_user(user_name, password, valid_code)
Beispiel #26
0
    def get_withdraw_address(tornado_object):
        session_id = tornado_object.get_argument(session.SESSION_NAME)
        #session_id = tornado_object.get_cookie(session.SESSION_NAME)

        if not session_id:
            return server_data.server_api_result(False, 'Plaese Login')

        uid = global_session.get_session_data(session_id, 'uid')

        if not uid:
            return server_data.server_api_result(False, 'Invalid uid')

        try:
            coin = tornado_object.get_argument('coin')
        except:
            return server_data.server_api_result(False, 'Invalid Argument')

        return user_manager.get_user_withdraw_address(uid, coin)
Beispiel #27
0
    def get_user_coin(tornado_object):
        session_id = tornado_object.get_argument(session.SESSION_NAME)
        #session_id = tornado_object.get_cookie(session.SESSION_NAME)

        if not session_id:
            return server_data.server_api_result(False, 'Plaese Login')

        uid = global_session.get_session_data(session_id, 'uid')

        if not uid:
            return server_data.server_api_result(False, 'Invalid uid')

        status = user_manager.get_user_coin(uid)

        if status.get_status():
            return server_data.server_api_result(True,
                                                 data=status.get_description())

        return server_data.server_api_result(False, status.get_description())
Beispiel #28
0
    def withdraw(tornado_object):
        session_id = tornado_object.get_argument(session.SESSION_NAME)
        #session_id = tornado_object.get_cookie(session.SESSION_NAME)

        if not session_id:
            return server_data.server_api_result(False, 'Plaese Login')

        uid = global_session.get_session_data(session_id, 'uid')

        if not uid:
            return server_data.server_api_result(False, 'Invalid uid')

        try:
            coin = tornado_object.get_argument('coin')
            amount = float(tornado_object.get_argument('amount'))
        except:
            return server_data.server_api_result(False, 'Invalid Argument')

        return market_manager.withdraw(uid, coin, amount)
Beispiel #29
0
def set_user_withdraw_address(uid, coin_name, address):
    coin_name = coin_name.lower()

    if 'btc' == coin_name:
        sql_module.insert_data(
            'UPDATE user_address SET bind_btc_address = "%s" WHERE uid = "%s"'
            % (address, uid))
    elif 'eth' == coin_name:
        sql_module.insert_data(
            'UPDATE user_address SET bind_eth_address = "%s" WHERE uid = "%s"'
            % (address, uid))
    elif 'usdt' == coin_name:
        sql_module.insert_data(
            'UPDATE user_address SET bind_usdt_address = "%s" WHERE uid = "%s"'
            % (address, uid))
    else:
        return server_data.server_api_result(False, 'UnSupport Coin')

    return server_data.server_api_result(True)
Beispiel #30
0
    def get_coin_k_line(tornado_object):
        pair_name = tornado_object.get_argument('pair')
        time_interval = tornado_object.get_argument('interval')

        if not time_interval:
            time_interval = '1min'

        if not pair_name:
            return server_data.server_api_result(False, 'Lost Argument')

        return market_manager.get_k_line(pair_name, time_interval)