mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-06-08 14:14:19 +00:00
feat: add geofile update schedule settings infrastructure
This commit is contained in:
parent
b930ec71f9
commit
9bb4cc8d7f
2 changed files with 46 additions and 16 deletions
|
|
@ -127,6 +127,11 @@ type AllSetting struct {
|
||||||
BackupFrequency string `json:"backupFrequency" form:"backupFrequency"`
|
BackupFrequency string `json:"backupFrequency" form:"backupFrequency"`
|
||||||
BackupHour int `json:"backupHour" form:"backupHour"`
|
BackupHour int `json:"backupHour" form:"backupHour"`
|
||||||
BackupMaxCount int `json:"backupMaxCount" form:"backupMaxCount"`
|
BackupMaxCount int `json:"backupMaxCount" form:"backupMaxCount"`
|
||||||
|
|
||||||
|
// Geofile update schedule settings
|
||||||
|
GeofileUpdateEnabled bool `json:"geofileUpdateEnabled" form:"geofileUpdateEnabled"`
|
||||||
|
GeofileUpdateFrequency string `json:"geofileUpdateFrequency" form:"geofileUpdateFrequency"`
|
||||||
|
GeofileUpdateHour int `json:"geofileUpdateHour" form:"geofileUpdateHour"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// CheckValid validates all settings in the AllSetting struct, checking IP addresses, ports, SSL certificates, and other configuration values.
|
// CheckValid validates all settings in the AllSetting struct, checking IP addresses, ports, SSL certificates, and other configuration values.
|
||||||
|
|
|
||||||
|
|
@ -133,6 +133,11 @@ var defaultValueMap = map[string]string{
|
||||||
"backupFrequency": "daily",
|
"backupFrequency": "daily",
|
||||||
"backupHour": "3",
|
"backupHour": "3",
|
||||||
"backupMaxCount": "10",
|
"backupMaxCount": "10",
|
||||||
|
|
||||||
|
// Geofile update schedule settings
|
||||||
|
"geofileUpdateEnabled": "false",
|
||||||
|
"geofileUpdateFrequency": "daily",
|
||||||
|
"geofileUpdateHour": "4",
|
||||||
}
|
}
|
||||||
|
|
||||||
// settingGroups defines the nested JSON structure for on-disk settings.
|
// settingGroups defines the nested JSON structure for on-disk settings.
|
||||||
|
|
@ -259,6 +264,11 @@ var settingGroups = map[string]map[string]string{
|
||||||
"hour": "backupHour",
|
"hour": "backupHour",
|
||||||
"maxCount": "backupMaxCount",
|
"maxCount": "backupMaxCount",
|
||||||
},
|
},
|
||||||
|
"geofileUpdate": {
|
||||||
|
"enabled": "geofileUpdateEnabled",
|
||||||
|
"frequency": "geofileUpdateFrequency",
|
||||||
|
"hour": "geofileUpdateHour",
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
var legacySettingGroups = map[string]map[string]string{
|
var legacySettingGroups = map[string]map[string]string{
|
||||||
|
|
@ -1166,6 +1176,18 @@ func (s *SettingService) GetBackupMaxCount() (int, error) {
|
||||||
return s.getInt("backupMaxCount")
|
return s.getInt("backupMaxCount")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *SettingService) GetGeofileUpdateEnabled() (bool, error) {
|
||||||
|
return s.getBool("geofileUpdateEnabled")
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *SettingService) GetGeofileUpdateFrequency() (string, error) {
|
||||||
|
return s.getString("geofileUpdateFrequency")
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *SettingService) GetGeofileUpdateHour() (int, error) {
|
||||||
|
return s.getInt("geofileUpdateHour")
|
||||||
|
}
|
||||||
|
|
||||||
func (s *SettingService) UpdateAllSetting(allSetting *entity.AllSetting, presentKeys map[string]struct{}) error {
|
func (s *SettingService) UpdateAllSetting(allSetting *entity.AllSetting, presentKeys map[string]struct{}) error {
|
||||||
if err := allSetting.CheckValid(); err != nil {
|
if err := allSetting.CheckValid(); err != nil {
|
||||||
return err
|
return err
|
||||||
|
|
@ -1249,6 +1271,9 @@ func (s *SettingService) GetDefaultSettings(host string) (any, error) {
|
||||||
"remarkModel": func() (any, error) { return s.GetRemarkModel() },
|
"remarkModel": func() (any, error) { return s.GetRemarkModel() },
|
||||||
"datepicker": func() (any, error) { return s.GetDatepicker() },
|
"datepicker": func() (any, error) { return s.GetDatepicker() },
|
||||||
"ipLimitEnable": func() (any, error) { return s.GetIpLimitEnable() },
|
"ipLimitEnable": func() (any, error) { return s.GetIpLimitEnable() },
|
||||||
|
"geofileUpdateEnabled": func() (any, error) { return s.GetGeofileUpdateEnabled() },
|
||||||
|
"geofileUpdateFrequency": func() (any, error) { return s.GetGeofileUpdateFrequency() },
|
||||||
|
"geofileUpdateHour": func() (any, error) { return s.GetGeofileUpdateHour() },
|
||||||
}
|
}
|
||||||
|
|
||||||
result := make(map[string]any)
|
result := make(map[string]any)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue