22 lines
705 B
Python
22 lines
705 B
Python
from aiogram.filters import BaseFilter
|
||
from aiogram.types import CallbackQuery
|
||
|
||
# Настройка экспорта
|
||
__all__ = ("CallbackDataStartsWith",)
|
||
|
||
|
||
class CallbackDataStartsWith(BaseFilter):
|
||
"""
|
||
Фильтр для callback_data, начинающихся с префикса.
|
||
|
||
Example:
|
||
@router.callback_query(CallbackDataStartsWith("menu:"))
|
||
async def handler(cb: CallbackQuery):
|
||
await cb.answer("Это callback из меню ✅")
|
||
"""
|
||
def __init__(self, prefix: str) -> None:
|
||
self.prefix = prefix
|
||
|
||
async def __call__(self, callback: CallbackQuery) -> bool:
|
||
return bool(callback.data and callback.data.startswith(self.prefix))
|