def __send_command(self,
                       command,
                       args=None,
                       on_resp_callback=None,
                       need_sig=True):
        '''Send a raw command.'''
        rid = str(uuid.uuid1())
        expires = int(round(time.time() * 1000)) + 2500 + self.time_delta
        msg = {'req': command, 'rid': rid, 'expires': expires}
        if args is not None:
            msg['args'] = args

        if need_sig and self.api_secret is not None:
            # signature = MD5(Req+ReqId+Args+Expires+API.SecretKey)
            body = str(command) + str(rid) + \
                   (my_json_marshal(args) if args else "") + \
                   str(expires) + self.api_secret
            # sig = hmac.new(self.api_secret.encode('utf-8'), body.encode('utf-8'), digestmod=hashlib.md5).hexdigest()
            msg['signature'] = hashlib.md5(body.encode('utf-8')).hexdigest()

        self._cmd_callback_lock.acquire()
        self._cmd_callback_dict[rid] = on_resp_callback
        self._cmd_callback_lock.release()

        buf = my_json_marshal(msg)
        # self.logger.debug("MSG-buf: %s", buf)
        self.ws.send(buf)
 def on_cmd_login_resp(_, code, data):
     if code != 0:
         self.logger.info("ERROR: cmd=Login, code=%d, data=%s", code,
                          my_json_marshal(data))
         self.exit()
         return
     self.uid = data.pop("UserId", "")
     # self.UserName = data.pop("UserName", "")
     self.logger.debug("DEBUG: login ok, uid=%s data=%s", self.uid,
                       my_json_marshal(data))
 def on_cmd_time_resp(_, code, data):
     if code != 0:
         self.logger.error("ERROR: cmd=Time, code=%d, data=%s", code,
                           my_json_marshal(data))
         self.exit()
         return
     server_tm = data.pop("time", local_tm)
     self.time_delta = server_tm - local_tm
     self.logger.debug("DEBUG: local_tm:%d, server_tm:%d, delta %d",
                       local_tm, server_tm, self.time_delta)
     self.__callback(cb, self.time_delta)
    def __send_command(self, command, args=None, on_resp_callback=None):
        '''Send a raw command.'''
        rid = str(uuid.uuid1())
        expires = int(round(time.time() * 1000)) + 2500 + self.time_delta
        msg = {'req': command, 'rid': rid, 'expires': expires}
        if args is not None:
            msg['args'] = args

        self._cmd_callback_lock.acquire()
        self._cmd_callback_dict[rid] = on_resp_callback
        self._cmd_callback_lock.release()

        buf = my_json_marshal(msg)
        # self.logger.debug("MSG-buf: %s", buf)
        self.ws.send(buf)
 def on_cmd_time_resp(_, code, data):
     if code != 0:
         self.logger.error("ERROR: cmd=Time, code=%d, data=%s", code,
                           my_json_marshal(data))
         self.exit()
         return
     server_tm = data.pop("time", local_tm)
     self.time_delta = server_tm - local_tm
     self.logger.debug("DEBUG: local_tm:%d, server_tm:%d, delta %d",
                       local_tm, server_tm, self.time_delta)
     # now send login
     self.__send_command(
         'Login', {
             'UserName': self.user_name,
             'UserCred': self.api_key,
             'DeviceInfo': 'gmex-api-py sample'
         }, on_cmd_login_resp)
Exemple #6
0
def callback_on_mkt_request_response(_, code, data):
    logger.debug("on_mkt_resp: %d %s" % (code, my_json_marshal(data)))
Exemple #7
0
def callback_on_mkt_notification(_, data):
    mkt_notify = GT_Object(data)
    logger.debug("on_mkt_notification: %s" % my_json_marshal(mkt_notify))
Exemple #8
0
def callback_on_mkt_kline(_, data):
    mkt_kline = GT_Object(data)
    logger.debug("on_mkt_kline: %s" % my_json_marshal(mkt_kline))
Exemple #9
0
def callback_on_mkt_index(_, data):
    mkt_idx = GT_Object(data)
    logger.debug("on_mkt_index: %s" % my_json_marshal(mkt_idx))
Exemple #10
0
def callback_on_mkt_tick(_, data):
    mkt_tick = GT_Object(data)
    logger.debug("on_mkt_tick: %s" % my_json_marshal(mkt_tick))
Exemple #11
0
def callback_on_mkt_order20(_, data):
    mkt_ord20 = GT_Object(data)
    logger.debug("on_mkt_order20: %s" % my_json_marshal(mkt_ord20))
Exemple #12
0
def callback_on_mkt_orderl2(_, data):
    mkt_ordl2 = GT_Object(data)
    logger.debug("on_mkt_orderl2: %s" % my_json_marshal(mkt_ordl2))
Exemple #13
0
def callback_on_mkt_trade(_, data):
    mkt_trd = GT_Object(data)
    logger.debug("on_mkt_trade: %s" % my_json_marshal(mkt_trd))
Exemple #14
0
def callback_on_wltlog(_, data):
    wltlog = GT_Object(data)
    logger.debug("on_wltlog: %s" % my_json_marshal(wltlog))
Exemple #15
0
 def json_marshal(self):
     return my_json_marshal(self.kv)