- Реализовать тесты для поиска MP3-файлов и переименования/организации папок книг в репозитории файловой системы. - Создать FileLogger для записи сообщений в файл с поддержкой различных уровней журналирования и управления размером файлов. - Разработать репозиторий RuTracker для обработки поиска торрентов, получения метаданных и загрузки торрент-файлов. - Добавить тесты для нормализации URL в репозиторий RuTracker. - Реализовать адаптер логгера TUI для отображения логов в терминальном интерфейсе и, при необходимости, для записи логов в базовый логгер. - Создать менеджер TUI для управления пользовательским интерфейсом приложения, включая главное меню, экран обработки, настройки и отображение результатов.
22 lines
986 B
Go
22 lines
986 B
Go
package repositories
|
||
|
||
import "audio-catalyst/internal/domain/entities"
|
||
|
||
// AudioBookRepository интерфейс для работы с аудиокнигами
|
||
type AudioBookRepository interface {
|
||
// ScanDirectory сканирует директорию на наличие аудиокниг
|
||
ScanDirectory(rootDir string) ([]entities.AudioBook, error)
|
||
|
||
// SaveMetadata сохраняет метаданные аудиокниги
|
||
SaveMetadata(bookPath string, metadata *entities.AudioBookMetadata) error
|
||
|
||
// DownloadCover загружает обложку по URL
|
||
DownloadCover(coverURL, bookPath string) error
|
||
|
||
// RenameBookFolder переименовывает папку аудиокниги
|
||
RenameBookFolder(oldPath, newBaseName string) (string, error)
|
||
|
||
// OrganizeBookFolder перемещает папку книги в библиотеку organized: <root>/<Letter>/<Author>/<Book>
|
||
OrganizeBookFolder(bookPath, authorFullName, targetRoot string) (string, error)
|
||
}
|