Функция: реализованы консольный логгер и презентер для обработки аудиокниг

- Добавлен ConsoleLogger для подробного логирования этапов обработки аудиокниг в консоли.

- Введен ConsolePresenter для форматированного вывода результатов сканирования в консоль.

- Создан ProcessAudioBooksUseCase для обработки полного конвейера обработки аудиокниг, включая сканирование папок, извлечение метаданных, поиск торрентов и запись результатов.

- Реализована проверка LLM для улучшения метаданных.

- Добавлена ​​обработка ошибок и логирование на всех этапах обработки.
This commit is contained in:
Dmitriy Fofanov
2026-02-20 00:35:43 +03:00
parent 7d119927a1
commit 402ce7f4f1
26 changed files with 4323 additions and 0 deletions
+27
View File
@@ -0,0 +1,27 @@
// Package domain содержит бизнес-сущности и интерфейсы (порты) приложения.
// Этот слой не зависит ни от чего внешнего — только чистые структуры и контракты.
package domain
import "time"
// AudioBookInfo — агрегат, содержащий метаданные аудиокниги.
type AudioBookInfo struct {
FolderPath string // путь к папке с аудиокнигой
Title string // название книги
Author string // автор
Album string // альбом (часто совпадает с названием)
Genre string // жанр
Year int // год издания
Comment string // описание / комментарий
Duration time.Duration // длительность первого трека
Format string // формат файла (mp3, m4b, ogg …)
SourceFile string // файл, из которого извлечены метаданные
CoverFound bool // обложка найдена
FilesCount int // количество аудиофайлов в папке
}
// ScanResult оборачивает результат сканирования одной папки.
type ScanResult struct {
Info *AudioBookInfo
Err error
}