83 lines
2.9 KiB
Go
83 lines
2.9 KiB
Go
package main
|
|
|
|
import (
|
|
"html/template"
|
|
"math"
|
|
"time"
|
|
|
|
"git.milar.in/milarin/anilist"
|
|
"git.milar.in/milarin/envvars/v2"
|
|
"git.milar.in/nyaanime/model"
|
|
)
|
|
|
|
var (
|
|
PollRate = envvars.Duration("POLL_RATE", 30*time.Minute)
|
|
|
|
AnilistUsername = envvars.String("ANILIST_USERNAME", "username")
|
|
AnilistAccessToken = envvars.String("ANILIST_TOKEN", "")
|
|
|
|
StoragePath = envvars.String("STORAGE_PATH", "")
|
|
StorageUser = envvars.String("STORAGE_USER", "")
|
|
StoragePass = envvars.String("STORAGE_PASS", "")
|
|
|
|
TorrentPath = envvars.String("TORRENT_PATH", "")
|
|
AnimePath = envvars.String("ANIME_PATH", "")
|
|
|
|
AnimeEpFilepathPattern = envvars.Object(
|
|
"EPISODE_FILEPATH_PATTERN",
|
|
template.Must(template.New("anime-episode-filepath-pattern").Parse(`{{.Title.UserPreferred}}/{{.Title.UserPreferred}} Episode {{.Episode}}.{{.Ext}}`)),
|
|
template.New("anime-episode-filepath-pattern").Parse,
|
|
)
|
|
|
|
DebugAnimeEpisodePattern = envvars.Object(
|
|
"DEBUG_ANIME_LANGUAGE_PATTERN",
|
|
template.Must(template.New("anime-episode-filepath-pattern").Parse(`{{.Title.UserPreferred}} episode {{.Episode}}`)),
|
|
template.New("anime-episode-pattern").Parse,
|
|
)
|
|
|
|
AnimeStatus = envvars.ObjectSlice("ANIME_STATUS", ",", []anilist.MediaListStatus{
|
|
anilist.MediaListStatusCurrent,
|
|
anilist.MediaListStatusPlanning,
|
|
}, ParseMediaListStatus)
|
|
|
|
DownloadAll = envvars.Bool("DOWNLOAD_ALL_ANIMES", false)
|
|
|
|
// essential torrent properties
|
|
|
|
MaxResolution = envvars.Object("MAX_RESOLUTION", model.Resolution4K, model.ParseResolution)
|
|
MinResolution = envvars.Object("MIN_RESOLUTION", model.ResolutionHD, model.ParseResolution)
|
|
|
|
EssentialLanguages = envvars.StringSlice("ESSENTIAL_LANGUAGES", "|", []string{})
|
|
EssentialSubtitles = envvars.StringSlice("ESSENTIAL_SUBTITLES", "|", []string{})
|
|
|
|
MaxSeeders = envvars.Int("MAX_SEEDERS", math.MaxInt)
|
|
MinSeeders = envvars.Int("MIN_SEEDERS", 0)
|
|
|
|
MaxLeechers = envvars.Int("MAX_LEECHERS", math.MaxInt)
|
|
MinLeechers = envvars.Int("MIN_LEECHERS", 0)
|
|
|
|
MaxDownloads = envvars.Int("MAX_DOWNLOADS", math.MaxInt)
|
|
MinDownloads = envvars.Int("MIN_DOWNLOADS", 0)
|
|
|
|
TrustedOnly = envvars.Bool("TRUSTED_ONLY", false)
|
|
|
|
// preferred torrent properties
|
|
|
|
PreferredLanguages = ParsePreferredStringProps(envvars.StringSlice("PREFERRED_LANGUAGES", "|", []string{}))
|
|
PreferredSubtitles = ParsePreferredStringProps(envvars.StringSlice("PREFERRED_SUBTITLES", "|", []string{}))
|
|
PreferredResolutions = ParsePreferredProps(envvars.StringSlice("PREFERRED_RESOLUTIONS", "|", []string{}), model.ParseResolution)
|
|
|
|
/*
|
|
TODO
|
|
|
|
better idea? implementation in torrent_sort.go (sort.Slice)
|
|
PreferredTorrents = envvars.StringSlice("PREFERRED_TORRENTS", []string{"seeders", "subtitles", "languages", "downloads"})
|
|
|
|
old idea?
|
|
PreferMoreLanguages = envvars.Bool("PREFERER_MORE_LANGUAGES", false)
|
|
PreferMoreSubtitles = envvars.Bool("PREFERER_MORE_SUBTITLES", false)
|
|
PreferMoreSeeders = envvars.Bool("PREFERER_MORE_SEEDERS", false)
|
|
PreferMoreDownloads = envvars.Bool("PREFERER_MORE_DOWNLOADS", false)
|
|
*/
|
|
)
|