diff --git a/bots/handlers/subscription_handler.py b/bots/handlers/subscription_handler.py new file mode 100644 index 0000000..60984d9 --- /dev/null +++ b/bots/handlers/subscription_handler.py @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- +""" +Обработчик подписок (roster subscription requests). +Автоматически одобряет все входящие запросы и отправляет встречную подписку. +""" + +import logging + +logger = logging.getLogger(__name__) + + +class SubscriptionHandler: + """Автоматически принимает все запросы на подписку (для упрощения).""" + + def __init__(self, bot): + self.bot = bot + + async def handle_subscription(self, presence): + """ + Обработчик события roster_subscription_request. + Автоматически одобряет и подписывается в ответ. + """ + jid = presence['from'].bare + logger.info(f"Запрос подписки от {jid}, одобряем.") + + # Отправляем разрешение на подписку (пользователь может видеть статус бота) + self.bot.send_presence(pto=jid, ptype='subscribed') + + # Отправляем встречную подписку (бот будет видеть статус пользователя) + self.bot.send_presence(pto=jid, ptype='subscribe') \ No newline at end of file