More docs

This commit is contained in:
Alex Root Junior 2021-10-12 01:11:53 +03:00
parent 3931253a88
commit f97367b3ee
16 changed files with 415 additions and 100 deletions

View file

@ -19,8 +19,8 @@ Here is list of builtin filters:
content_types
text
exception
Or you can do :ref:`✨ some magic <magic-filters>`
magic_filters
magic_data
Own filters specification
=========================
@ -35,7 +35,7 @@ Filters can be:
- Any awaitable object
- Subclass of :ref:`BaseFilter <filters-base>`
- Subclass of :class:`aiogram.dispatcher.filters.base.BaseFilter`
- Instances of :ref:`MagicFilter <magic-filters>`

View file

@ -0,0 +1,34 @@
====
MagicData
====
.. autoclass:: aiogram.dispatcher.filters.magic_data.MagicData
:members:
:member-order: bysource
:undoc-members: False
Can be imported:
- :code:`from aiogram.dispatcher.filters.magic_data import MagicData`
- :code:`from aiogram.dispatcher.filters import MagicData`
- :code:`from aiogram.filters import MagicData`
Or used from filters factory by passing corresponding arguments to handler registration line
Usage
=====
#. :code:`magic_data=F.event.from_user.id == F.config.admin_id` (Note that :code:`config` should be passed from middleware)
Allowed handlers
================
Allowed update types for this filter:
- :code:`message`
- :code:`edited_message`
- :code:`channel_post`
- :code:`edited_channel_post`
- :code:`inline_query`
- :code:`callback_query`

View file

@ -24,7 +24,7 @@ and memorize the attributes chain and the action which should be checked on dema
So that's mean you can chain attribute getters, describe simple data validations
and then call the resulted object passing single object as argument,
for example make attributes chain :code:`F.foo.bar.baz` then add
action ':code:`F.foo.bar.baz == 'spam'` and then call the resulted object - :code:`(F.foo.bar.baz == 'spam')(obj)`
action ':code:`F.foo.bar.baz == 'spam'` and then call the resulted object - :code:`(F.foo.bar.baz == 'spam').resolve(obj)`
.. _magic-filter-possible-actions:
@ -125,9 +125,9 @@ Can be used only with string attributes.
.. code-block:: python
F.text__lower == 'test' # lambda message: message.text.lower() == 'test'
F.text__upper.in_('FOO', 'BAR') # lambda message: message.text.upper() in {'FOO', 'BAR'}
F.text__len == 5 # lambda message: len(message.text) == 5
F.text.lower() == 'test' # lambda message: message.text.lower() == 'test'
F.text.upper().in_('FOO', 'BAR') # lambda message: message.text.upper() in {'FOO', 'BAR'}
F.text.len() == 5 # lambda message: len(message.text) == 5
Usage in *aiogram*