ソースを参照

Update websocket connection state handler to v1

Tulir Asokan 3 年 前
コミット
cba5e28e92
2 ファイル変更13 行追加4 行削除
  1. 7 4
      mausignald/signald.py
  2. 6 0
      mausignald/types.py

+ 7 - 4
mausignald/signald.py

@@ -47,9 +47,7 @@ class SignaldClient(SignaldRPCClient):
         self._event_handlers = {}
         self._subscriptions = set()
         self.add_rpc_handler("IncomingMessage", self._parse_message)
-        self.add_rpc_handler(
-            "websocket_connection_state_change", self._websocket_connection_state_change
-        )
+        self.add_rpc_handler("WebSocketConnectionState", self._websocket_connection_state_change)
         self.add_rpc_handler("version", self._log_version)
         self.add_rpc_handler(CONNECT_EVENT, self._resubscribe)
         self.add_rpc_handler(DISCONNECT_EVENT, self._on_disconnect)
@@ -87,7 +85,12 @@ class SignaldClient(SignaldRPCClient):
         self.log.info(f"Connected to {name} v{version}")
 
     async def _websocket_connection_state_change(self, change_event: Dict[str, Any]) -> None:
-        evt = WebsocketConnectionStateChangeEvent.deserialize(change_event["data"])
+        evt = WebsocketConnectionStateChangeEvent.deserialize(
+            {
+                "account": change_event["account"],
+                **change_event["data"],
+            }
+        )
         await self._run_event_handler(evt)
 
     async def subscribe(self, username: str) -> bool:

+ 6 - 0
mausignald/types.py

@@ -542,8 +542,14 @@ class WebsocketConnectionState(SerializableEnum):
     SOCKET_DISCONNECTED = "SOCKET_DISCONNECTED"
 
 
+class WebsocketType(SerializableEnum):
+    IDENTIFIED = "IDENTIFIED"
+    UNIDENTIFIED = "UNIDENTIFIED"
+
+
 @dataclass
 class WebsocketConnectionStateChangeEvent(SerializableAttrs):
     state: WebsocketConnectionState
     account: str
+    socket: Optional[WebsocketType] = None
     exception: Optional[str] = None