fix: prefer original over japanese in jikan displaytitle
This commit is contained in:
@@ -33,12 +33,18 @@ type Aired struct {
|
|||||||
String string `json:"string"`
|
String string `json:"string"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type TitleEntry struct {
|
||||||
|
Type string `json:"type"`
|
||||||
|
Title string `json:"title"`
|
||||||
|
}
|
||||||
|
|
||||||
type Anime struct {
|
type Anime struct {
|
||||||
MalID int `json:"mal_id"`
|
MalID int `json:"mal_id"`
|
||||||
Title string `json:"title"`
|
Title string `json:"title"`
|
||||||
TitleEnglish string `json:"title_english"`
|
TitleEnglish string `json:"title_english"`
|
||||||
TitleJapanese string `json:"title_japanese"`
|
TitleJapanese string `json:"title_japanese"`
|
||||||
TitleSynonyms []string `json:"title_synonyms"`
|
TitleSynonyms []string `json:"title_synonyms"`
|
||||||
|
Titles []TitleEntry `json:"titles"`
|
||||||
Images struct {
|
Images struct {
|
||||||
Jpg struct {
|
Jpg struct {
|
||||||
LargeImageURL string `json:"large_image_url"`
|
LargeImageURL string `json:"large_image_url"`
|
||||||
@@ -454,13 +460,16 @@ type ReviewsResponse struct {
|
|||||||
Pagination Pagination `json:"pagination"`
|
Pagination Pagination `json:"pagination"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// DisplayTitle returns English title if available, otherwise Japanese, then default.
|
// DisplayTitle returns English title if available, otherwise default title, titles[0], then Japanese.
|
||||||
func (a Anime) DisplayTitle() string {
|
func (a Anime) DisplayTitle() string {
|
||||||
if a.TitleEnglish != "" {
|
if a.TitleEnglish != "" {
|
||||||
return a.TitleEnglish
|
return a.TitleEnglish
|
||||||
}
|
}
|
||||||
if a.TitleJapanese != "" {
|
if a.Title != "" {
|
||||||
return a.TitleJapanese
|
return a.Title
|
||||||
}
|
}
|
||||||
return a.Title
|
if len(a.Titles) > 0 && a.Titles[0].Title != "" {
|
||||||
|
return a.Titles[0].Title
|
||||||
|
}
|
||||||
|
return a.TitleJapanese
|
||||||
}
|
}
|
||||||
|
|||||||
27
integrations/jikan/types_test.go
Normal file
27
integrations/jikan/types_test.go
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
package jikan
|
||||||
|
|
||||||
|
import "testing"
|
||||||
|
|
||||||
|
func TestAnimeDisplayTitlePrefersTitleBeforeJapanese(t *testing.T) {
|
||||||
|
anime := Anime{
|
||||||
|
Title: "Cyberpunk: Edgerunners",
|
||||||
|
TitleJapanese: "サイバーパンク エッジランナーズ",
|
||||||
|
}
|
||||||
|
|
||||||
|
if got := anime.DisplayTitle(); got != "Cyberpunk: Edgerunners" {
|
||||||
|
t.Fatalf("DisplayTitle() = %q, want default title", got)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestAnimeDisplayTitleFallsBackToFirstTitleEntryBeforeJapanese(t *testing.T) {
|
||||||
|
anime := Anime{
|
||||||
|
TitleJapanese: "サイバーパンク エッジランナーズ",
|
||||||
|
Titles: []TitleEntry{
|
||||||
|
{Type: "Default", Title: "Cyberpunk: Edgerunners"},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
if got := anime.DisplayTitle(); got != "Cyberpunk: Edgerunners" {
|
||||||
|
t.Fatalf("DisplayTitle() = %q, want first title entry", got)
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user