diff options
| author | Ho3ein <ho3ein.sanaei@gmail.com> | 2023-05-13 12:48:36 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-05-13 12:48:36 +0300 |
| commit | 5468069befd602a7ae51deb5b76150ee16d426d6 (patch) | |
| tree | a41b4492b37e52e033b2f4e027da05ce8893ae50 /web/service | |
| parent | 3bec9ee2737d0a8c49f4d705f1d8c8925bb8a2a8 (diff) | |
| parent | 0cce35784eb2ab8ce42e88bdf63e0284254d2e14 (diff) | |
Merge pull request #420 from hamid-gh98/main
[fix] russia domains in settings and More....
Diffstat (limited to 'web/service')
| -rw-r--r-- | web/service/server.go | 4 | ||||
| -rw-r--r-- | web/service/setting.go | 27 | ||||
| -rw-r--r-- | web/service/sub.go | 4 |
3 files changed, 31 insertions, 4 deletions
diff --git a/web/service/server.go b/web/service/server.go index d8a2239b..d0ca6e21 100644 --- a/web/service/server.go +++ b/web/service/server.go @@ -179,7 +179,7 @@ func (s *ServerService) GetStatus(lastStatus *Status) *Status { } func (s *ServerService) GetXrayVersions() ([]string, error) { - url := "https://api.github.com/repos/mhsanaei/Xray-core/releases" + url := "https://api.github.com/repos/MHSanaei/Xray-core/releases" resp, err := http.Get(url) if err != nil { return nil, err @@ -246,7 +246,7 @@ func (s *ServerService) downloadXRay(version string) (string, error) { } fileName := fmt.Sprintf("Xray-%s-%s.zip", osName, arch) - url := fmt.Sprintf("https://github.com/mhsanaei/Xray-core/releases/download/%s/%s", version, fileName) + url := fmt.Sprintf("https://github.com/MHSanaei/Xray-core/releases/download/%s/%s", version, fileName) resp, err := http.Get(url) if err != nil { return "", err diff --git a/web/service/setting.go b/web/service/setting.go index d3072252..6635bf48 100644 --- a/web/service/setting.go +++ b/web/service/setting.go @@ -1,10 +1,12 @@ package service import ( + "bufio" _ "embed" "encoding/json" "errors" "fmt" + "os" "reflect" "strconv" "strings" @@ -16,6 +18,7 @@ import ( "x-ui/util/random" "x-ui/util/reflect_util" "x-ui/web/entity" + "x-ui/xray" ) //go:embed config.json @@ -351,3 +354,27 @@ func (s *SettingService) UpdateAllSetting(allSetting *entity.AllSetting) error { } return common.Combine(errs...) } + +func (s *SettingService) SearchDatafiles(query string) (bool, error) { + // Open the file for reading + file, err := os.Open(xray.GetGeositePath()) + if err != nil { + return false, common.NewErrorf("Error opening geosite.dat: %v", err) + } + defer file.Close() + + // Create a scanner to read the file line-by-line + scanner := bufio.NewScanner(file) + for scanner.Scan() { + line := scanner.Text() + if strings.Contains(strings.ToLower(line), strings.ToLower(query)) { + return true, nil + } + } + + err = scanner.Err() + if err != nil { + return false, common.NewErrorf("Error while scanning geosite.dat: %v", err) + } + return false, nil +} diff --git a/web/service/sub.go b/web/service/sub.go index 9a86c3eb..bc34366f 100644 --- a/web/service/sub.go +++ b/web/service/sub.go @@ -38,7 +38,7 @@ func (s *SubService) GetSubs(subId string, host string) ([]string, string, error continue } for _, client := range clients { - if client.SubID == subId { + if client.Enable && client.SubID == subId { link := s.getLink(inbound, client.Email) result = append(result, link) clientTraffics = append(clientTraffics, s.getClientTraffics(inbound.ClientStats, client.Email)) @@ -73,7 +73,7 @@ func (s *SubService) GetSubs(subId string, host string) ([]string, string, error func (s *SubService) getInboundsBySubId(subId string) ([]*model.Inbound, error) { db := database.GetDB() var inbounds []*model.Inbound - err := db.Model(model.Inbound{}).Preload("ClientStats").Where("settings like ?", fmt.Sprintf(`%%"subId": "%s"%%`, subId)).Find(&inbounds).Error + err := db.Model(model.Inbound{}).Preload("ClientStats").Where("settings like ? and enable = ?", fmt.Sprintf(`%%"subId": "%s"%%`, subId), true).Find(&inbounds).Error if err != nil && err != gorm.ErrRecordNotFound { return nil, err } |
