From 18ed806fc0120ebf23d1be63e74808cba6d38a57 Mon Sep 17 00:00:00 2001 From: mkelvers Date: Fri, 12 Jun 2026 13:17:55 +0200 Subject: [PATCH] fix: prefer original over japanese in db displaytitle --- internal/db/helpers.go | 10 ++++++++-- internal/db/helpers_test.go | 30 ++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+), 2 deletions(-) create mode 100644 internal/db/helpers_test.go diff --git a/internal/db/helpers.go b/internal/db/helpers.go index 4086b25..9227454 100644 --- a/internal/db/helpers.go +++ b/internal/db/helpers.go @@ -11,9 +11,15 @@ func NullStringOr(n sql.NullString, fallback string) string { return fallback } -// DisplayTitle returns the English title, falling back to Japanese then original +// DisplayTitle returns the English title, falling back to original then Japanese. func DisplayTitle(titleEnglish, titleJapanese sql.NullString, titleOriginal string) string { - return NullStringOr(titleEnglish, NullStringOr(titleJapanese, titleOriginal)) + if titleEnglish.Valid && titleEnglish.String != "" { + return titleEnglish.String + } + if titleOriginal != "" { + return titleOriginal + } + return NullStringOr(titleJapanese, titleOriginal) } func (r GetUserWatchListRow) DisplayTitle() string { diff --git a/internal/db/helpers_test.go b/internal/db/helpers_test.go new file mode 100644 index 0000000..285b8b2 --- /dev/null +++ b/internal/db/helpers_test.go @@ -0,0 +1,30 @@ +package db + +import ( + "database/sql" + "testing" +) + +func TestDisplayTitlePrefersOriginalBeforeJapanese(t *testing.T) { + got := DisplayTitle( + sql.NullString{}, + sql.NullString{String: "サイバーパンク エッジランナーズ", Valid: true}, + "Cyberpunk: Edgerunners", + ) + + if got != "Cyberpunk: Edgerunners" { + t.Fatalf("DisplayTitle() = %q, want original title", got) + } +} + +func TestDisplayTitlePrefersEnglish(t *testing.T) { + got := DisplayTitle( + sql.NullString{String: "Frieren: Beyond Journey's End", Valid: true}, + sql.NullString{String: "葬送のフリーレン", Valid: true}, + "Sousou no Frieren", + ) + + if got != "Frieren: Beyond Journey's End" { + t.Fatalf("DisplayTitle() = %q, want English title", got) + } +}