ZeroBot-Plugin/plugin/aipaint/config.go
2022-10-14 13:57:42 +08:00

55 lines
1020 B
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"`
file string
}
func newServerConfig(file string) *serverConfig {
return &serverConfig{
file: file,
}
}
func (cfg *serverConfig) save(baseURL, token string) (err error) {
cfg.BaseURL = baseURL
cfg.Token = token
reader, err := os.Create(cfg.file)
if err != nil {
return err
}
defer reader.Close()
return json.NewEncoder(reader).Encode(cfg)
}
func (cfg *serverConfig) load() (aipaintServer, token string, err error) {
if cfg.BaseURL != "" && cfg.Token != "" {
aipaintServer = cfg.BaseURL
token = cfg.Token
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)
aipaintServer = cfg.BaseURL
token = cfg.Token
return
}