1
1

Добавить тесты репозитория файловой системы и реализовать функциональность журналирования файлов.

- Реализовать тесты для поиска MP3-файлов и переименования/организации папок книг в репозитории файловой системы.
- Создать FileLogger для записи сообщений в файл с поддержкой различных уровней журналирования и управления размером файлов.
- Разработать репозиторий RuTracker для обработки поиска торрентов, получения метаданных и загрузки торрент-файлов.
- Добавить тесты для нормализации URL в репозиторий RuTracker.
- Реализовать адаптер логгера TUI для отображения логов в терминальном интерфейсе и, при необходимости, для записи логов в базовый логгер.
- Создать менеджер TUI для управления пользовательским интерфейсом приложения, включая главное меню, экран обработки, настройки и отображение результатов.
This commit is contained in:
Dmitriy Fofanov
2025-09-29 20:40:05 +03:00
parent 49bea780aa
commit 72a66f1664
32 changed files with 4073 additions and 22 deletions

View File

@@ -0,0 +1,41 @@
package entities
// AudioBook представляет аудиокнигу
type AudioBook struct {
Path string
Title string
MP3Files []string
CoverFile string
Description string
Metadata *AudioBookMetadata
}
// AudioBookMetadata метаданные аудиокниги
type AudioBookMetadata struct {
Tags []string `json:"tags"`
Chapters []Chapter `json:"chapters"`
Title string `json:"title"`
Subtitle string `json:"subtitle"`
Authors []string `json:"authors"`
Narrators []string `json:"narrators"`
Series []string `json:"series"`
Genres []string `json:"genres"`
PublishedYear *int `json:"publishedYear"`
PublishedDate *string `json:"publishedDate"`
Publisher *string `json:"publisher"`
Description string `json:"description"`
ISBN *string `json:"isbn"`
ASIN *string `json:"asin"`
Language string `json:"language"`
Explicit bool `json:"explicit"`
Abridged bool `json:"abridged"`
}
// Chapter представляет главу аудиокниги
type Chapter struct {
ID int `json:"id"`
Start float64 `json:"start"`
End float64 `json:"end"`
Title string `json:"title"`
Duration int `json:"duration"` // в секундах
}