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 re
from typing import Callable, Union, List, Pattern
from typing import Callable, List, Pattern, Union
import pyrogram
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:
@ -979,12 +987,33 @@ class chat(Filter, set):
else c for c in chats
)
async def __call__(self, _, message: Message):
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)))
async def __call__(self, _, message: Union[Message, Story]):
if isinstance(message, Story):
return (
message.sender_chat
and (
message.sender_chat.id in self
or (
message.sender_chat.username
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)))