Aiogram 3.7.0 Фильтр по entities (url)

Я пишу функцию для бота, которая банит всех, кто отправляет ссылку на Hamster Combat https://t.me/hamster_kombat_bot/start?startapp=kentIdXXXXXXXXXX. Не понимаю как написать фильтр, который будет отлавливать ссылки. Что я имею сейчас:

@dp.message(F.entities)    # не понимаю, что делать дальше, но реагирует только когда есть какой-либо entities
async def hamster_detected(message: Message):
    logging.info('ХОМЯК')

Ответы (1 шт):

Автор решения: Tim

насколько я понял, вам нужно использовать бота в чате с пользователями, вот простая версия моего кода которая может быть вам полезна:

import asyncio
from aiogram import Bot, Dispatcher, F
from aiogram.types import CallbackQuery, Message

dp = Dispatcher()
bot = Bot(token='')


# @dp.message(lambda msg: 'http' in msg.text.lower())
@dp.message(lambda msg: 'http' in msg.text)
async def text_message(message: Message):
    if 'hamster_kombat_bot/start?startapp=kentId' in message.text.lower():
        # Моментально удалит последнее сообщение, а именно, реферальную ссылку.
        await message.delete()
        # Заблокирует  на 365 дней, удалит все сообщения от него.
        await bot.ban_chat_member(message.chat.id, message.from_user.id, 365, True)
        m = "[" + str(message.from_user.first_name) + "](tg://user?id=" + str(message.from_user.id) + ")"
        await message.answer(f'Пользователь {m} *заблокирован* за нарушение правил чата.', parse_mode='Markdown')


async def main():
    await dp.start_polling(bot)


if __name__ == "__main__":
    asyncio.run(main())

Я попытался использовать в декораторе метод lower(), но обнаружил, что при его использовании появляется ошибка AttributeError: 'NoneType' object has no attribute 'lower', когда бот реагирует на системные сообщения по типу Пользователь добавил в чат пользователя и др. Вы можете оставить в декораторе все как есть, можете заменить декоратор на закоментированный выше, но в таком случае у вас в output будут постоянные сообщения об ошибках, к счастью, это не повлияет на его работоспособность.

→ Ссылка