Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/MHSanaei/3x-ui.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--web/service/setting.go27
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
+}