diff --git a/aiogram/dispatcher/filters/builtin.py b/aiogram/dispatcher/filters/builtin.py index e109eb6d86..1d88b41cf1 100644 --- a/aiogram/dispatcher/filters/builtin.py +++ b/aiogram/dispatcher/filters/builtin.py @@ -10,7 +10,7 @@ from aiogram import types from aiogram.dispatcher.filters.filters import BoundFilter, Filter -from aiogram.types import CallbackQuery, ChatType, InlineQuery, Message, Poll, ChatMemberUpdated, BotCommand +from aiogram.types import CallbackQuery, ChatType, InlineQuery, Message, Poll, ChatMemberUpdated, BotCommand, ChatJoinRequest ChatIDArgumentType = typing.Union[typing.Iterable[typing.Union[int, str]], str, int] @@ -619,7 +619,7 @@ def validate(cls, full_config: typing.Dict[str, typing.Any]) -> typing.Optional[ return result - async def check(self, obj: Union[Message, CallbackQuery, InlineQuery, ChatMemberUpdated]): + async def check(self, obj: Union[Message, CallbackQuery, InlineQuery, ChatMemberUpdated, ChatJoinRequest]): if isinstance(obj, Message): user_id = None if obj.from_user is not None: @@ -637,6 +637,9 @@ async def check(self, obj: Union[Message, CallbackQuery, InlineQuery, ChatMember elif isinstance(obj, ChatMemberUpdated): user_id = obj.from_user.id chat_id = obj.chat.id + elif isinstance(obj, ChatJoinRequest): + user_id = obj.from_user.id + chat_id = obj.chat.id else: return False