mirror of
https://github.com/aiogram/aiogram.git
synced 2026-04-08 16:37:47 +00:00
Extend MagicFilter with aiogram-specific operation
This commit is contained in:
parent
092b3f06f2
commit
2072b5f0eb
1 changed files with 20 additions and 0 deletions
20
aiogram/utils/magic_filter.py
Normal file
20
aiogram/utils/magic_filter.py
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
from typing import Any
|
||||
|
||||
from magic_filter import MagicFilter as _MagicFilter
|
||||
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, name: str) -> "MagicFilter":
|
||||
return self._extend(AsFilterResultOperation(name=name))
|
||||
Loading…
Add table
Add a link
Reference in a new issue