- Реализовать тесты для поиска MP3-файлов и переименования/организации папок книг в репозитории файловой системы. - Создать FileLogger для записи сообщений в файл с поддержкой различных уровней журналирования и управления размером файлов. - Разработать репозиторий RuTracker для обработки поиска торрентов, получения метаданных и загрузки торрент-файлов. - Добавить тесты для нормализации URL в репозиторий RuTracker. - Реализовать адаптер логгера TUI для отображения логов в терминальном интерфейсе и, при необходимости, для записи логов в базовый логгер. - Создать менеджер TUI для управления пользовательским интерфейсом приложения, включая главное меню, экран обработки, настройки и отображение результатов.
43 lines
1.4 KiB
Go
43 lines
1.4 KiB
Go
package services
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"audio-catalyst/internal/domain/entities"
|
|
)
|
|
|
|
func TestExtractHTMLTitleAndSubtitle(t *testing.T) {
|
|
s := NewMetadataService()
|
|
html := `<html><head><title>Автор - Полный тайтл :: RuTracker.org</title></head>
|
|
<div class="post_body"><span style="font-size: 24px; line-height: normal;">Наследник. Книга 03</span></div></html>`
|
|
m, err := s.ParseTopicMetadata(html, entities.Torrent{Title: "Папка"})
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if m.Title != "Наследник. Книга 03" {
|
|
t.Errorf("title=%q", m.Title)
|
|
}
|
|
if m.Subtitle != "Автор - Полный тайтл" {
|
|
t.Errorf("subtitle=%q", m.Subtitle)
|
|
}
|
|
}
|
|
|
|
func TestExtractSeriesAndTags(t *testing.T) {
|
|
s := NewMetadataService()
|
|
h := `<div class="post_body">
|
|
<a href="viewforum.php?f=2387">[Аудио] Российская фантастика, фэнтези, мистика, ужасы, фанфики</a>
|
|
<a href="tracker.php?f=2387" class="postLink">Цикл «Наследник»</a>
|
|
<span class="post-b">Описание</span>: Текст
|
|
</div>`
|
|
m, err := s.ParseTopicMetadata(h, entities.Torrent{Title: "X"})
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if len(m.Series) == 0 || m.Series[0] != "Наследник" {
|
|
t.Errorf("series=%v", m.Series)
|
|
}
|
|
if len(m.Tags) == 0 || m.Tags[0] != "Российская фантастика, фэнтези, мистика, ужасы, фанфики" {
|
|
t.Errorf("tags=%v", m.Tags)
|
|
}
|
|
}
|