notify.moe/arn/SoundTrackTitle.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)
}
}