From 76ed99f0400d910b86f45985402f20763400a444 Mon Sep 17 00:00:00 2001 From: Nick Ninov Date: Tue, 18 Aug 2026 19:38:48 +0300 Subject: [PATCH] bot: Fetch all signals - Related to https://github.com/status-im/status-python-sdk/issues/41 --- status_sdk/signal.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/status_sdk/signal.py b/status_sdk/signal.py index dd2265a..7fefd16 100644 --- a/status_sdk/signal.py +++ b/status_sdk/signal.py @@ -102,13 +102,18 @@ class Signal: Listen continuously for Status Backend signals """ signal: dict = json.loads(signal) - if signal["type"] != self.__signal_type: + + if isinstance(self.__signal_type, str) and self.__signal_type != signal["type"]: + return + + if isinstance(self.__signal_type, list) and signal["type"] not in self.__signal_type: return event: Optional[dict] = signal.get("event", {}) or {} data = { "timestamp": datetime.datetime.fromtimestamp(signal["timestamp"]), "is_error": not isinstance(event.get("error"), type(None)), + "type": signal["type"], "error_message": event.get("error"), "event": event } @@ -124,13 +129,16 @@ class Signal: if self.__thread.is_alive(): self.__thread.join(1) - def listen(self, signal_type: str): + def listen(self, signal_type: Optional[Union[str, list[str]]] = None): """ Listen for a specific Signal forever Parameters: - `signal_type` - the "type" as it is in Status Backend """ + if isinstance(signal_type, list) and len(signal_type) == 0: + signal_type = None + self.__signal_type = signal_type ws = websocket.WebSocketApp( self.__url,