|
26 | 26 | from .event import (
|
27 | 27 | Event,
|
28 | 28 | event_classes,
|
29 |
| - pre_handle_event_websocket, |
30 |
| - pre_handle_webhook_event, |
31 | 29 | )
|
32 | 30 | from .exception import ApiNotAvailable, DisconnectError, ReconnectError
|
33 | 31 | from .models import WebsocketInfo
|
|
41 | 39 | Logout,
|
42 | 40 | LogoutReply,
|
43 | 41 | Payload,
|
44 |
| - RobotEvent, |
45 | 42 | Shutdown,
|
| 43 | + proto_to_event_data, |
46 | 44 | )
|
47 | 45 | from .utils import API, log
|
48 | 46 |
|
@@ -113,7 +111,7 @@ async def _handle_http(self, request: Request) -> Response:
|
113 | 111 | try:
|
114 | 112 | event = parse_obj_as(
|
115 | 113 | event_classes,
|
116 |
| - pre_handle_webhook_event(payload_data), |
| 114 | + payload_data, |
117 | 115 | )
|
118 | 116 | bot_id = event.bot_id
|
119 | 117 | if (bot := self.bots.get(bot_id, None)) is None:
|
@@ -300,12 +298,12 @@ async def _login(
|
300 | 298 | ):
|
301 | 299 | try:
|
302 | 300 | login = Login(
|
303 |
| - ws_info.uid, |
304 |
| - str(bot_config.test_villa_id) |
| 301 | + uid=ws_info.uid, |
| 302 | + token=str(bot_config.test_villa_id) |
305 | 303 | + f".{bot.bot_secret_encrypt}.{bot.self_id}",
|
306 |
| - ws_info.platform, |
307 |
| - ws_info.app_id, |
308 |
| - ws_info.device_id, |
| 304 | + platform=ws_info.platform, |
| 305 | + app_id=ws_info.app_id, |
| 306 | + device_id=ws_info.device_id, |
309 | 307 | )
|
310 | 308 | log("TRACE", f"Sending Login {escape_tag(repr(login))}")
|
311 | 309 | await ws.send_bytes(login.to_bytes_package(bot._ws_squence))
|
@@ -359,7 +357,9 @@ async def _heartbeat(self, bot: Bot, ws: WebSocket):
|
359 | 357 | log("TRACE", f"Heartbeat {timestamp}")
|
360 | 358 | try:
|
361 | 359 | await ws.send_bytes(
|
362 |
| - HeartBeat(timestamp).to_bytes_package(bot._ws_squence), |
| 360 | + HeartBeat(client_timestamp=timestamp).to_bytes_package( |
| 361 | + bot._ws_squence, |
| 362 | + ), |
363 | 363 | )
|
364 | 364 | bot._ws_squence += 1
|
365 | 365 | except Exception as e:
|
@@ -390,25 +390,24 @@ async def receive_payload(ws: WebSocket):
|
390 | 390 | payload = Payload.from_bytes(await ws.receive_bytes())
|
391 | 391 | if payload.biz_type in {BizType.P_LOGIN, BizType.P_LOGOUT, BizType.P_HEARTBEAT}:
|
392 | 392 | if payload.biz_type == BizType.P_LOGIN:
|
393 |
| - payload = LoginReply.FromString(payload.body_data) |
| 393 | + payload = LoginReply.from_proto(payload.body_data) |
394 | 394 | elif payload.biz_type == BizType.P_LOGOUT:
|
395 |
| - payload = LogoutReply.FromString(payload.body_data) |
| 395 | + payload = LogoutReply.from_proto(payload.body_data) |
396 | 396 | else:
|
397 |
| - payload = HeartBeatReply.FromString(payload.body_data) |
| 397 | + payload = HeartBeatReply.from_proto(payload.body_data) |
398 | 398 | if payload.code != 0:
|
399 | 399 | if isinstance(payload, LogoutReply):
|
400 | 400 | log("WARNING", f"Error when logout from server: {payload}")
|
401 | 401 | return payload
|
402 | 402 | raise ReconnectError(payload)
|
403 | 403 | elif payload.biz_type == BizType.P_KICK_OFF:
|
404 |
| - payload = KickOff.FromString(payload.body_data) |
| 404 | + payload = KickOff.from_proto(payload.body_data) |
405 | 405 | elif payload.biz_type == BizType.SHUTDOWN:
|
406 | 406 | payload = Shutdown()
|
407 | 407 | elif payload.biz_type == BizType.EVENT:
|
408 |
| - event_data = RobotEvent.FromString(payload.body_data) |
409 | 408 | return parse_obj_as(
|
410 | 409 | event_classes,
|
411 |
| - pre_handle_event_websocket(event_data), |
| 410 | + proto_to_event_data(payload.body_data), |
412 | 411 | )
|
413 | 412 | else:
|
414 | 413 | raise ReconnectError
|
|
0 commit comments