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/setting.go | |
| 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/setting.go')
| -rw-r--r-- | web/service/setting.go | 27 |
1 files changed, 27 insertions, 0 deletions
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 +} |
