diff --git a/src/main.py b/src/main.py index 6c7632b..448fc4a 100644 --- a/src/main.py +++ b/src/main.py @@ -4,6 +4,7 @@ import logging import signal import ssl import sys +import traceback from common.config import ServerConfig from common.push import PushService @@ -195,8 +196,13 @@ async def main(): # Запускаем контроллеры try: await asyncio.gather(*running_tasks) - except (asyncio.CancelledError, Exception): - logging.info("Все задачи завершены, выходим") + except asyncio.CancelledError: + logging.info("Все задачи завершены") + except Exception as e: + logging.error( + f"Произошла неизвестная ошибка: {e}" + ) + traceback.print_exc() finally: if hasattr(db, 'close'): db.close() diff --git a/src/oneme/processors/history.py b/src/oneme/processors/history.py index 970df29..d8de329 100644 --- a/src/oneme/processors/history.py +++ b/src/oneme/processors/history.py @@ -24,7 +24,7 @@ class HistoryProcessors(BaseProcessor): # Если пользователь хочет получить историю из избранного, # то выставляем в качестве ID чата его ID - if chatId == 0: + if chatId == (senderId ^ senderId): chatId = senderId # Проверяем, существует ли чат diff --git a/src/oneme/processors/messages.py b/src/oneme/processors/messages.py index 4a691f5..6c49b6d 100644 --- a/src/oneme/processors/messages.py +++ b/src/oneme/processors/messages.py @@ -89,8 +89,7 @@ class MessagesProcessors(BaseProcessor): # Если клиент хочет отправить сообщение в избранное, # то выставляем в качестве ID чата ID отправителя - # (А ещё используем это, если клиент вообще ничего не указал) - if chatId == 0 or not chatId: + if chatId == (senderId ^ senderId): chatId = senderId participants = [senderId] else: @@ -144,7 +143,7 @@ class MessagesProcessors(BaseProcessor): participant, { "eventType": "new_msg", - "chatId": 0 if chatId == senderId else chatId, + "chatId": 0 if chatId == (senderId ^ senderId) else chatId, "message": bodyMessage, "prevMessageId": lastMessageId, "time": messageTime,