From b69713f9969f0c80d7d3389b7703d8f2d0053d58 Mon Sep 17 00:00:00 2001 From: Denis Date: Mon, 28 Jul 2025 01:14:07 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9A=D0=BB=D0=B0=D1=81=D1=81=20=D0=BD=D0=B0?= =?UTF-8?q?=20=D0=BE=D1=82=D0=BF=D0=B8=D1=81=D0=BA=D1=83=20=D0=BE=D1=82=20?= =?UTF-8?q?Webhook?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- maxapi/methods/unsubscribe_webhook.py | 54 +++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 maxapi/methods/unsubscribe_webhook.py diff --git a/maxapi/methods/unsubscribe_webhook.py b/maxapi/methods/unsubscribe_webhook.py new file mode 100644 index 0000000..e894734 --- /dev/null +++ b/maxapi/methods/unsubscribe_webhook.py @@ -0,0 +1,54 @@ +from typing import TYPE_CHECKING + +from ..methods.types.unsubscribed import Unsubscribed + +from ..enums.http_method import HTTPMethod +from ..enums.api_path import ApiPath + +from ..connection.base import BaseConnection + + +if TYPE_CHECKING: + from ..bot import Bot + + +class UnsubscribeWebhook(BaseConnection): + + """ + Отписывает бота от получения обновлений через WebHook. После вызова этого метода бот перестает получать уведомления о новых событиях, и доступна доставка уведомлений через API с длительным опросом. + + Args: + bot (Bot): Экземпляр бота для выполнения запроса. + url (str): URL, который нужно удалить из подписок на WebHook + """ + + def __init__( + self, + bot: 'Bot', + url: str, + ): + self.bot = bot + self.url = url + + async def fetch(self) -> Unsubscribed: + + """ + Отправляет запрос на подписку бота на получение обновлений через WebHook + + Returns: + Unsubscribed: Объект с информацией об операции + """ + + if self.bot is None: + raise RuntimeError('Bot не инициализирован') + + params = self.bot.params.copy() + + params['url'] = self.url + + return await super().request( + method=HTTPMethod.DELETE, + path=ApiPath.SUBSCRIPTIONS, + model=Unsubscribed, + params=params, + ) \ No newline at end of file