Add new file
This commit is contained in:
30
bots/handlers/subscription_handler.py
Normal file
30
bots/handlers/subscription_handler.py
Normal file
@@ -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')
|
||||||
Reference in New Issue
Block a user