From ec432fe8ce0ca0a8ffa5eb606006e8eb6b629e99 Mon Sep 17 00:00:00 2001 From: Denis Date: Sun, 27 Jul 2025 02:11:48 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D1=8B=20=D1=82=D0=B8=D0=BF=D1=8B=20=D1=81=D0=BE=D0=B1?= =?UTF-8?q?=D1=8B=D1=82=D0=B8=D0=B9:=20bot=5Fstopped,=20dialog=5Fcleared,?= =?UTF-8?q?=20dialog=5Fmuted,=20dialog=5Funmuted?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- maxapi/types/updates/bot_stopped.py | 32 +++++++++++++++++++++ maxapi/types/updates/dialog_cleared.py | 30 +++++++++++++++++++ maxapi/types/updates/dialog_muted.py | 40 ++++++++++++++++++++++++++ maxapi/types/updates/dialog_unmuted.py | 30 +++++++++++++++++++ 4 files changed, 132 insertions(+) create mode 100644 maxapi/types/updates/bot_stopped.py create mode 100644 maxapi/types/updates/dialog_cleared.py create mode 100644 maxapi/types/updates/dialog_muted.py create mode 100644 maxapi/types/updates/dialog_unmuted.py diff --git a/maxapi/types/updates/bot_stopped.py b/maxapi/types/updates/bot_stopped.py new file mode 100644 index 0000000..51b40c8 --- /dev/null +++ b/maxapi/types/updates/bot_stopped.py @@ -0,0 +1,32 @@ +from typing import TYPE_CHECKING, Optional + +from .update import Update + +from ...types.users import User + +if TYPE_CHECKING: + from ...bot import Bot + + +class BotStopped(Update): + + """ + Обновление, сигнализирующее об остановке бота. + + Attributes: + chat_id (int): Идентификатор чата. + user (User): Пользователь (бот). + user_locale (Optional[str]): Локаль пользователя. + payload (Optional[str]): Дополнительные данные. + """ + + chat_id: int + user: User + user_locale: Optional[str] = None + payload: Optional[str] = None + + if TYPE_CHECKING: + bot: Optional[Bot] + + def get_ids(self): + return (self.chat_id, self.user.user_id) \ No newline at end of file diff --git a/maxapi/types/updates/dialog_cleared.py b/maxapi/types/updates/dialog_cleared.py new file mode 100644 index 0000000..1bc2546 --- /dev/null +++ b/maxapi/types/updates/dialog_cleared.py @@ -0,0 +1,30 @@ +from typing import TYPE_CHECKING, Optional + +from .update import Update + +from ...types.users import User + +if TYPE_CHECKING: + from ...bot import Bot + + +class DialogCleared(Update): + + """ + Обновление, сигнализирующее об очистке диалога с ботом. + + Attributes: + chat_id (int): Идентификатор чата. + user (User): Пользователь (бот). + user_locale (Optional[str]): Локаль пользователя. + """ + + chat_id: int + user: User + user_locale: Optional[str] = None + + if TYPE_CHECKING: + bot: Optional[Bot] + + def get_ids(self): + return (self.chat_id, self.user.user_id) \ No newline at end of file diff --git a/maxapi/types/updates/dialog_muted.py b/maxapi/types/updates/dialog_muted.py new file mode 100644 index 0000000..17db991 --- /dev/null +++ b/maxapi/types/updates/dialog_muted.py @@ -0,0 +1,40 @@ +from typing import TYPE_CHECKING, Optional +from datetime import datetime + +from .update import Update + +from ...types.users import User + +if TYPE_CHECKING: + from ...bot import Bot + + +class DialogMuted(Update): + + """ + Обновление, сигнализирующее об отключении оповещений от бота. + + Attributes: + chat_id (int): Идентификатор чата. + muted_until (int): Время до включения оповещений от бота. + user (User): Пользователь (бот). + user_locale (Optional[str]): Локаль пользователя. + """ + + chat_id: int + muted_until: int + user: User + user_locale: Optional[str] = None + + if TYPE_CHECKING: + bot: Optional[Bot] + + @property + def muted_until_datetime(self): + try: + return datetime.fromtimestamp(self.muted_until // 1000) + except (OverflowError, OSError): + return datetime.max + + def get_ids(self): + return (self.chat_id, self.user.user_id) \ No newline at end of file diff --git a/maxapi/types/updates/dialog_unmuted.py b/maxapi/types/updates/dialog_unmuted.py new file mode 100644 index 0000000..54255d0 --- /dev/null +++ b/maxapi/types/updates/dialog_unmuted.py @@ -0,0 +1,30 @@ +from typing import TYPE_CHECKING, Optional + +from .update import Update + +from ...types.users import User + +if TYPE_CHECKING: + from ...bot import Bot + + +class DialogUnmuted(Update): + + """ + Обновление, сигнализирующее о включении оповещений от бота. + + Attributes: + chat_id (int): Идентификатор чата. + user (User): Пользователь (бот). + user_locale (Optional[str]): Локаль пользователя. + """ + + chat_id: int + user: User + user_locale: Optional[str] = None + + if TYPE_CHECKING: + bot: Optional[Bot] + + def get_ids(self): + return (self.chat_id, self.user.user_id) \ No newline at end of file