
Python. Телеграм бот. Створіть бота, який при отриманні мультимедіа від користувача (фото, аудіо,
відео, документ), зберігає file_id цього медіа та може його повторно відправити при отриманні відповідної команди.

Ответы на вопрос

import telebot
# Твій токен боту
TOKEN = 'your_bot_token'
bot = telebot.TeleBot(TOKEN)
@bot.message_handler(content_types=['photo', 'audio', 'video', 'document'])
def handle_media(message):
# Отримуємо file_id мультимедіа
file_id = message.document.file_id if message.document else None
file_id = message.photo[-1].file_id if message.photo else file_id
file_id = message.audio.file_id if message.audio else file_id
file_id = message.video.file_id if message.video else file_id
# Зберігаємо file_id для подальшого використання
if file_id:
# Тут ви можете зберегти file_id у базу даних або в іншу зберігаючу систему
save_file_id(file_id)
bot.reply_to(message, 'Медіа успішно збережено!')
else:
bot.reply_to(message, 'Це не підтримуване мультимедіа.')
@bot.message_handler(commands=['send_media'])
def send_media(message):
# Отримуємо file_id збереженого мультимедіа
file_id = get_saved_file_id()
# Відправляємо мультимедіа користувачеві
if file_id:
# В залежності від типу мультимедіа, використовуй відповідну функцію відправки
# Тут можна використовувати bot.send_photo, bot.send_audio, bot.send_video, bot.send_document і т.д.
bot.send_photo(message.chat.id, file_id)
else:
bot.reply_to(message, 'Мультимедіа для відправлення не знайдено.')
def save_file_id(file_id):
# Тут можна реалізувати логіку збереження file_id у базу даних або в іншу зберігаючу систему
# Наприклад, можна використовувати SQLite, MySQL, Redis, тощо.
pass
def get_saved_file_id():
# Тут можна реалізувати логіку отримання збереженого file_id з бази даних або з іншої зберігаючої системи
pass
bot.polling()



Для створення такого Telegram бота ви можете використовувати бібліотеку Python, як, наприклад, python-telegram-bot
. Переконайтеся, що ви встановили цю бібліотеку:
bashpip install python-telegram-bot
Ось код, який дозволить вам створити бота, який зберігатиме file_id
для кожного мультимедіа, отриманого від користувача, і повторно відправлятиме його при отриманні відповідної команди:
pythonimport logging
from telegram import Update
from telegram.ext import Updater, CommandHandler, MessageHandler, Filters, CallbackContext
# Ваш токен бота
TOKEN = 'YOUR_BOT_TOKEN'
# Словник для збереження file_id
file_ids = {}
def start(update: Update, context: CallbackContext):
update.message.reply_text("Вітаю! Відправте будь-яке мультимедіа, і я збережу його file_id.")
def save_file_id(update: Update, context: CallbackContext):
# Отримуємо file_id мультимедіа
file_id = update.message.photo[-1].file_id if update.message.photo else \
update.message.audio.file_id if update.message.audio else \
update.message.document.file_id if update.message.document else \
update.message.video.file_id if update.message.video else None
if file_id:
# Зберігаємо file_id у словнику
file_ids[update.message.chat_id] = file_id
update.message.reply_text("file_id збережено. Ви можете його повторно відправити командою /send_media.")
else:
update.message.reply_text("Мені не вдалося знайти file_id мультимедіа.")
def send_media(update: Update, context: CallbackContext):
chat_id = update.message.chat_id
if chat_id in file_ids:
file_id = file_ids[chat_id]
context.bot.send_photo(chat_id, photo=file_id)
else:
update.message.reply_text("Спочатку збережіть file_id мультимедіа, відправивши його боту.")
def main():
updater = Updater(token=TOKEN, use_context=True)
dispatcher = updater.dispatcher
dispatcher.add_handler(CommandHandler('start', start))
dispatcher.add_handler(CommandHandler('send_media', send_media))
dispatcher.add_handler(MessageHandler(Filters.all, save_file_id))
updater.start_polling()
updater.idle()
if __name__ == '__main__':
main()
Переконайтеся, що ви замінили 'YOUR_BOT_TOKEN'
на фактичний токен вашого бота. Цей бот відповідає на команди /start
, /send_media
, зберігає file_id
мультимедіа та відправляє його за запитом /send_media
.


Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili