Утилиты для Aiogram 3.x
Инструменты для быстрой интеграции ОП (Обязательной Подписки) в бота.
Middleware
Автоматическая проверка подписки перед обработкой сообщений.
aiosubgram.utils.middleware.OPMiddleware
OPMiddleware(client: SubgramClient, max_sponsors: int = 5, sub_text: str = 'Чтобы получить доступ к боту, подпишитесь:', channel_text: str = '➕ Подписаться', bot_text: str = '➕ Перейти в бота', smart_link_text: str = '➕ Перейти', resource_text: str = '➕ Перейти', done_button_text: str = '✅ Я подписался!')
Bases: BaseMiddleware
Миддлварь для aiogram, которая добавляет клавиатуру с кнопками подписки на каналы, боты, смарт-ссылки и внешние ресурсы.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
client
|
SubgramClient
|
Экземпляр SubgramClient. |
required |
max_sponsors
|
int
|
Максимальное количество спонсоров. По умолчанию: 5. |
5
|
sub_text
|
str
|
Текст на кнопке подписки. По умолчанию: "Чтобы получить доступ к боту, подпишитесь:". |
'Чтобы получить доступ к боту, подпишитесь:'
|
channel_text
|
str
|
Текст на кнопке для каналов. По умолчанию: "➕ Подписаться". |
'➕ Подписаться'
|
bot_text
|
str
|
Текст на кнопке для ботов. По умолчанию: "➕ Перейти в бота". |
'➕ Перейти в бота'
|
smart_link_text
|
str
|
Текст на кнопке для смарт-ссылок. По умолчанию: "➕ Перейти". |
'➕ Перейти'
|
resource_text
|
str
|
Текст на кнопке для внешних ресурсов. По умолчанию: "➕ Перейти". |
'➕ Перейти'
|
done_button_text
|
str
|
Текст на кнопке "Я подписался!". По умолчанию: "✅ Я подписался!" |
'✅ Я подписался!'
|
Source code in aiosubgram\utils\middleware.py
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | |
Attributes
bot_text
instance-attribute
bot_text = bot_text
channel_text
instance-attribute
channel_text = channel_text
client
instance-attribute
client = client
done_button_text
instance-attribute
done_button_text = done_button_text
max_sponsors
instance-attribute
max_sponsors = max_sponsors
resource_text
instance-attribute
resource_text = resource_text
smart_link_text
instance-attribute
smart_link_text = smart_link_text
sub_text
instance-attribute
sub_text = sub_text
Functions
__call__
async
__call__(handler, event, data)
Source code in aiosubgram\utils\middleware.py
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | |
Клавиатуры
Генерация кнопок для подписки.
aiosubgram.utils.keyboard
Classes
Functions
create_op_keyboard
async
create_op_keyboard(sponsors_response: Optional[GetSponsors] = None, client: Optional[SubgramClient] = None, channel_text: str = '➕ Подписаться', bot_text: str = '➕ Перейти в бота', smart_link_text: str = '➕ Перейти', resource_text: str = '➕ Перейти', done_button_text: Optional[str] = '✅ Я подписался!', **kwargs: Any) -> InlineKeyboardMarkup
Генерирует клавиатуру (InlineKeyboardMarkup) для aiogram на основе списка спонсоров.
Если sponsors_response не передан, функция сама сделает запрос к API через client.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
sponsors_response
|
GetSponsors
|
Объект ответа от get_sponsors (если уже есть). |
None
|
client
|
SubgramClient
|
Экземпляр SubgramClient (нужен, если sponsors_response is None). |
None
|
channel_text
|
str
|
Текст на кнопке для каналов (можно использовать {name}). |
'➕ Подписаться'
|
bot_text
|
str
|
Текст на кнопке для ботов. |
'➕ Перейти в бота'
|
smart_link_text
|
str
|
Текст на кнопке для смарт-ссылок. |
'➕ Перейти'
|
resource_text
|
str
|
Текст на кнопке для внешних ресурсов. |
'➕ Перейти'
|
done_button_text
|
Optional[str]
|
Текст кнопки проверки подписки (callback_data: "subgram-done"). |
'✅ Я подписался!'
|
**kwargs
|
Any
|
Аргументы для get_sponsors (chat_id, user_id и т.д.), если запрос делается внутри. |
{}
|
Returns:
| Name | Type | Description |
|---|---|---|
InlineKeyboardMarkup |
InlineKeyboardMarkup
|
Готовая клавиатура со ссылками на спонсоров. |
Source code in aiosubgram\utils\keyboard.py
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | |