MessageInput

The MessageInput widget allows you to process incoming messages in the context of a dialog.

You can use filters like in aiogram to divide logic into multiple inputs.

Code example:

from aiogram.fsm.state import State, StatesGroup
from aiogram.types import ContentType, Message
from aiogram_dialog import (
    Dialog,
    Window,
    DialogManager,
)
from aiogram_dialog.widgets.input import MessageInput
from aiogram_dialog.widgets.text import Const


class Main(StatesGroup):
    document = State()


async def document_handler(
        message: Message,
        message_input: MessageInput,
        manager: DialogManager,
):
    manager.dialog_data["document"] = message.document
    await message.answer(f"Your document has been verified!")
    await manager.done()


dialog = Dialog(
    Window(
        Const("Submit your document for verification:"),
        MessageInput(document_handler, content_types=[ContentType.DOCUMENT]),
        state=Main.document,
    ),
)
class aiogram_dialog.widgets.input.base.MessageInput(func, content_types=ContentType.ANY, filter=None)
Parameters:
  • func (Callable[[Message, MessageInput, DialogManager], Awaitable] | WidgetEventProcessor | None)

  • content_types (Sequence[str] | str)

  • filter (Callable[[...], Any] | None)

__init__(func, content_types=ContentType.ANY, filter=None)
Parameters:
  • func (Callable[[Message, MessageInput, DialogManager], Awaitable] | WidgetEventProcessor | None)

  • content_types (Sequence[str] | str)

  • filter (Callable[[...], Any] | None)