From 2a8da2ba3cbfbf7ac46e5ba7ba071588f3f2d8b5 Mon Sep 17 00:00:00 2001 From: Alireza Ahmadi Date: Mon, 4 Dec 2023 19:20:46 +0100 Subject: separate xray page #1286 --- web/service/setting.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'web/service/setting.go') diff --git a/web/service/setting.go b/web/service/setting.go index b1565e1f..933fff1b 100644 --- a/web/service/setting.go +++ b/web/service/setting.go @@ -70,7 +70,7 @@ func (s *SettingService) GetDefaultJsonConfig() (interface{}, error) { func (s *SettingService) GetAllSetting() (*entity.AllSetting, error) { db := database.GetDB() settings := make([]*model.Setting, 0) - err := db.Model(model.Setting{}).Find(&settings).Error + err := db.Model(model.Setting{}).Not("key = ?", "xrayTemplateConfig").Find(&settings).Error if err != nil { return nil, err } @@ -426,3 +426,12 @@ func (s *SettingService) UpdateAllSetting(allSetting *entity.AllSetting) error { } return common.Combine(errs...) } + +func (s *SettingService) GetDefaultXrayConfig() (interface{}, error) { + var jsonData interface{} + err := json.Unmarshal([]byte(xrayTemplateConfig), &jsonData) + if err != nil { + return nil, err + } + return jsonData, nil +} -- cgit v1.2.3 From 5e47b4e94925c2272a7f0a4cc355cede72c671a4 Mon Sep 17 00:00:00 2001 From: Alireza Ahmadi Date: Fri, 8 Dec 2023 17:18:51 +0100 Subject: pagination and sub URI support #1300 --- web/service/setting.go | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) (limited to 'web/service/setting.go') diff --git a/web/service/setting.go b/web/service/setting.go index 933fff1b..d6cf193e 100644 --- a/web/service/setting.go +++ b/web/service/setting.go @@ -31,6 +31,7 @@ var defaultValueMap = map[string]string{ "secret": random.Seq(32), "webBasePath": "/", "sessionMaxAge": "0", + "pageSize": "0", "expireDiff": "0", "trafficDiff": "0", "timeLocation": "Asia/Tehran", @@ -53,6 +54,7 @@ var defaultValueMap = map[string]string{ "subUpdates": "12", "subEncrypt": "true", "subShowInfo": "true", + "subURI": "", } type SettingService struct { @@ -406,6 +408,14 @@ func (s *SettingService) GetSubShowInfo() (bool, error) { return s.getBool("subShowInfo") } +func (s *SettingService) GetSubURI() (string, error) { + return s.getString("subURI") +} + +func (s *SettingService) GetPageSize() (int, error) { + return s.getInt("pageSize") +} + func (s *SettingService) UpdateAllSetting(allSetting *entity.AllSetting) error { if err := allSetting.CheckValid(); err != nil { return err @@ -435,3 +445,61 @@ func (s *SettingService) GetDefaultXrayConfig() (interface{}, error) { } return jsonData, nil } + +func (s *SettingService) GetDefaultSettings(host string) (interface{}, error) { + type settingFunc func() (interface{}, error) + settings := map[string]settingFunc{ + "expireDiff": func() (interface{}, error) { return s.GetExpireDiff() }, + "trafficDiff": func() (interface{}, error) { return s.GetTrafficDiff() }, + "pageSize": func() (interface{}, error) { return s.GetPageSize() }, + "defaultCert": func() (interface{}, error) { return s.GetCertFile() }, + "defaultKey": func() (interface{}, error) { return s.GetKeyFile() }, + "tgBotEnable": func() (interface{}, error) { return s.GetTgbotenabled() }, + "subEnable": func() (interface{}, error) { return s.GetSubEnable() }, + "subURI": func() (interface{}, error) { return s.GetSubURI() }, + } + + result := make(map[string]interface{}) + + for key, fn := range settings { + value, err := fn() + if err != nil { + return "", err + } + result[key] = value + } + + if result["subEnable"].(bool) && result["subURI"].(string) == "" { + subURI := "" + subPort, _ := s.GetSubPort() + subPath, _ := s.GetSubPath() + subDomain, _ := s.GetSubDomain() + subKeyFile, _ := s.GetSubKeyFile() + subCertFile, _ := s.GetSubCertFile() + subTLS := false + if subKeyFile != "" && subCertFile != "" { + subTLS = true + } + if subDomain == "" { + subDomain = strings.Split(host, ":")[0] + } + if subTLS { + subURI = "https://" + } else { + subURI = "http://" + } + if (subPort == 443 && subTLS) || (subPort == 80 && !subTLS) { + subURI += subDomain + } else { + subURI += fmt.Sprintf("%s:%d", subDomain, subPort) + } + if subPath[0] == byte('/') { + subURI += subPath + } else { + subURI += "/" + subPath + } + result["subURI"] = subURI + } + + return result, nil +} -- cgit v1.2.3 From c980a06969c9595f0b0b7d5db301f2413506eb6f Mon Sep 17 00:00:00 2001 From: Alireza Ahmadi Date: Fri, 8 Dec 2023 20:31:17 +0100 Subject: customizable remark #1300 --- web/service/setting.go | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'web/service/setting.go') diff --git a/web/service/setting.go b/web/service/setting.go index d6cf193e..8b60d166 100644 --- a/web/service/setting.go +++ b/web/service/setting.go @@ -34,6 +34,7 @@ var defaultValueMap = map[string]string{ "pageSize": "0", "expireDiff": "0", "trafficDiff": "0", + "remarkModel": "-ieo", "timeLocation": "Asia/Tehran", "tgBotEnable": "false", "tgBotToken": "", @@ -311,6 +312,10 @@ func (s *SettingService) GetSessionMaxAge() (int, error) { return s.getInt("sessionMaxAge") } +func (s *SettingService) GetRemarkModel() (string, error) { + return s.getString("remarkModel") +} + func (s *SettingService) GetSecretStatus() (bool, error) { return s.getBool("secretEnable") } @@ -457,6 +462,7 @@ func (s *SettingService) GetDefaultSettings(host string) (interface{}, error) { "tgBotEnable": func() (interface{}, error) { return s.GetTgbotenabled() }, "subEnable": func() (interface{}, error) { return s.GetSubEnable() }, "subURI": func() (interface{}, error) { return s.GetSubURI() }, + "remarkModel": func() (interface{}, error) { return s.GetRemarkModel() }, } result := make(map[string]interface{}) -- cgit v1.2.3