0

хочу создать бота в телеграмм, который может получать аудиофайлы разных типов, производить с ними некоторые манипуляции и возвращать пользователю что-то (например фото) как именно с помощью telebot (именно этот API я хочу использовать) возможно это реализовать. Либо может кто-то может оставить ссылку на конкретный пример.Заранее спасибо UPD код:

import telebot
import numpy as np
from numpy import argmax
import matplotlib.pyplot as plt
#%matplotlib inline
import librosa
import librosa.display
#import IPython.display
import matplotlib.pyplot as plt
from PIL import Image
bot = telebot.TeleBot('00000')
@bot.message_handler(content_types=['document','audio'])
def handle_docs_photo(message):
    try:
        chat_id = message.chat.id
    file_info = bot.get_file(message.document.file_id)
    downloaded_file = bot.download_file(file_info.file_path)

    src = 'C:\\Users\\NitghtWay\\OneDrive\\Рабочий стол\\Botyara\\' + message.document.file_name;
    with open(src, 'wb') as new_file:
        new_file.write(downloaded_file)

    bot.reply_to(message, "Пожалуй, я сохраню это")
except Exception as e:
    bot.reply_to(message, e)

bot.polling(none_stop=True, interval=0)

1 Answers1

1
  • информация о типе контента содержится в message.content_type
  • информация о файле хранится, в вашем случае, в message.document и message.audio
  • для wav content_types=['document']
  • для mp3 content_types=['audio']

таким образом:

@bot.message_handler(content_types=['document', 'audio'])
def get_file(message):
    try:
        if message.content_type == 'document':  # wav
            print(message.document)
        file_info = bot.get_file(message.document.file_id)
        downloaded_file = bot.download_file(file_info.file_path)

        src = 'files/' + message.document.file_name
        with open(src, 'wb') as new_file:
            new_file.write(downloaded_file)

        bot.reply_to(message, "Пожалуй, я сохраню это")
    elif message.content_type == 'audio':  # mp3
        print(message.audio)

        file_info = bot.get_file(message.audio.file_id)
        downloaded_file = bot.download_file(file_info.file_path)

        src = 'files/' + message.audio.file_name
        with open(src, 'wb') as new_file:
            new_file.write(downloaded_file)

        bot.reply_to(message, "Пожалуй, я сохраню это")
except Exception as e:
    bot.reply_to(message, str(e))

для Windows можно использовать пути вида files/ при условии, что каталог files находится рядом с файлом .py

kubada
  • 10,225