- Добавлен ConsoleLogger для подробного логирования этапов обработки аудиокниг в консоли. - Введен ConsolePresenter для форматированного вывода результатов сканирования в консоль. - Создан ProcessAudioBooksUseCase для обработки полного конвейера обработки аудиокниг, включая сканирование папок, извлечение метаданных, поиск торрентов и запись результатов. - Реализована проверка LLM для улучшения метаданных. - Добавлена обработка ошибок и логирование на всех этапах обработки.
32 lines
801 B
Go
32 lines
801 B
Go
// Package infrastructure содержит вспомогательные функции файловой системы.
|
|
package infrastructure
|
|
|
|
import (
|
|
"path/filepath"
|
|
"strings"
|
|
)
|
|
|
|
// audioExtensions — поддерживаемые расширения аудиофайлов.
|
|
var audioExtensions = map[string]bool{
|
|
".mp3": true,
|
|
".m4a": true,
|
|
".m4b": true,
|
|
".ogg": true,
|
|
".opus": true,
|
|
".flac": true,
|
|
".wma": true,
|
|
".aac": true,
|
|
".wav": true,
|
|
}
|
|
|
|
// isAudioFile проверяет, является ли файл аудиофайлом по расширению.
|
|
func isAudioFile(name string) bool {
|
|
ext := strings.ToLower(filepath.Ext(name))
|
|
return audioExtensions[ext]
|
|
}
|
|
|
|
func isMP3File(name string) bool {
|
|
ext := strings.ToLower(filepath.Ext(name))
|
|
return ext == ".mp3"
|
|
}
|