Диспетчер#
Диспетчер - це кореневий маршрутизатор, і в коді диспетчер може використовуватися безпосередньо для маршрутизації подій або підключення інших маршрутизаторів до диспетчера.
Here is only listed base information about Dispatcher. All about writing handlers, filters and etc. you can find in next pages:
- class aiogram.dispatcher.dispatcher.Dispatcher(*, storage: BaseStorage | None = None, fsm_strategy: FSMStrategy = FSMStrategy.USER_IN_CHAT, events_isolation: BaseEventIsolation | None = None, disable_fsm: bool = False, name: str | None = None, **kwargs: Any)[source]#
Кореневий маршрутизатор
- __init__(*, storage: BaseStorage | None = None, fsm_strategy: FSMStrategy = FSMStrategy.USER_IN_CHAT, events_isolation: BaseEventIsolation | None = None, disable_fsm: bool = False, name: str | None = None, **kwargs: Any) None [source]#
Кореневий маршрутизатор
- Параметри:
storage – Сховище для кінцевого автомату (FSM)
fsm_strategy – Стратегія кінцевого апарату
events_isolation – Ізоляція подій
disable_fsm – Відключення кінцевого апарату, зауважте що при вимкненому кінцевому апаратові вам не слід використовувати сховище (кінцевого апарату) та ізоляцію подій
kwargs – Інші аргументи будуть передані обробникам як іменовані аргументи
- async feed_raw_update(bot: Bot, update: Dict[str, Any], **kwargs: Any) Any [source]#
Основна точка входу для подій
- Параметри:
bot –
update –
kwargs –
- async feed_update(bot: Bot, update: Update, **kwargs: Any) Any [source]#
Основна точка входу для подій. Відповідь цього метода може бути використана для відповіді у Webhook
- Параметри:
bot –
update –
- run_polling(*bots: Bot, polling_timeout: int = 10, handle_as_tasks: bool = True, backoff_config: BackoffConfig = BackoffConfig(min_delay=1.0, max_delay=5.0, factor=1.3, jitter=0.1), allowed_updates: List[str] | _SentinelObject | None = sentinel.UNSET, handle_signals: bool = True, close_bot_session: bool = True, **kwargs: Any) None [source]#
Запуск кількох ботів з опитуванням
- Параметри:
bots – Bot instances (one or more)
polling_timeout – Long-polling wait time
handle_as_tasks – Запуск обробки без очікування результату
backoff_config – backoff-retry config
allowed_updates – Список типів подій, які має опрацьовувати ваш бот
handle_signals – handle signals (SIGINT/SIGTERM)
close_bot_session – close bot sessions on shutdown
kwargs – контекстні дані
- Повертає:
- async start_polling(*bots: Bot, polling_timeout: int = 10, handle_as_tasks: bool = True, backoff_config: BackoffConfig = BackoffConfig(min_delay=1.0, max_delay=5.0, factor=1.3, jitter=0.1), allowed_updates: List[str] | _SentinelObject | None = sentinel.UNSET, handle_signals: bool = True, close_bot_session: bool = True, **kwargs: Any) None [source]#
Запуск кількох ботів з опитуванням (асинхронно)
- Параметри:
bots – Bot instances (one or more)
polling_timeout – Long-polling wait time
handle_as_tasks – Запуск обробки без очікування результату
backoff_config – backoff-retry config
allowed_updates – List of the update types you want your bot to receive By default, all used update types are enabled (resolved from handlers)
handle_signals – handle signals (SIGINT/SIGTERM)
close_bot_session – close bot sessions on shutdown
kwargs – контекстні дані
- Повертає:
Просте застосування#
Наприклад:
dp = Dispatcher()
@dp.message()
async def message_handler(message: types.Message) -> None:
await SendMessage(chat_id=message.from_user.id, text=message.text)
Включаючи маршрутизатори
Наприклад:
dp = Dispatcher()
router1 = Router()
dp.include_router(router1)
Обробка подій#
Усі оновлення можна передати диспетчеру через Dispatcher.feed_update(bot=..., update=...)
method:
bot = Bot(...)
dp = Dispathcher()
...
result = await dp.feed_update(bot=bot, update=incoming_update)