From 1e0f5f85b3d87ceffce49cc85160809d0d066f61 Mon Sep 17 00:00:00 2001 From: KurimuzonAkuma Date: Fri, 5 Jul 2024 18:45:27 +0300 Subject: [PATCH] Add self_destruction filter --- pyrogram/filters.py | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/pyrogram/filters.py b/pyrogram/filters.py index b9f77d23..21548651 100644 --- a/pyrogram/filters.py +++ b/pyrogram/filters.py @@ -18,7 +18,7 @@ import inspect import re -from typing import Callable, Union, List, Pattern +from typing import Callable, Union, List, Pattern, Optional import pyrogram from pyrogram import enums @@ -261,6 +261,16 @@ caption = create(caption_filter) # endregion +# region self_destruction_filter +async def self_destruction_filter(_, __, m: Message): + return bool(m.media and getattr(getattr(m, m.media.value, None), "ttl_seconds", None)) + + +self_destruction = create(self_destruction_filter) +"""Filter self-destruction media messages.""" + + +# endregion # region audio_filter async def audio_filter(_, __, m: Message): @@ -971,7 +981,7 @@ def regex(pattern: Union[str, Pattern], flags: int = 0): elif isinstance(update, InlineQuery): value = update.query elif isinstance(update, PreCheckoutQuery): - value = update.payload + value = update.invoice_payload else: raise ValueError(f"Regex filter doesn't work with {type(update)}") @@ -1001,7 +1011,7 @@ class user(Filter, set): Defaults to None (no users). """ - def __init__(self, users: Union[int, str, List[Union[int, str]]] = None): + def __init__(self, users: Optional[Union[int, str, List[Union[int, str]]]] = None): users = [] if users is None else users if isinstance(users, list) else [users] super().__init__( @@ -1033,7 +1043,7 @@ class chat(Filter, set): Defaults to None (no chats). """ - def __init__(self, chats: Union[int, str, List[Union[int, str]]] = None): + def __init__(self, chats: Optional[Union[int, str, List[Union[int, str]]]] = None): chats = [] if chats is None else chats if isinstance(chats, list) else [chats] super().__init__( @@ -1066,7 +1076,7 @@ class topic(Filter, set): Defaults to None (no topics). """ - def __init__(self, topics: Union[int, List[int]] = None): + def __init__(self, topics: Optional[Union[int, List[int]]] = None): topics = [] if topics is None else topics if isinstance(topics, list) else [topics] super().__init__(