Диспетчер#

Диспетчер - це кореневий маршрутизатор, і в коді диспетчер може використовуватися безпосередньо для маршрутизації подій або підключення інших маршрутизаторів до диспетчера.

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 – контекстні дані

Повертає:

async stop_polling() None[source]#

Execute this method if you want to stop polling programmatically

Повертає:

Просте застосування#

Наприклад:

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)