# создаем объект бота и диспетчера
bot = Bot(token=TOKEN)
dp = Dispatcher(bot)
# функция для поиска названий игр в сообщениях
async def search_game(message: types.Message):
chat_id = message.chat.id
game_name = message.text.lower()
# получаем историю сообщений в указанном канале
messages = await bot.get_message_history(chat_id=chat_id)
# ищем сообщения, которые содержат заданное название игры
for message in messages:
if message.text is not None and game_name in message.text.lower():
# отправляем пользователю ссылку на найденное сообщение
await bot.send_message(chat_id=chat_id, text=message.link)
# обработчик функций команды start
@dp.message_handler(commands=['start'])
async def start(message: types.Message):
await message.answer('Привет! Я могу помочь вам найти игру. Введите название игры, чтобы начать.')
# обработчик всех сообщений, не являющихся командой "старт"
@dp.message_handler(lambda message: message.text not in ['/start'])
async def echo(message: types.Message):
await search_game(message)
if __name__ == '__main__':
# запускаем бота в бесконечном цикле
executor.start_polling(dp, skip_updates=True)
Фрагменты кода надо размещать в виде текста и оборачивать тэгом code для корректного отображения. Удобно делать кнопкой </> Это обязательно, см.п.3.8 Регламента.
Сюда же относится traceback, ввод и вывод в консоли и другая структурированная текстовая инфа.
Не надо ставить как можно больше тэгов. Лучше оставить один, но конкретный, с которым проблема.
См.п.3.1 Регламента. Также обратите внимание на п.3.4, 3.6