Update filters usage in docs and examples

This commit is contained in:
Alex Root Junior 2022-08-14 18:15:53 +03:00
parent 443a2ef455
commit ec8e580b9a
No known key found for this signature in database
GPG key ID: 074C1D455EBEA4AC
7 changed files with 19 additions and 10 deletions

View file

@ -86,10 +86,10 @@ Handle user leave or join events
from aiogram.filters import IS_MEMBER, IS_NOT_MEMBER
@router.chat_member(member_status_changed=IS_MEMBER >> IS_NOT_MEMBER)
@router.chat_member(ChatMemberUpdatedFilter(member_status_changed=IS_MEMBER >> IS_NOT_MEMBER))
async def on_user_leave(event: ChatMemberUpdated): ...
@router.chat_member(member_status_changed=IS_NOT_MEMBER >> IS_MEMBER)
@router.chat_member(ChatMemberUpdatedFilter(member_status_changed=IS_NOT_MEMBER >> IS_MEMBER))
async def on_user_join(event: ChatMemberUpdated): ...
Or construct your own terms via using pre-defined set of statuses and transitions.

View file

@ -21,8 +21,7 @@ Usage
1. Filter single variant of commands: :code:`Command(commands=["start"])` or :code:`Command(commands="start")`
2. Handle command by regexp pattern: :code:`Command(commands=[re.compile(r"item_(\d+)")])`
3. Match command by multiple variants: :code:`Command(commands=["item", re.compile(r"item_(\d+)")])`
4. Handle commands in public chats intended for other bots: :code:`Command(commands=["command"], commands)`
5. As keyword argument in registerer: :code:`@router.message(commands=["help"])`
4. Handle commands in public chats intended for other bots: :code:`Command(commands=["command"], commands_ignore_mention=True)`
.. warning::

View file

@ -2,6 +2,13 @@
Filtering events
================
.. danger::
Note that the design of filters will be changed in 3.0b5
`Read more >> <https://github.com/aiogram/aiogram/issues/942>`_
Filters is needed for routing updates to the specific handler.
Searching of handler is always stops on first match set of filters are pass.

View file

@ -17,7 +17,7 @@ Or used from filters factory by passing corresponding arguments to handler regis
Usage
=====
#. :code:`magic_data=F.event.from_user.id == F.config.admin_id` (Note that :code:`config` should be passed from middleware)
#. :code:`MagicData(magic_data=F.event.from_user.id == F.config.admin_id)` (Note that :code:`config` should be passed from middleware)
Allowed handlers

View file

@ -1,6 +1,7 @@
import logging
from aiogram import Bot, Dispatcher, types
from aiogram.filters import Command
from aiogram.types import Message
TOKEN = "42:TOKEN"
@ -9,7 +10,7 @@ dp = Dispatcher()
logger = logging.getLogger(__name__)
@dp.message(commands=["start"])
@dp.message(Command(commands=["start"]))
async def command_start_handler(message: Message) -> None:
"""
This handler receive messages with `/start` command

View file

@ -5,6 +5,7 @@ from os import getenv
from typing import Any, Dict
from aiogram import Bot, Dispatcher, F, Router, html
from aiogram.filters import Command
from aiogram.fsm.context import FSMContext
from aiogram.fsm.state import State, StatesGroup
from aiogram.types import KeyboardButton, Message, ReplyKeyboardMarkup, ReplyKeyboardRemove
@ -18,7 +19,7 @@ class Form(StatesGroup):
language = State()
@form_router.message(commands=["start"])
@form_router.message(Command(commands=["start"]))
async def command_start(message: Message, state: FSMContext) -> None:
await state.set_state(Form.name)
await message.answer(
@ -27,7 +28,7 @@ async def command_start(message: Message, state: FSMContext) -> None:
)
@form_router.message(commands=["cancel"])
@form_router.message(Command(commands=["cancel"]))
@form_router.message(F.text.casefold() == "cancel")
async def cancel_handler(message: Message, state: FSMContext) -> None:
"""

View file

@ -1,6 +1,7 @@
import logging
from aiogram import Bot, Dispatcher, Router
from aiogram.filters import Command
from aiogram.types import (
CallbackQuery,
ChatMemberUpdated,
@ -16,7 +17,7 @@ logger = logging.getLogger(__name__)
logging.basicConfig(level=logging.INFO)
@dp.message(commands=["start"])
@dp.message(Command(commands=["start"]))
async def command_start_handler(message: Message) -> None:
"""
This handler receive messages with `/start` command
@ -71,7 +72,7 @@ async def my_chat_member_change(chat_member: ChatMemberUpdated, bot: Bot) -> Non
def main() -> None:
# Initialize Bot instance with an default parse mode which will be passed to all API calls
# Initialize Bot instance with a default parse mode which will be passed to all API calls
bot = Bot(TOKEN, parse_mode="HTML")
sub_router.include_router(deep_dark_router)