🐛 (api.py): Raise correct error when timeout #45
1 changed files with 5 additions and 2 deletions
|
@ -500,13 +500,16 @@ class UptimeKumaApi(object):
|
||||||
return deepcopy(self._event_data[event].copy())
|
return deepcopy(self._event_data[event].copy())
|
||||||
|
|
||||||
def _call(self, event, data=None) -> Any:
|
def _call(self, event, data=None) -> Any:
|
||||||
r = self.sio.call(event, data, timeout=self.timeout)
|
try:
|
||||||
|
r = self.sio.call(event, data, timeout=self.timeout)
|
||||||
|
except socketio.exceptions.TimeoutError:
|
||||||
|
|||||||
|
raise Timeout(f"Timed out while waiting for event {event}")
|
||||||
if isinstance(r, dict) and "ok" in r:
|
if isinstance(r, dict) and "ok" in r:
|
||||||
if not r["ok"]:
|
if not r["ok"]:
|
||||||
raise UptimeKumaException(r.get("msg"))
|
raise UptimeKumaException(r.get("msg"))
|
||||||
r.pop("ok")
|
r.pop("ok")
|
||||||
return r
|
return r
|
||||||
|
|
||||||
# event handlers
|
# event handlers
|
||||||
|
|
||||||
def _event_connect(self) -> None:
|
def _event_connect(self) -> None:
|
||||||
|
|
Loading…
Reference in a new issue
The response of
self.sio.call
is not always a dict (for exampleapi.need_setup
). In this caser.pop("ok")
fails. You have deleted the code that checks if the response type is a dict.Also you have deleted the code that checks the
r["ok"]
value. The UptimeKumaException is now no longer raised when Uptime Kuma responds with an error message (whenr["ok"]
is false).