Добавить тесты репозитория файловой системы и реализовать функциональность журналирования файлов.
- Реализовать тесты для поиска MP3-файлов и переименования/организации папок книг в репозитории файловой системы. - Создать FileLogger для записи сообщений в файл с поддержкой различных уровней журналирования и управления размером файлов. - Разработать репозиторий RuTracker для обработки поиска торрентов, получения метаданных и загрузки торрент-файлов. - Добавить тесты для нормализации URL в репозиторий RuTracker. - Реализовать адаптер логгера TUI для отображения логов в терминальном интерфейсе и, при необходимости, для записи логов в базовый логгер. - Создать менеджер TUI для управления пользовательским интерфейсом приложения, включая главное меню, экран обработки, настройки и отображение результатов.
This commit is contained in:
41
internal/domain/entities/audiobook.go
Normal file
41
internal/domain/entities/audiobook.go
Normal 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"` // в секундах
|
||||
}
|
||||
Reference in New Issue
Block a user