From 93957dfc806f7d06e41de965c813ae8ad93e4d4d Mon Sep 17 00:00:00 2001 From: Alicia Date: Wed, 8 May 2024 23:39:37 -0700 Subject: [PATCH] Make things a lil more robust to voipms errors --- slidgevoipms/gateway.py | 13 ++++++++----- slidgevoipms/session.py | 4 ++++ 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/slidgevoipms/gateway.py b/slidgevoipms/gateway.py index 646f55b..990bc2a 100644 --- a/slidgevoipms/gateway.py +++ b/slidgevoipms/gateway.py @@ -59,8 +59,11 @@ class Gateway(BaseGateway): }) as response: # For whatever cursed reason, this call sometimes returns with # text/html as the content type, so we disable the check - json = await response.json(content_type=None) - if json['status'] == 'success': - return - else: - raise XMPPError("Received error from voipms") + try: + json = await response.json(content_type=None) + if json['status'] == 'success': + return + else: + raise XMPPError("Received error from voipms") + except: + raise XMPPError("Failure decoding response from voipms") \ No newline at end of file diff --git a/slidgevoipms/session.py b/slidgevoipms/session.py index 084cb06..ad0c98f 100644 --- a/slidgevoipms/session.py +++ b/slidgevoipms/session.py @@ -92,6 +92,7 @@ class Session(BaseSession[str, Contact]): 'all_messages': 1, 'content_type': 'json', }) as response: + try: json = await response.json() log.debug(f"received messages from voipms {json}") @@ -99,6 +100,9 @@ class Session(BaseSession[str, Contact]): return [] else: return json['sms'] + except client_exceptions.ContentTypeError: + log.warning("Received non-json response from voipms") + return [] async def on_file(self, chat: Contact, url: str, **_kwargs): f = self.user.registration_form