78 lines
1.7 KiB
Go
78 lines
1.7 KiB
Go
|
package option
|
|||
|
|
|||
|
import (
|
|||
|
"gopkg.in/yaml.v2"
|
|||
|
"io"
|
|||
|
"log"
|
|||
|
"os"
|
|||
|
)
|
|||
|
|
|||
|
//自定义选项
|
|||
|
|
|||
|
type Option struct {
|
|||
|
UDesk struct {
|
|||
|
Filters []struct {
|
|||
|
Filter7D string `yaml:"filter7d,omitempty"`
|
|||
|
Filter14D string `yaml:"filter14d,omitempty"`
|
|||
|
} `yaml:"filters"`
|
|||
|
Macros []string `yaml:"macros"`
|
|||
|
} `yaml:"uDesk"`
|
|||
|
VolumePath string `yaml:"volumePath"`
|
|||
|
FileServer struct {
|
|||
|
Address string `yaml:"address"`
|
|||
|
} `yaml:"fileServer"`
|
|||
|
ModelConf struct {
|
|||
|
API string `yaml:"api"`
|
|||
|
Token string `yaml:"token"`
|
|||
|
} `yaml:"modelConf"`
|
|||
|
Wechat struct {
|
|||
|
Webhook string `yaml:"webhook"`
|
|||
|
} `yaml:"wechat"`
|
|||
|
}
|
|||
|
|
|||
|
// 新选项对象
|
|||
|
func newOptionObj() *Option {
|
|||
|
return &Option{}
|
|||
|
}
|
|||
|
|
|||
|
func (o *Option) readYaml(yamlFile string) *Option {
|
|||
|
file, err := os.Open(yamlFile)
|
|||
|
if err != nil {
|
|||
|
log.Printf("打开yaml文件错误,错误是:%v", err)
|
|||
|
return nil
|
|||
|
}
|
|||
|
defer file.Close()
|
|||
|
|
|||
|
data, err := io.ReadAll(file)
|
|||
|
if err != nil {
|
|||
|
log.Printf("读取yaml文件错误,错误是:%v", err)
|
|||
|
return nil
|
|||
|
}
|
|||
|
var option Option
|
|||
|
|
|||
|
err = yaml.Unmarshal(data, &option)
|
|||
|
|
|||
|
if err != nil {
|
|||
|
log.Printf("yaml文件内容反序列化失败,错误是:%v", err)
|
|||
|
return nil
|
|||
|
}
|
|||
|
return &option
|
|||
|
}
|
|||
|
|
|||
|
func loadALLOption() *Option {
|
|||
|
option := newOptionObj()
|
|||
|
option = option.readYaml("/conf/")
|
|||
|
return option
|
|||
|
}
|
|||
|
|
|||
|
var (
|
|||
|
UDESK_FILTER7D = loadALLOption().UDesk.Filters[0].Filter7D
|
|||
|
UDSK_FILTER14D = loadALLOption().UDesk.Filters[1].Filter14D
|
|||
|
UDESK_MACROS = loadALLOption().UDesk.Macros
|
|||
|
FILESERVER_ADDRESS = loadALLOption().FileServer.Address
|
|||
|
VOLUMEPATH = loadALLOption().VolumePath
|
|||
|
MODEL_API = loadALLOption().ModelConf.API
|
|||
|
MODEL_TOKEN = loadALLOption().ModelConf.Token
|
|||
|
WECHAT_WEBHOOK = loadALLOption().Wechat.Webhook
|
|||
|
)
|