Added compatibility with Story object to chat filter

This commit is contained in:
n1ret 2023-10-31 09:47:29 +05:00
parent 60d96abd15
commit 06ab804ba1

View file

@ -18,11 +18,19 @@
import inspect import inspect
import re import re
from typing import Callable, Union, List, Pattern from typing import Callable, List, Pattern, Union
import pyrogram import pyrogram
from pyrogram import enums from pyrogram import enums
from pyrogram.types import Message, CallbackQuery, InlineQuery, InlineKeyboardMarkup, ReplyKeyboardMarkup, Update from pyrogram.types import (
CallbackQuery,
InlineKeyboardMarkup,
InlineQuery,
Message,
ReplyKeyboardMarkup,
Story,
Update,
)
class Filter: class Filter:
@ -979,12 +987,33 @@ class chat(Filter, set):
else c for c in chats else c for c in chats
) )
async def __call__(self, _, message: Message): async def __call__(self, _, message: Union[Message, Story]):
return (message.chat if isinstance(message, Story):
and (message.chat.id in self return (
or (message.chat.username message.sender_chat
and message.chat.username.lower() in self) and (
or ("me" in self message.sender_chat.id in self
and message.from_user or (
and message.from_user.is_self message.sender_chat.username
and not message.outgoing))) and message.sender_chat.username.lower() in self
)
)
) or (
message.from_user
and (
message.from_user.id in self
or (
message.from_user.username
and message.from_user.username.lower() in self
)
)
)
else:
return (message.chat
and (message.chat.id in self
or (message.chat.username
and message.chat.username.lower() in self)
or ("me" in self
and message.from_user
and message.from_user.is_self
and not message.outgoing)))