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)