initial commit

This commit is contained in:
2025-06-06 16:19:36 +02:00
commit c98bebd8bd
13 changed files with 265 additions and 0 deletions

48
title_language.go Normal file
View File

@ -0,0 +1,48 @@
package model
import (
"errors"
"strings"
"git.tordarus.net/tordarus/anilist"
)
type AnimeTitleLang string
const (
AnimeTitleLangEnglish AnimeTitleLang = "english"
AnimeTitleLangNative AnimeTitleLang = "native"
AnimeTitleLangRomaji AnimeTitleLang = "romaji"
AnimeTitleUserPreferred AnimeTitleLang = "user-preferred"
)
func ParseAnimeTitleLang(str string) (AnimeTitleLang, error) {
lang := AnimeTitleLang(strings.TrimSpace(str))
switch lang {
case AnimeTitleLangEnglish:
return lang, nil
case AnimeTitleUserPreferred:
return lang, nil
case AnimeTitleLangNative:
return lang, nil
case AnimeTitleLangRomaji:
return lang, nil
default:
return "", errors.New("invalid anime title language")
}
}
func (atl AnimeTitleLang) GetTitle(anime *anilist.Media) string {
switch atl {
case AnimeTitleLangEnglish:
return anime.Title.English
case AnimeTitleUserPreferred:
return anime.Title.UserPreferred
case AnimeTitleLangNative:
return anime.Title.Native
case AnimeTitleLangRomaji:
return anime.Title.Romaji
default:
panic("invalid anime title language")
}
}