diff --git a/aiogram/dispatcher/filters/__init__.py b/aiogram/dispatcher/filters/__init__.py index 637fe181..21fb80c3 100644 --- a/aiogram/dispatcher/filters/__init__.py +++ b/aiogram/dispatcher/filters/__init__.py @@ -26,4 +26,5 @@ BUILTIN_FILTERS: Dict[str, Union[Tuple[BaseFilter], Tuple]] = { "shipping_query": (), "pre_checkout_query": (), "poll": (), + "poll_answer": (), } diff --git a/aiogram/dispatcher/router.py b/aiogram/dispatcher/router.py index 073e98d0..3bf5dd27 100644 --- a/aiogram/dispatcher/router.py +++ b/aiogram/dispatcher/router.py @@ -45,6 +45,7 @@ class Router: router=self, event_name="pre_checkout_query" ) self.poll_handler = TelegramEventObserver(router=self, event_name="poll") + self.poll_answer_handler = TelegramEventObserver(router=self, event_name="poll_answer") self.startup = EventObserver() self.shutdown = EventObserver() @@ -61,6 +62,7 @@ class Router: "shipping_query": self.shipping_query_handler, "pre_checkout_query": self.pre_checkout_query_handler, "poll": self.poll_handler, + "poll_answer": self.poll_answer_handler, } # Root handler diff --git a/docs/dispatcher/router.md b/docs/dispatcher/router.md index 09f3c916..30625281 100644 --- a/docs/dispatcher/router.md +++ b/docs/dispatcher/router.md @@ -109,6 +109,13 @@ async def poll_handler(poll: types.Poll) -> Any: pass ``` Is useful for handling [polls](../api/types/poll.md) +### Poll answer +```python3 +@router.poll_answer_handler() +async def poll_answer_handler(poll_answer: types.PollAnswer) -> Any: pass +``` +Is useful for handling [polls answers](../api/types/poll_answer.md) + ## Nested routers