33"""
44
55import json
6- import re
76from websocket import WebSocketApp
8-
9- def convert_to_snakecase (original_dict ):
10- transformed_dict = {}
11- array_items = []
12- if not isinstance (original_dict , list ):
13- for k in original_dict .keys ():
14- value = re .sub (r'(?<!^)(?=[A-Z])' , '_' , k ).lower ()
15- if not isinstance (original_dict [k ], list ):
16- if isinstance (original_dict [k ], dict ):
17- transformed_dict [value ] = convert_to_snakecase (original_dict [k ])
18- else :
19- transformed_dict [value ] = original_dict [k ]
20- else :
21-
22- array_items = []
23- for i in range (len (original_dict [k ])):
24- if isinstance (original_dict [k ][i ], dict ):
25- array_items .append (convert_to_snakecase (original_dict [k ][i ]))
26- transformed_dict [value ] = array_items
27- else :
28- transformed_dict [value ] = original_dict [k ]
29- else :
30- array_items = []
31- for item in original_dict :
32- array_items .append (convert_to_snakecase (item ))
33- transformed_dict .update (array_items )
34- return transformed_dict
7+ from fugle_trade_core .fugle_trade_core import convert_ws_object
358
369class WebsocketHandler ():
3710 """Handle Websocket connection"""
@@ -44,17 +17,15 @@ def __init__(self):
4417 self .on_close = default_fun
4518
4619 def ws_on_message (self , _ , in_message ):
47- """callback function for websocket message, pipe to order or dealt based on message type"""
48- message = json .loads (in_message )
49- # if message['data']['$type'] == "System.String" :
50- # return
20+ """callback function for websocket message, pipe to order or dealt
21+ based on message type"""
5122 try :
52- data = json .loads (message [ 'data' ][ '$value' ] )
53- if data ['Kind ' ] == "ACK" :
54- self .on_order (convert_to_snakecase ( data ) )
23+ data = json .loads (convert_ws_object ( in_message ) )
24+ if data ['kind ' ] == "ACK" :
25+ self .on_order (data )
5526
56- if data ['Kind ' ] == "MAT" :
57- self .on_dealt (convert_to_snakecase ( data ) )
27+ if data ['kind ' ] == "MAT" :
28+ self .on_dealt (data )
5829 except :
5930 pass
6031
0 commit comments