From 6723407f9abb2037d26639adc7236e108a41f5a9 Mon Sep 17 00:00:00 2001 From: grey-cat-1908 Date: Thu, 17 Mar 2022 14:39:41 +0300 Subject: [PATCH] maybe it should fix zlib.error: Error -3 while decompressing data: invalid stored block lengths --- melisa/core/gateway.py | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/melisa/core/gateway.py b/melisa/core/gateway.py index 08eb760..b891e2c 100644 --- a/melisa/core/gateway.py +++ b/melisa/core/gateway.py @@ -107,16 +107,19 @@ class Gateway: await self.ws.send_str(payload) async def parse_websocket_message(self, msg): - if type(msg) is bytes: - self._buffer.extend(msg) + try: + if type(msg) is bytes: + self._buffer.extend(msg) - if len(msg) < 4 or msg[-4:] != b'\x00\x00\xff\xff': - return None - msg = self._zlib.decompress(self._buffer) - msg = msg.decode('utf-8') - self._buffer = bytearray() + if len(msg) < 4 or msg[-4:] != b'\x00\x00\xff\xff': + return None + msg = self._zlib.decompress(self._buffer) + msg = msg.decode('utf-8') + self._buffer = bytearray() - return json.loads(msg) + return json.loads(msg) + except zlib.error: + return None async def handle_data(self, data): if data['op'] == self.DISPATCH: