diff --git a/src/tamtam_ws/processors.py b/src/tamtam_ws/processors.py index 94bf2e4..66cba41 100644 --- a/src/tamtam_ws/processors.py +++ b/src/tamtam_ws/processors.py @@ -15,7 +15,10 @@ class Processors: async def _send(self, writer, packet): """Отправка пакета""" - await writer.send(packet) + try: + await writer.send(packet) + except Exception as error: + self.logger.error(f"Ошибка при отправке пакета - {error}") async def _send_error(self, seq, opcode, type, writer): payload = self.static.ERROR_TYPES.get(type, { @@ -36,7 +39,8 @@ class Processors: # Валидируем данные пакета try: HelloPayloadModel.model_validate(payload) - except Exception as e: + except pydantic.ValidationError as error: + self.logger.error(f"Возникли ошибки при валидации пакета: {error}") await self._send_error(seq, self.proto.SESSION_INIT, self.error_types.INVALID_PAYLOAD, writer) return None, None diff --git a/src/tamtam_ws/proto.py b/src/tamtam_ws/proto.py index 6bf093f..0fa504a 100644 --- a/src/tamtam_ws/proto.py +++ b/src/tamtam_ws/proto.py @@ -36,6 +36,14 @@ class Proto: # мб найдем че. она без обфускации # а ты ее видишь? # пошли + + ### Констаты протокола + CMD_OK = 1 + CMD_NOF = 2 + CMD_ERR = 3 + PROTO_VER = 10 + + ### Команды PING = 1 LOG = 5 SESSION_INIT = 6 diff --git a/src/tamtam_ws/server.py b/src/tamtam_ws/server.py index 6fd0dce..444b673 100644 --- a/src/tamtam_ws/server.py +++ b/src/tamtam_ws/server.py @@ -24,8 +24,9 @@ class TTWSServer: # Валидируем структуру пакета try: MessageModel.model_validate(packet) - except ValidationError as e: - self.logger.error(e) + except ValidationError as error: + self.logger.error(f"Произошла ошибка при валидации структуры пакета: {error}") + return # Извлекаем данные из пакета seq = packet['seq'] @@ -44,12 +45,6 @@ class TTWSServer: # УДАЛЯЕМ MYTRACKER ИЗ TAMTAM ТАМ ВИРУС # майтрекер отправляет все ваши сообщения на сервер барака обамы. немедленно удаляем!!! await self.processors.process_telemetry(payload, seq, websocket) - # case self.proto.AUTH_REQUEST: - # await self.processors.process_auth_request(payload, seq, websocket) - # case self.proto.VERIFY_CODE: - # await self.processors.process_verify_code(payload, seq, websocket) - # case self.proto.FINAL_AUTH: - # await self.processors.process_final_auth(payload, seq, websocket, deviceType, deviceName) # лан я пойду. пока # а ок