Add files via upload
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
package config
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"os"
|
||||
"path/filepath"
|
||||
)
|
||||
|
||||
// VisitTimerConfig 用于存储访问时间显示配置
|
||||
type VisitTimerConfig struct {
|
||||
ShowVisitTimer bool `json:"showVisitTimer"`
|
||||
}
|
||||
|
||||
// visitTimerConfigPath 返回访问时间配置文件路径
|
||||
func (c *Config) visitTimerConfigPath() string {
|
||||
return filepath.Join(c.DataDir, "visit_timer.json")
|
||||
}
|
||||
|
||||
// LoadVisitTimer 读取访问时间显示配置(文件不存在时返回默认配置)
|
||||
func (c *Config) LoadVisitTimer() (*VisitTimerConfig, error) {
|
||||
path := c.visitTimerConfigPath()
|
||||
|
||||
data, err := os.ReadFile(path)
|
||||
if err != nil {
|
||||
if os.IsNotExist(err) {
|
||||
// 没有配置文件时返回默认配置(显示)
|
||||
return &VisitTimerConfig{ShowVisitTimer: true}, nil
|
||||
}
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var cfg VisitTimerConfig
|
||||
if err := json.Unmarshal(data, &cfg); err != nil {
|
||||
// 解析失败时返回默认配置
|
||||
return &VisitTimerConfig{ShowVisitTimer: true}, err
|
||||
}
|
||||
return &cfg, nil
|
||||
}
|
||||
|
||||
// SaveVisitTimer 保存访问时间显示配置
|
||||
func (c *Config) SaveVisitTimer(cfg *VisitTimerConfig) error {
|
||||
if cfg == nil {
|
||||
cfg = &VisitTimerConfig{ShowVisitTimer: true}
|
||||
}
|
||||
|
||||
data, err := json.MarshalIndent(cfg, "", " ")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
path := c.visitTimerConfigPath()
|
||||
if err := os.WriteFile(path, data, 0644); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
Reference in New Issue
Block a user