Files
MeBox/internal/service/scraper_lookup_test.go
T
truewhile 44ca451cd4 优化
优化
2026-08-24 17:40:43 +08:00

55 lines
1.7 KiB
Go

package service
import (
"testing"
"go.uber.org/zap"
"github.com/ShukeBta/MMTL/internal/model"
)
func TestMediaExternalIDMatchTrustsExactEpisodeID(t *testing.T) {
scraper := &ScraperService{log: zap.NewNop()}
media := &model.Media{
Title: "电锯人",
Path: "/media/anime/电锯人/Season 01/电锯人 - S01E01.mkv",
TMDbID: 114410,
SeasonNum: 1,
EpisodeNum: 1,
}
lib := &model.Library{Type: "anime", Path: "/media/anime"}
match := &Match{
Title: "チェンソーマン",
OriginalName: "チェンソーマン",
TMDbID: 114410,
}
if !scraper.mediaExternalIDMatchTrusted(media, lib, match, "tmdb") {
t.Fatal("exact external id match should be trusted for episodic media")
}
}
func TestPreferExistingLocalizedMediaTitleKeepsCleanChineseTitle(t *testing.T) {
media := &model.Media{Title: "电锯人", SeasonNum: 1, EpisodeNum: 1}
lib := &model.Library{Type: "anime"}
match := &Match{Title: "チェンソーマン"}
preferExistingLocalizedEpisodeTitle(media, lib, match)
if match.Title != "电锯人" || match.OriginalName != "チェンソーマン" {
t.Fatalf("match title=%q original=%q, want localized title with original preserved", match.Title, match.OriginalName)
}
}
func TestPreferExistingLocalizedMediaTitleIgnoresReleaseTitle(t *testing.T) {
media := &model.Media{Title: "电锯人.S01E01.1080p.WEB-DL", SeasonNum: 1, EpisodeNum: 1}
lib := &model.Library{Type: "anime"}
match := &Match{Title: "チェンソーマン"}
preferExistingLocalizedEpisodeTitle(media, lib, match)
if match.Title != "チェンソーマン" {
t.Fatalf("release-like media title should not replace provider title, got %q", match.Title)
}
}