mirror of
https://github.com/FJurmanovic/sugarr.git
synced 2026-11-11 07:41:08 +00:00
44 lines
1.6 KiB
Go
44 lines
1.6 KiB
Go
package configs
|
|
|
|
import (
|
|
"github.com/joho/godotenv"
|
|
"github.com/kelseyhightower/envconfig"
|
|
)
|
|
|
|
type Config struct {
|
|
JellyfinURL string `envconfig:"JELLYFIN_URL" required:"true"`
|
|
JellyfinAPIKey string `envconfig:"JELLYFIN_API_KEY" required:"true"`
|
|
JellyfinUserID string `envconfig:"JELLYFIN_USER_ID" required:"true"`
|
|
TMDbAPIKey string `envconfig:"TMDB_API_KEY" required:"true"`
|
|
|
|
LLMEnabled bool `envconfig:"LLM_ENABLED" default:"false"`
|
|
LLMBaseURL string `envconfig:"LLM_BASE_URL" default:"http://localhost:11434/v1"`
|
|
LLMAPIKey string `envconfig:"LLM_API_KEY" default:""`
|
|
LLMModel string `envconfig:"LLM_MODEL" default:"llama3"`
|
|
|
|
RadarrEnabled bool `envconfig:"RADARR_ENABLED" default:"false"`
|
|
RadarrURL string `envconfig:"RADARR_URL"`
|
|
RadarrAPIKey string `envconfig:"RADARR_API_KEY"`
|
|
RadarrQualityProfile int `envconfig:"RADARR_QUALITY_PROFILE_ID" default:"1"`
|
|
RadarrRootFolder string `envconfig:"RADARR_ROOT_FOLDER" default:"/movies"`
|
|
|
|
CronEnabled bool `envconfig:"CRON_ENABLED" default:"false"`
|
|
CronSchedule string `envconfig:"CRON_SCHEDULE" default:"0 3 * * *"`
|
|
|
|
APIEnabled bool `envconfig:"API_ENABLED" default:"true"`
|
|
APIPort int `envconfig:"API_PORT" default:"8080"`
|
|
|
|
RecommendCount int `envconfig:"RECOMMEND_COUNT" default:"10"`
|
|
MinRatedMovies int `envconfig:"MIN_RATED_MOVIES" default:"5"`
|
|
}
|
|
|
|
// Load reads .env (best-effort) then processes environment variables into a Config.
|
|
func Load() (*Config, error) {
|
|
_ = godotenv.Load()
|
|
var cfg Config
|
|
if err := envconfig.Process("", &cfg); err != nil {
|
|
return nil, err
|
|
}
|
|
return &cfg, nil
|
|
}
|