Skip to content

Commit aebfea8

Browse files
committed
push_client extra fiels
1 parent 920aed7 commit aebfea8

File tree

1 file changed

+16
-5
lines changed

1 file changed

+16
-5
lines changed

tigeropen/push/push_client.py

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
SUBSCRIPTION_TRADE_ORDER
2323
from tigeropen.common.consts.push_types import RequestType, ResponseType
2424
from tigeropen.common.consts.quote_keys import QuoteChangeKey, QuoteKeyType
25+
from tigeropen.common.util.string_utils import camel_to_underline
2526
from tigeropen.common.util.common_utils import get_enum_value
2627
from tigeropen.common.util.order_utils import get_order_status
2728
from tigeropen.common.util.signature_utils import sign_with_rsa
@@ -155,7 +156,7 @@ def on_message(self, headers, body):
155156
symbol_focus_keys = data.get('symbolFocusKeys')
156157
focus_keys = dict()
157158
for sym, keys in symbol_focus_keys.items():
158-
keys = set(QUOTE_KEYS_MAPPINGS.get(key, key) for key in keys)
159+
keys = set(QUOTE_KEYS_MAPPINGS.get(key, camel_to_underline(key)) for key in keys)
159160
focus_keys[sym] = list(keys)
160161
self.subscribed_symbols(symbols, focus_keys, limit, used)
161162
elif response_type == str(ResponseType.GET_QUOTE_CHANGE_END.value):
@@ -165,7 +166,7 @@ def on_message(self, headers, body):
165166
if 'hourTradingLatestPrice' in data:
166167
hour_trading = True
167168
if 'symbol' in data:
168-
symbol = data.get('symbol')
169+
symbol = data.pop('symbol', None)
169170
offset = data.get('offset', 0)
170171
items = []
171172
# 期货行情推送的价格都乘了 10 的 offset 次方变成了整数, 需要除回去变为正常单位的价格
@@ -185,42 +186,50 @@ def on_message(self, headers, body):
185186
minute_item[m_key] = m_value
186187
value = minute_item
187188
items.append((key, value))
189+
else:
190+
items.append((camel_to_underline(key), value))
188191
else:
189192
for key, value in data.items():
190193
if key == 'latestTime' or key == 'hourTradingLatestTime':
191194
continue
192195
if key in QUOTE_KEYS_MAPPINGS:
193196
key = QUOTE_KEYS_MAPPINGS.get(key)
194197
items.append((key, value))
198+
else:
199+
items.append((camel_to_underline(key), value))
195200
if items:
196201
self.quote_changed(symbol, items, hour_trading)
197202
elif response_type == str(ResponseType.SUBSCRIBE_ASSET.value):
198203
if self.asset_changed:
199204
data = json.loads(body)
200205
if 'account' in data:
201-
account = data.get('account')
206+
account = data.pop('account', None)
202207
items = []
203208
for key, value in data.items():
204209
if key in ASSET_KEYS_MAPPINGS:
205210
items.append((ASSET_KEYS_MAPPINGS.get(key), value))
211+
else:
212+
items.append((camel_to_underline(key), value))
206213
if items:
207214
self.asset_changed(account, items)
208215
elif response_type == str(ResponseType.SUBSCRIBE_POSITION.value):
209216
if self.position_changed:
210217
data = json.loads(body)
211218
if 'account' in data:
212-
account = data.get('account')
219+
account = data.pop('account', None)
213220
items = []
214221
for key, value in data.items():
215222
if key in POSITION_KEYS_MAPPINGS:
216223
items.append((POSITION_KEYS_MAPPINGS.get(key), value))
224+
else:
225+
items.append((camel_to_underline(key), value))
217226
if items:
218227
self.position_changed(account, items)
219228
elif response_type == str(ResponseType.SUBSCRIBE_ORDER_STATUS.value):
220229
if self.order_changed:
221230
data = json.loads(body)
222231
if 'account' in data:
223-
account = data.get('account')
232+
account = data.pop('account', None)
224233
items = []
225234
for key, value in data.items():
226235
if key in ORDER_KEYS_MAPPINGS:
@@ -230,6 +239,8 @@ def on_message(self, headers, body):
230239
if value == OrderStatus.HELD and data.get('filledQuantity'):
231240
value = OrderStatus.PARTIALLY_FILLED
232241
items.append((ORDER_KEYS_MAPPINGS.get(key), value))
242+
else:
243+
items.append((camel_to_underline(key), value))
233244
if items:
234245
self.order_changed(account, items)
235246
elif response_type == str(ResponseType.GET_SUBSCRIBE_END.value):

0 commit comments

Comments
 (0)