Добавлена обработка события dialog_removed

This commit is contained in:
Денис Семёнов 2025-07-31 23:30:30 +03:00
parent 6ad3df5829
commit 42690d24ee
6 changed files with 38 additions and 2 deletions

View File

@ -85,6 +85,7 @@ class Dispatcher:
self.dialog_cleared = Event(update_type=UpdateType.DIALOG_CLEARED, router=self) self.dialog_cleared = Event(update_type=UpdateType.DIALOG_CLEARED, router=self)
self.dialog_muted = Event(update_type=UpdateType.DIALOG_MUTED, router=self) self.dialog_muted = Event(update_type=UpdateType.DIALOG_MUTED, router=self)
self.dialog_unmuted = Event(update_type=UpdateType.DIALOG_UNMUTED, router=self) self.dialog_unmuted = Event(update_type=UpdateType.DIALOG_UNMUTED, router=self)
self.dialog_removed = Event(update_type=UpdateType.DIALOG_REMOVED, router=self)
self.chat_title_changed = Event(update_type=UpdateType.CHAT_TITLE_CHANGED, router=self) self.chat_title_changed = Event(update_type=UpdateType.CHAT_TITLE_CHANGED, router=self)
self.message_callback = Event(update_type=UpdateType.MESSAGE_CALLBACK, router=self) self.message_callback = Event(update_type=UpdateType.MESSAGE_CALLBACK, router=self)
self.message_chat_created = Event(update_type=UpdateType.MESSAGE_CHAT_CREATED, router=self) self.message_chat_created = Event(update_type=UpdateType.MESSAGE_CHAT_CREATED, router=self)

View File

@ -24,6 +24,7 @@ class UpdateType(str, Enum):
DIALOG_CLEARED = 'dialog_cleared' DIALOG_CLEARED = 'dialog_cleared'
DIALOG_MUTED = 'dialog_muted' DIALOG_MUTED = 'dialog_muted'
DIALOG_UNMUTED = 'dialog_unmuted' DIALOG_UNMUTED = 'dialog_unmuted'
DIALOG_REMOVED = 'dialog_removed'
# Для начинки диспатчера # Для начинки диспатчера
ON_STARTED = 'on_started' ON_STARTED = 'on_started'

View File

@ -18,6 +18,7 @@ from ...types.updates.user_removed import UserRemoved
from ...types.updates.dialog_cleared import DialogCleared from ...types.updates.dialog_cleared import DialogCleared
from ...types.updates.dialog_muted import DialogMuted from ...types.updates.dialog_muted import DialogMuted
from ...types.updates.dialog_unmuted import DialogUnmuted from ...types.updates.dialog_unmuted import DialogUnmuted
from ...types.updates.dialog_removed import DialogRemoved
if TYPE_CHECKING: if TYPE_CHECKING:
from ...bot import Bot from ...bot import Bot
@ -38,7 +39,8 @@ UPDATE_MODEL_MAPPING = {
UpdateType.BOT_STOPPED: BotStopped, UpdateType.BOT_STOPPED: BotStopped,
UpdateType.DIALOG_CLEARED: DialogCleared, UpdateType.DIALOG_CLEARED: DialogCleared,
UpdateType.DIALOG_MUTED: DialogMuted, UpdateType.DIALOG_MUTED: DialogMuted,
UpdateType.DIALOG_UNMUTED: DialogUnmuted UpdateType.DIALOG_UNMUTED: DialogUnmuted,
UpdateType.DIALOG_REMOVED: DialogRemoved
} }

View File

@ -29,7 +29,7 @@ from ..types.attachments.buttons.open_app_button import OpenAppButton
from ..types.attachments.buttons.request_geo_location_button import RequestGeoLocationButton from ..types.attachments.buttons.request_geo_location_button import RequestGeoLocationButton
from ..types.attachments.buttons.message_button import MessageButton from ..types.attachments.buttons.message_button import MessageButton
from ..types.attachments.image import PhotoAttachmentRequestPayload from ..types.attachments.image import PhotoAttachmentRequestPayload
from ..types.message import Message from ..types.message import Message, NewMessageLink
from ..types.command import Command, BotCommand, CommandStart from ..types.command import Command, BotCommand, CommandStart
@ -37,6 +37,7 @@ from .input_media import InputMedia
from .input_media import InputMediaBuffer from .input_media import InputMediaBuffer
__all__ = [ __all__ = [
'NewMessageLink',
'PhotoAttachmentRequestPayload', 'PhotoAttachmentRequestPayload',
'DialogUnmuted', 'DialogUnmuted',
'DialogMuted', 'DialogMuted',

View File

@ -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 DialogRemoved(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)

View File

@ -10,6 +10,7 @@
| `dialog_cleared` | Пользователь очистил историю диалога с ботом | | `dialog_cleared` | Пользователь очистил историю диалога с ботом |
| `dialog_muted` | Пользователь отключил оповещения от чата бота | | `dialog_muted` | Пользователь отключил оповещения от чата бота |
| `dialog_unmuted` | Пользователь включил оповещения от чата бота | | `dialog_unmuted` | Пользователь включил оповещения от чата бота |
| `dialog_removed` | Пользователь удалил диалог с ботом |
| `chat_title_changed` | Изменено название чата | | `chat_title_changed` | Изменено название чата |
| `message_callback` | Пользователь нажал на callback-кнопку (inline button) | | `message_callback` | Пользователь нажал на callback-кнопку (inline button) |
| `message_chat_created`| Срабатывает когда пользователь нажал на кнопку с действием "Создать чат" (работает некорректно со стороны API MAX, ждем исправлений) | | `message_chat_created`| Срабатывает когда пользователь нажал на кнопку с действием "Создать чат" (работает некорректно со стороны API MAX, ждем исправлений) |