package config import ( "os" "path/filepath" ) // Config 应用配置 type Config struct { Server ServerConfig `mapstructure:"server"` DB DB `mapstructure:"db"` Sys Sys `mapstructure:"sys"` Hsyq Hsyq `mapstructure:"hsyq"` Oss Oss `mapstructure:"oss"` AiBot AiBot `mapstructure:"ai_bot"` Collect Collect `mapstructure:"collect"` } type Collect struct { ApiKey string `mapstructure:"api_key"` } type AiBot struct { Article string `mapstructure:"article"` ProductInfo string `mapstructure:"product_info"` CollectInfo string `mapstructure:"collectInfo"` } type Oss struct { AccessKey string `mapstructure:"access_key"` SecretKey string `mapstructure:"secret_key"` Bucket string `mapstructure:"bucket"` Domain string `mapstructure:"domain"` Endpoint string `mapstructure:"endpoint"` FilePath string `mapstructure:"filepath"` } // ServerConfig 服务器配置 type ServerConfig struct { Port int `mapstructure:"port"` Host string `mapstructure:"host"` } type Hsyq struct { ApiKey string `mapstructure:"api_key"` } type DB struct { Driver string `mapstructure:"driver"` Source string `mapstructure:"source"` MaxIdle int32 `mapstructure:"maxIdle"` MaxOpen int32 `mapstructure:"maxOpen"` MaxLifetime int32 `mapstructure:"maxLifetime"` IsDebug bool `mapstructure:"isDebug"` } type Sys struct { AutoPublishWorkers int `yaml:"auto_publish_workers"` MaxConcurrent int `mapstructure:"maxConcurrent"` TaskTimeout int `mapstructure:"taskTimeout"` SessionTimeout int `mapstructure:"sessionTimeout "` MaxImageSize int `mapstructure:"maxImageSize"` LogsDir string `mapstructure:"logsDir"` UploadDir string `mapstructure:"uploadDir"` VideosDir string `mapstructure:"videosDir"` DocsDir string `mapstructure:"docsDir"` CookiesDir string `mapstructure:"cookiesDir"` PlatformCookieDir string `mapstructure:"platformCookieDir"` QrcodesDir string `mapstructure:"qrcodesDir"` ChromePath string `mapstructure:"chromePath"` ChromeDataDir string `mapstructure:"chromeDataDir"` MdDir string `mapstructure:"mdDIr"` } // LoadConfig 加载配置 func LoadConfig() (*Config, error) { BaseDir, _ := os.Getwd() return &Config{ Server: ServerConfig{ Port: 5001, Host: "0.0.0.0", }, //root:lansexiongdi6,@tcp(47.97.27.195:3306)/geo?charset=utf8mb4&parseTime=true&loc=Asia%2FShanghai DB: DB{ Driver: "mysql", Source: "root:Renzhiyuan123.@tcp(8.137.19.81:3306)/geo?charset=utf8mb4&parseTime=true", }, Sys: Sys{ AutoPublishWorkers: 2, MaxConcurrent: 1, TaskTimeout: 200, SessionTimeout: 300, MaxImageSize: 5 * 1024 * 1024, LogsDir: filepath.Join(BaseDir, "logs"), UploadDir: filepath.Join(BaseDir, "images"), VideosDir: filepath.Join(BaseDir, "videos"), DocsDir: filepath.Join(BaseDir, "docs"), CookiesDir: filepath.Join(BaseDir, "cookies"), PlatformCookieDir: filepath.Join(BaseDir, "plat_cookies"), QrcodesDir: filepath.Join(BaseDir, "qrcodes"), ChromePath: filepath.Join(BaseDir, "chrome", "chrome.exe"), ChromeDataDir: filepath.Join(BaseDir, "chrome_data"), MdDir: filepath.Join(BaseDir, "md"), }, Hsyq: Hsyq{ ApiKey: "236ba4b6-9daa-4755-b22f-2fd274cd223a", }, Oss: Oss{ AccessKey: "LTAI5tGGZzjf3tvqWk8SQj2G", SecretKey: "S0NKOAUaYWoK4EGSxrMFmYDzllhvpq", Bucket: "attachment-public", Domain: "https://attachment-public.oss-cn-hangzhou.aliyuncs.com", Endpoint: "https://oss-cn-hangzhou.aliyuncs.com", FilePath: "geo/", }, AiBot: AiBot{ Article: "bot-20260413000114-8bw62", ProductInfo: "bot-20260422010906-hvtbd", CollectInfo: "bot-20260426225808-wcxs7", }, Collect: Collect{ ApiKey: "sk_7bac5df901aa8933a238fcfec363f4a0", }, }, nil }