예제 #1
0
def api_authentication(auth_url):
    try:
        # ----- auth step 1
        _header = AUTH_HEADER
        _header['Host'] = auth_url[7:]
        _timestr = _time()
        _url = auth_url + '/?%s' % _timestr
        r = requests.post(_url, data=AUTH_DATA, headers=_header)

        tmp_data = r.text.split('\r\n\r\n')
        yh_api_logger.debug(tmp_data[0])
        yh_api_logger.debug(tmp_data[1])

        # ----- auth step 2
        _header2 = AUTH_HEADER
        _header2['Host'] = auth_step_2_host_post
        _url2 = 'http://' + auth_step_2_host_post + '/?%s' % _timestr
        r2 = requests.post(_url2, data=AUTH_DATA_2, headers=_header2)

        tmp_data2 = r2.text.split('\r\n\r\n')
        yh_api_logger.debug(tmp_data2[0])
        yh_api_logger.debug(tmp_data2[1])

        tmp_dict = literal_eval(tmp_data2[1])
        connection_session = int(tmp_dict['ConnectionSession'])

        yh_api_logger.info('the ConnectionSession code is : %s' %connection_session)
    except BaseException, e:
        yh_api_logger.error(traceback.format_exc())
        connection_session = ''
예제 #2
0
def api_price(connection_session):
    try:
        _header = AUTH_HEADER
        _header['Host'] = auth_step_2_host_post
        _timestr = _time()
        _url = 'http://' + auth_step_2_host_post + '/?%s' % _timestr
        r = requests.post(_url, data=(PRICE_DATA % connection_session), headers=_header)

        tmp_data = r.text.split('\r\n\r\n')
        yh_api_logger.debug(tmp_data[0])
        yh_api_logger.debug(tmp_data[1])

        tmp_dict = literal_eval(tmp_data[1])
        if 'ErrMsg' in tmp_dict:
            if tmp_dict['ErrMsg'] == '你需要登录':
                yh_api_logger.error(tmp_dict)
    except BaseException, e:
        yh_api_logger.error(traceback.format_exc())
예제 #3
0
def api_trans_auth_session():
    try:
        # ----- auth step 1
        _header = AUTH_HEADER
        _header['Host'] = TRANS_HOST
        _timestr = _time()
        _time_trans_str = _time_trans()
        _url = TRANS_URL % _timestr
        _d = quote_plus(TRANS_AUTH_DATA_SP1)
        trans_data = TRANS_AUTH_DATA_ALL % (_d, _time_trans_str)
        r = requests.post(_url, data=trans_data, headers=_header)

        tmp_data = literal_eval(r.text)
        print tmp_data
        trans_session = int(tmp_data['Session'])
        yh_api_logger.debug(tmp_data)
    except BaseException, e:
        yh_api_logger.error(traceback.format_exc())
        trans_session = None
예제 #4
0
def api_trans_auth_check(trans_session):
    try:
        # ----- auth step 2
        check_res = False
        _header = AUTH_HEADER
        _header['Host'] = TRANS_HOST
        _timestr = _time()
        _time_trans_str = _time_trans()
        _url = TRANS_URL % _timestr
        _d2 = quote_plus(TRANS_AUTH_DATA_SP2 % trans_session)
        trans_data = TRANS_AUTH_DATA_ALL % (_d2, _time_trans_str)
        r = requests.post(_url, data=trans_data, headers=_header)

        tmp_data2 = r.text
        print tmp_data2
        if 'error_no' not in tmp_data2:
            check_res = True
        yh_api_logger.debug(tmp_data2)
    except BaseException, e:
        yh_api_logger.error(traceback.format_exc())
예제 #5
0
def trans_short_close(trans_session, code, ifcode, entrust_amount=1, eo_flag=1):
    try:
        _header = AUTH_HEADER
        _header['Host'] = TRANS_HOST
        _timestr = _time()
        _time_trans_str = _time_trans()
        _url = TRANS_URL % _timestr

        res_price = price_times(code)
        buy_price = res_price['BuyPrice0']

        _d = quote_plus(LONG_SHORT_DATA % (trans_session, ifcode, buy_price, entrust_amount, 'S', eo_flag))
        trans_data = TRANS_AUTH_DATA_ALL % (_d, _time_trans_str)
        r = requests.post(_url, data=trans_data, headers=_header)

        tmp_data = r.text
        yh_api_logger.debug(tmp_data)
    except BaseException, e:
        tmp_data = 'error_info: %s' % e
        yh_api_logger.error(traceback.format_exc())
예제 #6
0
def api_price_second(code, connection_session):
    '''
    return :
    Market 3003:代表中金所
    code、TradeCode:合约code
    name:合约名字
    now:最新价格
    open:开盘价
    high:最高价
    low:最低价
    avg:均价
    Settle:结算价
    CurVolume:现手
    BuyPrice0:买价
    BuyVol0:买量
    SellPrice0:卖价
    SellVol0:卖量
    Hold:持仓
    '''
    try:
        _header = AUTH_HEADER
        _header['Host'] = auth_step_2_host_post
        _timestr = _time()
        _url = 'http://' + auth_step_2_host_post + '/?%s' % _timestr
        r = requests.post(_url, data=(PRICE_SECOND_DATA % (connection_session, code)), headers=_header)

        tmp_data = r.text.split('\r\n\r\n')
        yh_api_logger.debug(tmp_data[0])
        yh_api_logger.debug(tmp_data[1])

        tmp_dict = literal_eval(tmp_data[1])
        if 'ErrMsg' in tmp_dict:
            if tmp_dict['ErrMsg'] == '你需要登录':
                yh_api_logger.error('%s: %s \n 需要登录', code, tmp_data)
        elif 'Symbol' in tmp_dict:
            _d = tmp_dict['Symbol'][0]
            yh_api_logger.info(_d)
            return _d
    except BaseException, e:
        yh_api_logger.error('%s : %s', code, traceback.format_exc())
예제 #7
0
def api_auth_connection_session(connection_session):
    try:
        # ----- connection_session step 1
        _timestr = _time()

        _header = AUTH_HEADER
        _header['Host'] = auth_step_2_host_post
        _url = 'http://' + auth_step_2_host_post + '/?%s' % _timestr
        r = requests.post(_url, data=CONN_SESS_DATA % connection_session, headers=_header)

        tmp_data = r.text.split('\r\n\r\n')
        yh_api_logger.debug(tmp_data[0])
        yh_api_logger.debug(tmp_data[1])

        # ------ connection_session step 2
        r2 = requests.post(_url, data=CONN_SESS_DATA_2 % connection_session, headers=_header)

        tmp_data2 = r2.text.split('\r\n\r\n')
        yh_api_logger.debug(tmp_data2[0])
        yh_api_logger.debug(tmp_data2[1])

        tmp_dict = literal_eval(tmp_data2[1])
    except BaseException, e:
        yh_api_logger.error(traceback.format_exc())