Пытался Сделать код для телеграмм бота, который будет выдавать картинку из другого телеграмм канала(личные сообщения или чей то канал) по запросу.У картинок будет подпись, она начинается с #, но имеет разные значения дальше (например #drh, #hs2126). Вот код: import logging from telegram import Update from telegram.ext import ApplicationBuilder, CommandHandler, ContextTypes from telethon import TelegramClient logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', level= http://logging.INFO ) API_ID = API_HASH = '' CHANNEL_USERNAME = '' BOT_TOKEN = '' client = TelegramClient('session_name', API_ID, API_HASH) async def send_image(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None: if context.args: tag = context.args[0] await client.start() # Запускаем клиент async for message in client.iter_messages(CHANNEL_USERNAME): if http://message.photo and message.caption and message.caption.startswith('#'): if message.caption.startswith(tag): file = await http://message.download () with open(file, 'rb') as image_file: await http://context.bot .send_photo(chat_id=update.effective_ http://chat.id , photo=image_file, caption=message.caption) break else: await http://context.bot .send_message(chat_id=update.effective_ http://chat.id , text="Изображение с таким тегом не найдено.") else: await http://context.bot .send_message(chat_id=update.effective_ http://chat.id , text="Пожалуйста, укажите тег. Например: /image #drh") async def main(): await client.start() # Запускаем клиент application = ApplicationBuilder().token(BOT_TOKEN).build() application.add_handler(CommandHandler("image", send_image)) await http://application.run _polling() if __name__ == '__main__': import asyncio http://asyncio.run (main()) . Сам код ошибок не выдаёт, но бот на команды не реагирует. Можете помочь?
import logging from telegram import Update from telegram.ext import ApplicationBuilder, CommandHandler, ContextTypes from telethon import TelegramClient logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', level= http://logging.INFO ) API_ID = API_HASH = '' CHANNEL_USERNAME = '' BOT_TOKEN = '' client = TelegramClient('session_name', API_ID, API_HASH) async def send_image(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None: if context.args: tag = context.args[0] await client.start() # Запускаем клиент async for message in client.iter_messages(CHANNEL_USERNAME): if http://message.photo and message.caption and message.caption.startswith('#'): if message.caption.startswith(tag): file = await http://message.download () with open(file, 'rb') as image_file: await http://context.bot .send_photo(chat_id=update.effective_ http://chat.id , photo=image_file, caption=message.caption) break else: await http://context.bot .send_message(chat_id=update.effective_ http://chat.id , text="Изображение с таким тегом не найдено.") else: await http://context.bot .send_message(chat_id=update.effective_ http://chat.id , text="Пожалуйста, укажите тег. Например: /image #drh") async def main(): await client.start() # Запускаем клиент application = ApplicationBuilder().token(BOT_TOKEN).build() application.add_handler(CommandHandler("image", send_image)) await http://application.run _polling() if __name__ == '__main__': import asyncio http://asyncio.run (main()) . Сам код ошибок не выдаёт, но бот на команды не реагирует. Можете помочь?