mirror of
https://github.com/FloatTech/ZeroBot-Plugin.git
synced 2025-12-19 13:59:39 +08:00
57 lines
1.0 KiB
Go
57 lines
1.0 KiB
Go
package aipaint
|
|
|
|
import (
|
|
"encoding/json"
|
|
"errors"
|
|
"os"
|
|
|
|
"github.com/FloatTech/floatbox/file"
|
|
)
|
|
|
|
// 配置结构体
|
|
type serverConfig struct {
|
|
BaseURL string `json:"base_url"`
|
|
Token string `json:"token"`
|
|
Interval int `json:"interval"`
|
|
file string
|
|
}
|
|
|
|
func newServerConfig(file string) *serverConfig {
|
|
return &serverConfig{
|
|
file: file,
|
|
}
|
|
}
|
|
|
|
func (cfg *serverConfig) update(baseURL, token string, interval int) (err error) {
|
|
if baseURL != "" {
|
|
cfg.BaseURL = baseURL
|
|
}
|
|
if token != "" {
|
|
cfg.Token = token
|
|
}
|
|
cfg.Interval = interval
|
|
reader, err := os.Create(cfg.file)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
defer reader.Close()
|
|
return json.NewEncoder(reader).Encode(cfg)
|
|
}
|
|
|
|
func (cfg *serverConfig) load() (err error) {
|
|
if cfg.BaseURL != "" && cfg.Token != "" && cfg.Interval != 0 {
|
|
return
|
|
}
|
|
if file.IsNotExist(cfg.file) {
|
|
err = errors.New("no server config")
|
|
return
|
|
}
|
|
reader, err := os.Open(cfg.file)
|
|
if err != nil {
|
|
return
|
|
}
|
|
defer reader.Close()
|
|
err = json.NewDecoder(reader).Decode(cfg)
|
|
return
|
|
}
|