fix: prefer original over japanese in db displaytitle

This commit is contained in:
2026-06-12 13:17:55 +02:00
parent 164232cf0d
commit 18ed806fc0
2 changed files with 38 additions and 2 deletions

View File

@@ -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 {

View File

@@ -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)
}
}