qq_bot/config/config.go

57 lines
1.1 KiB
Go

package config
import (
"os"
"gopkg.in/yaml.v3"
)
var ConfigManager = &configManager{}
type Config struct {
SteamApiKey string `yaml:"steam_api_key"`
OpenaiApiKey string `yaml:"openai_api_key"`
OpenaiApiBaseUrl string `yaml:"openai_api_base_url"`
OpenaiModelName string `yaml:"openai_model_name"`
OpenaiPrompt string `yaml:"openai_prompt"`
Management struct {
Admin int64 `yaml:"admin"`
ReportGroup int64 `yaml:"report_group"`
ProxyAddr string `yaml:"proxy_addr"`
NapcatWsSrv string `yaml:"napcat_ws_srv"`
NapcatHttpSrv string `yaml:"napcat_http_srv"`
} `yaml:"management"`
WebServer struct {
Token string `yaml:"token"`
} `yaml:"web_server"`
}
func init() {
err := ConfigManager.LoadConfig("config.yml")
if err != nil {
panic(err)
}
}
type configManager struct {
// propertys map[string]string
config *Config
}
func (cm *configManager) LoadConfig(path string) error {
data, err := os.ReadFile(path)
if err != nil {
return err
}
err = yaml.Unmarshal(data, &cm.config)
if err != nil {
return err
}
return nil
}
func (cm *configManager) GetConfig() *Config {
return cm.config
}