36 lines
724 B
Go
36 lines
724 B
Go
package arn
|
|
|
|
// SoundTrackTitle represents a song title.
|
|
type SoundTrackTitle struct {
|
|
Canonical string `json:"canonical" editable:"true"`
|
|
Native string `json:"native" editable:"true"`
|
|
}
|
|
|
|
// String is the default representation of the title.
|
|
func (title *SoundTrackTitle) String() string {
|
|
return title.ByUser(nil)
|
|
}
|
|
|
|
// ByUser returns the preferred title for the given user.
|
|
func (title *SoundTrackTitle) ByUser(user *User) string {
|
|
if user == nil {
|
|
if title.Canonical != "" {
|
|
return title.Canonical
|
|
}
|
|
|
|
return title.Native
|
|
}
|
|
|
|
switch user.Settings().TitleLanguage {
|
|
case "japanese":
|
|
if title.Native == "" {
|
|
return title.Canonical
|
|
}
|
|
|
|
return title.Native
|
|
|
|
default:
|
|
return title.ByUser(nil)
|
|
}
|
|
}
|