Files
audio_resive/functions/get_audio_messages_func.py
T

35 lines
1.9 KiB
Python

import os
from functions.convert import Converter
from aiogram import types
async def get_audio_messages_func(message: types.Message, logger, bot) -> None:
"""
Функция выкачивает файл, потом конвертирует его в текст, потом логирует
:param message: types.Message - объект сообщения
:param logger: - объект логера
:param bot: - объект бота
:return: None
"""
# достаю file_id из разнообразных полей
if message.content_type in ['voice']:
file_id = message.voice.file_id
elif message.content_type in ['video']:
file_id = message.video.file_id
else:
file_id = message.video_note.file_id
file_name = "config/" + str(message.message_id) + '.ogg' # создаю file_name
name = message.chat.first_name if message.chat.first_name else 'No_name' # достаю имя человека
with open(file_name, 'wb') as new_file: # открываю файл для записи
file = await bot.get_file(file_id) # ссылка для скачивая файла
file_dow = await bot.download_file(file.file_path) # скачанный файл
new_file.write(file_dow.getvalue()) # записываю
converter = Converter(file_name, message) # запуск конвертора
message_text = converter.audio_to_text() # получаю текст из конвертора
logger.info(f"Чат {name} (ID: {message.chat.id}) обработал файл {file_name}, "
f"сервисом {converter.service}") # записываю всё в logger
await bot.send_message(message.chat.id, message_text, reply_to_message_id=message.message_id) # отправляю сообщение
os.removedirs("config") # удаляю папку с файлами
os.mkdir("config") # создаю папку обратно