CallbackQuery fixes for custom filters

Now some custom filters support callback query messages
This commit is contained in:
_run 2022-07-05 21:18:42 +05:00
parent 388306b7fe
commit 1df19e3b2d
2 changed files with 15 additions and 2 deletions

View File

@ -201,6 +201,8 @@ class ChatFilter(AdvancedCustomFilter):
key = 'chat_id'
async def check(self, message, text):
if isinstance(message, types.CallbackQuery):
return message.message.chat.id in text
return message.chat.id in text
@ -216,7 +218,7 @@ class ForwardFilter(SimpleCustomFilter):
key = 'is_forwarded'
async def check(self, message):
return message.forward_from_chat is not None
return message.forward_date is not None
class IsReplyFilter(SimpleCustomFilter):
@ -231,6 +233,8 @@ class IsReplyFilter(SimpleCustomFilter):
key = 'is_reply'
async def check(self, message):
if isinstance(message, types.CallbackQuery):
return message.message.reply_to_message is not None
return message.reply_to_message is not None
@ -266,6 +270,9 @@ class IsAdminFilter(SimpleCustomFilter):
self._bot = bot
async def check(self, message):
if isinstance(message, types.CallbackQuery):
result = await self._bot.get_chat_member(message.message.chat.id, message.from_user.id)
return result.status ('creator', 'administrator')
result = await self._bot.get_chat_member(message.chat.id, message.from_user.id)
return result.status in ['creator', 'administrator']

View File

@ -208,6 +208,8 @@ class ChatFilter(AdvancedCustomFilter):
key = 'chat_id'
def check(self, message, text):
if isinstance(message, types.CallbackQuery):
return message.message.chat.id in text
return message.chat.id in text
@ -223,7 +225,7 @@ class ForwardFilter(SimpleCustomFilter):
key = 'is_forwarded'
def check(self, message):
return message.forward_from_chat is not None
return message.forward_date is not None
class IsReplyFilter(SimpleCustomFilter):
@ -238,6 +240,8 @@ class IsReplyFilter(SimpleCustomFilter):
key = 'is_reply'
def check(self, message):
if isinstance(message, types.CallbackQuery):
return message.message.reply_to_message is not None
return message.reply_to_message is not None
@ -273,6 +277,8 @@ class IsAdminFilter(SimpleCustomFilter):
self._bot = bot
def check(self, message):
if isinstance(message, types.CallbackQuery):
return self._bot.get_chat_member(message.message.chat.id, message.from_user.id).status in ['creator', 'administrator']
return self._bot.get_chat_member(message.chat.id, message.from_user.id).status in ['creator', 'administrator']