mirror of
https://github.com/truewhile/MeBox.git
synced 2026-09-28 11:16:37 +08:00
125 lines
5.1 KiB
Go
125 lines
5.1 KiB
Go
package config
|
|
|
|
import "github.com/spf13/viper"
|
|
|
|
const (
|
|
defaultDatabaseMaxOpenConns = 16
|
|
defaultDatabaseMaxIdleConns = 4
|
|
defaultLicenseServerURL = "https://mgosever.3jzs.com"
|
|
defaultLicensePublicKey = "MCowBQYDK2VwAyEABRXnXy+urjrbKit6Yu/HiezWgP0NdsZW3tsegJWRrtI="
|
|
)
|
|
|
|
func setDefaults(v *viper.Viper) {
|
|
v.SetDefault("app.port", 8080)
|
|
v.SetDefault("app.debug", false)
|
|
v.SetDefault("app.env", "production")
|
|
v.SetDefault("app.data_dir", "./data")
|
|
v.SetDefault("app.web_dir", "./web/dist")
|
|
v.SetDefault("app.ffmpeg_path", "ffmpeg")
|
|
v.SetDefault("app.ffprobe_path", "ffprobe")
|
|
v.SetDefault("app.ffprobe_max_concurrent", 2)
|
|
v.SetDefault("app.cloud_scan_max_concurrent", 8)
|
|
v.SetDefault("app.max_cpu_threads", 2)
|
|
v.SetDefault("app.vaapi_device", "/dev/dri/renderD128")
|
|
v.SetDefault("app.cors_origins", []string{})
|
|
v.SetDefault("app.server_url", "")
|
|
|
|
v.SetDefault("database.type", "auto")
|
|
v.SetDefault("database.db_path", "./data/mebox.db")
|
|
v.SetDefault("database.dsn", "")
|
|
v.SetDefault("database.wal_mode", true)
|
|
v.SetDefault("database.busy_timeout", 5000)
|
|
v.SetDefault("database.cache_size", -40000)
|
|
v.SetDefault("database.max_open_conns", defaultDatabaseMaxOpenConns)
|
|
v.SetDefault("database.max_idle_conns", defaultDatabaseMaxIdleConns)
|
|
|
|
v.SetDefault("secrets.jwt_secret", "")
|
|
|
|
v.SetDefault("logging.level", "warn")
|
|
v.SetDefault("logging.format", "console")
|
|
v.SetDefault("logging.enable_rotation", true)
|
|
v.SetDefault("logging.max_size_mb", 20)
|
|
v.SetDefault("logging.max_age_days", 30)
|
|
v.SetDefault("logging.max_backups", 10)
|
|
|
|
v.SetDefault("cache.cache_dir", "./cache")
|
|
v.SetDefault("cache.images_max_size_mb", 500)
|
|
v.SetDefault("cache.cleanup_interval_min", 60)
|
|
v.SetDefault("cache.redis_url", "")
|
|
v.SetDefault("cache.redis_prefix", "mebox")
|
|
v.SetDefault("cache.media_ttl_seconds", 90)
|
|
v.SetDefault("cache.emby_latest_ttl_seconds", 300)
|
|
|
|
v.SetDefault("search.backend", "")
|
|
v.SetDefault("search.opensearch_url", "")
|
|
v.SetDefault("search.index", "mebox_media")
|
|
v.SetDefault("search.username", "")
|
|
v.SetDefault("search.password", "")
|
|
|
|
v.SetDefault("ai.enabled", false)
|
|
v.SetDefault("ai.provider", "openai")
|
|
v.SetDefault("ai.api_base", "https://api.openai.com/v1")
|
|
v.SetDefault("ai.model", "gpt-4o-mini")
|
|
v.SetDefault("ai.timeout", 30)
|
|
v.SetDefault("ai.max_concurrent", 3)
|
|
|
|
v.SetDefault("flaresolverr.enabled", false)
|
|
v.SetDefault("flaresolverr.url", "http://localhost:8191")
|
|
v.SetDefault("flaresolverr.session", "mebox")
|
|
v.SetDefault("flaresolverr.timeout", 60)
|
|
|
|
v.SetDefault("downloads.smart_classify", true)
|
|
v.SetDefault("organizer.smart_classify", true)
|
|
v.SetDefault("organizer.auto_after_download", false)
|
|
v.SetDefault("organize.scrape_after", true)
|
|
v.SetDefault("scrape.delay_min_ms", 250)
|
|
v.SetDefault("scrape.delay_max_ms", 500)
|
|
v.SetDefault("organizer.categories.concert_movie", "演唱会")
|
|
v.SetDefault("organizer.categories.documentary_movie", "纪录片")
|
|
v.SetDefault("organizer.categories.chinese_movie", "华语电影")
|
|
v.SetDefault("organizer.categories.animation_movie", "动画电影")
|
|
v.SetDefault("organizer.categories.euus_movie", "欧美电影")
|
|
v.SetDefault("organizer.categories.jk_movie", "日韩电影")
|
|
v.SetDefault("organizer.categories.domestic_tv", "国产剧")
|
|
v.SetDefault("organizer.categories.euus_tv", "欧美剧")
|
|
v.SetDefault("organizer.categories.jk_tv", "日韩剧")
|
|
v.SetDefault("organizer.categories.unclassified_tv", "未分类")
|
|
v.SetDefault("organizer.categories.jp_anime", "日番")
|
|
v.SetDefault("organizer.categories.cn_anime", "国漫")
|
|
v.SetDefault("organizer.categories.kr_anime", "韩漫")
|
|
v.SetDefault("organizer.categories.us_anime", "美漫")
|
|
v.SetDefault("organizer.categories.other_anime", "其他")
|
|
v.SetDefault("organizer.categories.variety", "综艺")
|
|
v.SetDefault("organizer.categories.documentary", "纪录片")
|
|
v.SetDefault("organizer.categories.children", "儿童")
|
|
v.SetDefault("organizer.categories.adult", "成人")
|
|
v.SetDefault("recognition_words.enabled", true)
|
|
v.SetDefault("recognition_words.shared_urls", []string{
|
|
"https://raw.githubusercontent.com/Putarku/MoviePilot-Help/main/Words/general.txt",
|
|
"https://raw.githubusercontent.com/Putarku/MoviePilot-Help/main/Words/TV.txt",
|
|
"https://raw.githubusercontent.com/Putarku/MoviePilot-Help/main/Words/anime.txt",
|
|
})
|
|
|
|
v.SetDefault("transcoder.encoder", "")
|
|
v.SetDefault("transcoder.enabled", true)
|
|
v.SetDefault("transcoder.hardware_accel", false)
|
|
v.SetDefault("transcoder.preset", "veryfast")
|
|
v.SetDefault("transcoder.video_bitrate", "1500k")
|
|
v.SetDefault("transcoder.max_rate", "1800k")
|
|
v.SetDefault("transcoder.buf_size", "3000k")
|
|
v.SetDefault("transcoder.max_height", 720)
|
|
v.SetDefault("transcoder.segment_seconds", 4)
|
|
v.SetDefault("transcoder.realtime", true)
|
|
v.SetDefault("transcoder.threads", 2)
|
|
v.SetDefault("transcoder.max_concurrent", 1)
|
|
v.SetDefault("transcoder.idle_timeout_seconds", 120)
|
|
|
|
// API Config 默认设置
|
|
v.SetDefault("api_config.auto_encrypt", true)
|
|
v.SetDefault("api_config.default_timeout", 30)
|
|
|
|
v.SetDefault("license.server_url", defaultLicenseServerURL)
|
|
v.SetDefault("license.hmac_secret", "")
|
|
v.SetDefault("license.public_key", defaultLicensePublicKey)
|
|
}
|