mirror of
https://github.com/aiogram/aiogram.git
synced 2026-04-08 16:37:47 +00:00
Extended MagicFilter with aiogram-specific operation (#759)
* Extend MagicFilter with aiogram-specific operation * Added tests * Added changes annotation and update docs
This commit is contained in:
parent
092b3f06f2
commit
d7be55bc58
7 changed files with 85 additions and 11 deletions
|
|
@ -1,11 +1,10 @@
|
|||
from magic_filter import MagicFilter
|
||||
|
||||
from .client import session
|
||||
from .client.bot import Bot
|
||||
from .dispatcher import filters, handler
|
||||
from .dispatcher.dispatcher import Dispatcher
|
||||
from .dispatcher.middlewares.base import BaseMiddleware
|
||||
from .dispatcher.router import Router
|
||||
from .utils.magic_filter import MagicFilter
|
||||
from .utils.text_decorations import html_decoration as _html_decoration
|
||||
from .utils.text_decorations import markdown_decoration as _markdown_decoration
|
||||
|
||||
|
|
|
|||
21
aiogram/utils/magic_filter.py
Normal file
21
aiogram/utils/magic_filter.py
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
from typing import Any
|
||||
|
||||
from magic_filter import MagicFilter as _MagicFilter
|
||||
from magic_filter import MagicT as _MagicT
|
||||
from magic_filter.operations import BaseOperation
|
||||
|
||||
|
||||
class AsFilterResultOperation(BaseOperation):
|
||||
__slots__ = ("name",)
|
||||
|
||||
def __init__(self, name: str) -> None:
|
||||
self.name = name
|
||||
|
||||
def resolve(self, value: Any, initial_value: Any) -> Any:
|
||||
if value:
|
||||
return {self.name: value}
|
||||
|
||||
|
||||
class MagicFilter(_MagicFilter):
|
||||
def as_(self: _MagicT, name: str) -> _MagicT:
|
||||
return self._extend(AsFilterResultOperation(name=name))
|
||||
Loading…
Add table
Add a link
Reference in a new issue