|
@@ -10,9 +10,8 @@ import (
|
|
|
// 敏感词库
|
|
|
var link map[string]interface{}
|
|
|
|
|
|
-func getWords(path string) (words []string, err error) {
|
|
|
- var fi *os.File
|
|
|
- fi, err = os.Open(path)
|
|
|
+func getWordsByFile(filePath string) (words []string) {
|
|
|
+ fi, err := os.Open(filePath)
|
|
|
if err != nil {
|
|
|
return
|
|
|
}
|
|
@@ -28,15 +27,40 @@ func getWords(path string) (words []string, err error) {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
-// 读取字段
|
|
|
+func GetWordsByDir(dir string) (words []string) {
|
|
|
+ files, err := os.ReadDir(dir)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, file := range files {
|
|
|
+ if file.IsDir() {
|
|
|
+ words = append(words, GetWordsByDir(dir+file.Name()+"/")...)
|
|
|
+ } else {
|
|
|
+ words = append(words, getWordsByFile(dir+file.Name())...)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+// ReadFswDirDict 读取文件夹获取敏感词
|
|
|
+func ReadFswDirDict(dir string) {
|
|
|
+ initList(GetWordsByDir(dir))
|
|
|
+}
|
|
|
+
|
|
|
+// ReadFswDict 读取多文件获取敏感词
|
|
|
func ReadFswDict(config ...string) {
|
|
|
var AllWords []string
|
|
|
for _, path := range config {
|
|
|
- fswWords, _ := getWords(path)
|
|
|
- AllWords = append(AllWords, fswWords...)
|
|
|
+ AllWords = append(AllWords, getWordsByFile(path)...)
|
|
|
}
|
|
|
log.Println(len(AllWords))
|
|
|
//要组装关键字
|
|
|
+ initList(AllWords)
|
|
|
+}
|
|
|
+
|
|
|
+func initList(AllWords []string) {
|
|
|
+ log.Printf("初始化敏感词%d个\n", len(AllWords))
|
|
|
+ //要组装关键字
|
|
|
link = make(map[string]interface{})
|
|
|
var nowMap *map[string]interface{}
|
|
|
for _, key := range AllWords {
|
|
@@ -55,7 +79,6 @@ func ReadFswDict(config ...string) {
|
|
|
if i == len(key)-1 {
|
|
|
(*nowMap)["YN"] = "Y"
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
}
|
|
|
}
|