Я сделал бота что бы он у меня работал и писал в моем тг канале под постами доп информацию. Но у меня не получается его исправить что бы он видел эти посты в чате где должны на них отвечать. Я попытался сделать так что бы бот отвечал на закреплённые сообщения только, ведь когда выходит пост это сообщение закрепляется в чате, но и это у меня не получается почему то. Вот весь мой код. Пожалуйста, помогите мне сделать фильтрацию так, что бы бот отвечал только на СООБЩЕНИЯ КАНАЛА, а не на все сообщения. from telegram import Update from telegram.ext import ApplicationBuilder, MessageHandler, filters, ContextTypes import asyncio
TOKEN = 'токен бота'
# Функция-фильтр для проверки, что сообщение закреплено def pinned_message_filter(message): return message.pinned_message is not None
# Создаем фильтр для обработки только закреплённых сообщений custom_filter = filters.ChatType.GROUPS & filters.MessageFilter(pinned_message_filter)
# Использование пользовательского фильтра для обработки закреплённых сообщений application.add_handler(MessageHandler(custom_filter, handle_pinned_message))
from telegram import Update
from telegram.ext import ApplicationBuilder, MessageHandler, filters, ContextTypes
import asyncio
TOKEN = 'токен бота'
# Функция-фильтр для проверки, что сообщение закреплено
def pinned_message_filter(message):
return message.pinned_message is not None
# Создаем фильтр для обработки только закреплённых сообщений
custom_filter = filters.ChatType.GROUPS & filters.MessageFilter(pinned_message_filter)
async def handle_pinned_message(update: Update, context: ContextTypes.DEFAULT_TYPE):
await update.message.reply_text("Это закреплённое сообщение!")
async def main():
application = ApplicationBuilder().token(TOKEN).build()
# Использование пользовательского фильтра для обработки закреплённых сообщений
application.add_handler(MessageHandler(custom_filter, handle_pinned_message))
# Запуск бота с polling
await application.initialize()
await application.start()
await application.updater.start_polling()
if __name__ == '__main__':
# Создаем новый цикл событий
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
try:
loop.run_until_complete(main()) # Запускаем основную функцию в цикле
finally:
loop.close() # Закр
ываем цикл событий после завершения