Sync from /srv/compose/unified-media-manager
This commit is contained in:
119
internal/config/config.go
Normal file
119
internal/config/config.go
Normal file
@@ -0,0 +1,119 @@
|
||||
package config
|
||||
|
||||
import "os"
|
||||
|
||||
type Config struct {
|
||||
DatabaseURL string
|
||||
QdrantURL string
|
||||
OllamaURL string
|
||||
Port string
|
||||
FrontendURL string
|
||||
DownloadDir string
|
||||
TMDBAPIKey string
|
||||
TVDBAPIKey string
|
||||
OpenSubtitlesAPIKey string
|
||||
ImageDir string
|
||||
WorkerQueueInterval string
|
||||
WorkerRSSSyncInterval string
|
||||
WorkerMetadataInterval string
|
||||
WorkerSubtitleInterval string
|
||||
WorkerCleanupInterval string
|
||||
WorkerHealthCheckInterval string
|
||||
WorkerDiskUsageInterval string
|
||||
WorkerLibraryScanInterval string
|
||||
}
|
||||
|
||||
func Load() *Config {
|
||||
databaseURL := os.Getenv("DATABASE_URL")
|
||||
if databaseURL == "" {
|
||||
databaseURL = "postgres://localhost:5432/unified_media_manager?sslmode=disable"
|
||||
}
|
||||
|
||||
qdrantURL := os.Getenv("QDRANT_URL")
|
||||
if qdrantURL == "" {
|
||||
qdrantURL = "http://localhost:6333"
|
||||
}
|
||||
|
||||
ollamaURL := os.Getenv("OLLAMA_URL")
|
||||
if ollamaURL == "" {
|
||||
ollamaURL = "http://localhost:11434"
|
||||
}
|
||||
|
||||
frontendURL := os.Getenv("FRONTEND_URL")
|
||||
if frontendURL == "" {
|
||||
frontendURL = "http://umm.local.tophermayor.com"
|
||||
}
|
||||
|
||||
port := os.Getenv("PORT")
|
||||
if port == "" {
|
||||
port = "8084"
|
||||
}
|
||||
|
||||
downloadDir := os.Getenv("DOWNLOAD_DIR")
|
||||
if downloadDir == "" {
|
||||
downloadDir = "/data/downloads"
|
||||
}
|
||||
|
||||
tmdbAPIKey := os.Getenv("TMDB_API_KEY")
|
||||
tvdbAPIKey := os.Getenv("TVDB_API_KEY")
|
||||
openSubtitlesAPIKey := os.Getenv("OPENSUBTITLES_API_KEY")
|
||||
|
||||
imageDir := os.Getenv("IMAGE_DIR")
|
||||
if imageDir == "" {
|
||||
imageDir = "/data/images"
|
||||
}
|
||||
|
||||
workerQueueInterval := os.Getenv("WORKER_QUEUE_INTERVAL")
|
||||
if workerQueueInterval == "" {
|
||||
workerQueueInterval = "*/30 * * * * *"
|
||||
}
|
||||
workerRSSSyncInterval := os.Getenv("WORKER_RSS_SYNC_INTERVAL")
|
||||
if workerRSSSyncInterval == "" {
|
||||
workerRSSSyncInterval = "0 */15 * * * *"
|
||||
}
|
||||
workerMetadataInterval := os.Getenv("WORKER_METADATA_INTERVAL")
|
||||
if workerMetadataInterval == "" {
|
||||
workerMetadataInterval = "0 0 3 * * *"
|
||||
}
|
||||
workerSubtitleInterval := os.Getenv("WORKER_SUBTITLE_INTERVAL")
|
||||
if workerSubtitleInterval == "" {
|
||||
workerSubtitleInterval = "0 0 */2 * * *"
|
||||
}
|
||||
workerCleanupInterval := os.Getenv("WORKER_CLEANUP_INTERVAL")
|
||||
if workerCleanupInterval == "" {
|
||||
workerCleanupInterval = "0 0 4 * * *"
|
||||
}
|
||||
workerHealthCheckInterval := os.Getenv("WORKER_HEALTH_CHECK_INTERVAL")
|
||||
if workerHealthCheckInterval == "" {
|
||||
workerHealthCheckInterval = "0 */5 * * * *"
|
||||
}
|
||||
workerDiskUsageInterval := os.Getenv("WORKER_DISK_USAGE_INTERVAL")
|
||||
if workerDiskUsageInterval == "" {
|
||||
workerDiskUsageInterval = "0 0 * * * *"
|
||||
}
|
||||
workerLibraryScanInterval := os.Getenv("WORKER_LIBRARY_SCAN_INTERVAL")
|
||||
if workerLibraryScanInterval == "" {
|
||||
workerLibraryScanInterval = "0 0 5 * * *"
|
||||
}
|
||||
|
||||
return &Config{
|
||||
DatabaseURL: databaseURL,
|
||||
QdrantURL: qdrantURL,
|
||||
OllamaURL: ollamaURL,
|
||||
Port: port,
|
||||
FrontendURL: frontendURL,
|
||||
DownloadDir: downloadDir,
|
||||
TMDBAPIKey: tmdbAPIKey,
|
||||
TVDBAPIKey: tvdbAPIKey,
|
||||
OpenSubtitlesAPIKey: openSubtitlesAPIKey,
|
||||
ImageDir: imageDir,
|
||||
WorkerQueueInterval: workerQueueInterval,
|
||||
WorkerRSSSyncInterval: workerRSSSyncInterval,
|
||||
WorkerMetadataInterval: workerMetadataInterval,
|
||||
WorkerSubtitleInterval: workerSubtitleInterval,
|
||||
WorkerCleanupInterval: workerCleanupInterval,
|
||||
WorkerHealthCheckInterval: workerHealthCheckInterval,
|
||||
WorkerDiskUsageInterval: workerDiskUsageInterval,
|
||||
WorkerLibraryScanInterval: workerLibraryScanInterval,
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user