From 705f34ccd129a209cfd335e1469e6d3dfa638924 Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Thu, 23 Jun 2022 19:35:59 +0800 Subject: [PATCH] =?UTF-8?q?:recycle:=20=E4=B8=80=E4=BA=9B=E5=B7=A5?= =?UTF-8?q?=E5=85=B7=E5=87=BD=E6=95=B0=E7=A7=BB=E5=8A=A8=E5=88=B0=20gulu?= =?UTF-8?q?=20=E9=A1=B9=E7=9B=AE=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel/api/workspace.go | 4 +-- kernel/go.mod | 2 +- kernel/go.sum | 4 +-- kernel/model/assets.go | 4 +-- kernel/model/file.go | 4 +-- kernel/model/search.go | 4 +-- kernel/sql/block_ref_query.go | 5 ++-- kernel/util/font.go | 3 ++- kernel/util/path.go | 6 +++-- kernel/util/slice.go | 49 ----------------------------------- 10 files changed, 20 insertions(+), 65 deletions(-) delete mode 100644 kernel/util/slice.go diff --git a/kernel/api/workspace.go b/kernel/api/workspace.go index b5f72a2ea..47b082b53 100644 --- a/kernel/api/workspace.go +++ b/kernel/api/workspace.go @@ -84,8 +84,8 @@ func setWorkspaceDir(c *gin.Context) { } workspacePaths = append(workspacePaths, path) - workspacePaths = util.RemoveDuplicatedElem(workspacePaths) - workspacePaths = util.RemoveElem(workspacePaths, path) + workspacePaths = gulu.Str.RemoveDuplicatedElem(workspacePaths) + workspacePaths = gulu.Str.RemoveElem(workspacePaths, path) workspacePaths = append(workspacePaths, path) // 切换的工作空间固定放在最后一个 if data, err = gulu.JSON.MarshalJSON(workspacePaths); nil != err { diff --git a/kernel/go.mod b/kernel/go.mod index f560572e5..5ced3b1dc 100644 --- a/kernel/go.mod +++ b/kernel/go.mod @@ -6,7 +6,7 @@ require ( github.com/88250/clipboard v0.1.5 github.com/88250/css v0.1.2 github.com/88250/flock v0.8.2 - github.com/88250/gulu v1.2.2 + github.com/88250/gulu v1.2.3-0.20220623112232-c502d9016360 github.com/88250/lute v1.7.4-0.20220621025353-a289c6a2323b github.com/88250/melody v0.0.0-20201115062536-c0b3394adcd1 github.com/88250/pdfcpu v0.3.13 diff --git a/kernel/go.sum b/kernel/go.sum index c00e284c9..7eb052283 100644 --- a/kernel/go.sum +++ b/kernel/go.sum @@ -48,8 +48,8 @@ github.com/88250/flock v0.8.2/go.mod h1:k+PZxETAUe4vLZx3R39ykvQCIlwHhc7AI2P2NUQV github.com/88250/go-sqlite3 v1.14.13-0.20220412041952-88c3aaa8595e h1:uXi4QLKI/mswcXuzD+wBjJMkj1C3hK5Tgl3hF6MJpbo= github.com/88250/go-sqlite3 v1.14.13-0.20220412041952-88c3aaa8595e/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= github.com/88250/gulu v1.2.0/go.mod h1:ZhEJ98UjR2y7j2toGj4/b+1rRELcZFQAPq/Yjyin2yY= -github.com/88250/gulu v1.2.2 h1:LsuDSXI4GjqAD2XasG/DJEHuboKXU2lhZ9w0mnfJj3Y= -github.com/88250/gulu v1.2.2/go.mod h1:I1qBzsksFL2ciGSuqDE7R3XW4BUMrfDgOvSXEk7FsAI= +github.com/88250/gulu v1.2.3-0.20220623112232-c502d9016360 h1:afQ0cjIA/tzwvIDFy9Jf0jFCb1FvWwKuG1QidEMMi4M= +github.com/88250/gulu v1.2.3-0.20220623112232-c502d9016360/go.mod h1:I1qBzsksFL2ciGSuqDE7R3XW4BUMrfDgOvSXEk7FsAI= github.com/88250/lute v1.7.4-0.20220426011157-34c9bfa2e148/go.mod h1:Bdu9LRNjQhtL3TftbtpjIWTwDVAXoS7AD8QsZQPk7zo= github.com/88250/lute v1.7.4-0.20220621025353-a289c6a2323b h1:oEfMdET2TVOH/X3R3tWJWf25oPsnh3drPAwPWoFc1so= github.com/88250/lute v1.7.4-0.20220621025353-a289c6a2323b/go.mod h1:Bdu9LRNjQhtL3TftbtpjIWTwDVAXoS7AD8QsZQPk7zo= diff --git a/kernel/model/assets.go b/kernel/model/assets.go index ddc20bc7e..4458ab186 100644 --- a/kernel/model/assets.go +++ b/kernel/model/assets.go @@ -267,7 +267,7 @@ func uploadCloud(sqlAssets []*sql.Asset) (err error) { return } - uploadAbsAssets = util.RemoveDuplicatedElem(uploadAbsAssets) + uploadAbsAssets = gulu.Str.RemoveDuplicatedElem(uploadAbsAssets) util.LogInfof("uploading [%d] assets", len(uploadAbsAssets)) if loadErr := LoadUploadToken(); nil != loadErr { @@ -357,7 +357,7 @@ func saveWorkspaceAssets(assets []string) { } confPath := filepath.Join(confDir, "assets.json") - assets = util.RemoveDuplicatedElem(assets) + assets = gulu.Str.RemoveDuplicatedElem(assets) sort.Strings(assets) data, err := gulu.JSON.MarshalIndentJSON(assets, "", " ") if nil != err { diff --git a/kernel/model/file.go b/kernel/model/file.go index 8f3281468..cfacabc7e 100644 --- a/kernel/model/file.go +++ b/kernel/model/file.go @@ -531,11 +531,11 @@ func GetDoc(id string, index int, keyword string, mode int, size int) (blockCoun tmp = append(tmp, e) } excludes = tmp - virtualBlockRefKeywords = util.ExcludeElem(virtualBlockRefKeywords, excludes) + virtualBlockRefKeywords = gulu.Str.ExcludeElem(virtualBlockRefKeywords, excludes) } // 虚拟引用排除当前文档名 https://github.com/siyuan-note/siyuan/issues/4537 - virtualBlockRefKeywords = util.ExcludeElem(virtualBlockRefKeywords, []string{tree.Root.IALAttr("title")}) + virtualBlockRefKeywords = gulu.Str.ExcludeElem(virtualBlockRefKeywords, []string{tree.Root.IALAttr("title")}) if 0 < len(virtualBlockRefKeywords) { var tmp []string diff --git a/kernel/model/search.go b/kernel/model/search.go index cd777301e..79afd7a91 100644 --- a/kernel/model/search.go +++ b/kernel/model/search.go @@ -132,7 +132,7 @@ func FindReplace(keyword, replacement string, ids []string) (err error) { return } - ids = util.RemoveDuplicatedElem(ids) + ids = gulu.Str.RemoveDuplicatedElem(ids) var renameRoots []*ast.Node renameRootTitles := map[string]string{} for _, id := range ids { @@ -403,7 +403,7 @@ func markSearch(text string, keyword string, beforeLen int) (marked string, scor } keywords := gulu.Str.SubstringsBetween(marked, "__@mark__", "__mark@__") - keywords = util.RemoveDuplicatedElem(keywords) + keywords = gulu.Str.RemoveDuplicatedElem(keywords) keyword = strings.Join(keywords, search.TermSep) marked = strings.ReplaceAll(marked, "__@mark__", "") marked = strings.ReplaceAll(marked, "__mark@__", "") diff --git a/kernel/sql/block_ref_query.go b/kernel/sql/block_ref_query.go index 8d9665e6e..4304222d7 100644 --- a/kernel/sql/block_ref_query.go +++ b/kernel/sql/block_ref_query.go @@ -21,6 +21,7 @@ import ( "sort" "strings" + "github.com/88250/gulu" "github.com/88250/lute/parse" "github.com/emirpasic/gods/sets/hashset" "github.com/siyuan-note/siyuan/kernel/util" @@ -44,7 +45,7 @@ func QueryVirtualRefKeywords(name, alias, anchor, doc bool) (ret []string) { if doc { ret = append(ret, queryDocTitles()...) } - ret = util.RemoveDuplicatedElem(ret) + ret = gulu.Str.RemoveDuplicatedElem(ret) sort.SliceStable(ret, func(i, j int) bool { return len(ret[i]) >= len(ret[j]) }) @@ -187,7 +188,7 @@ func QueryBlockDefIDsByRefText(refText string, excludeIDs []string) (ret []strin ret = queryDefIDsByDefText(refText, excludeIDs) ret = append(ret, queryDefIDsByNameAlias(refText, excludeIDs)...) ret = append(ret, queryDocIDsByTitle(refText, excludeIDs)...) - ret = util.RemoveDuplicatedElem(ret) + ret = gulu.Str.RemoveDuplicatedElem(ret) return } diff --git a/kernel/util/font.go b/kernel/util/font.go index 49fb5f193..1c6c1a158 100644 --- a/kernel/util/font.go +++ b/kernel/util/font.go @@ -21,6 +21,7 @@ import ( "sort" "strings" + "github.com/88250/gulu" "github.com/ConradIrwin/font/sfnt" "github.com/flopp/go-findfont" ttc "golang.org/x/image/font/sfnt" @@ -30,7 +31,7 @@ import ( func GetSysFonts(currentLanguage string) (ret []string) { fonts := loadFonts(currentLanguage) - ret = RemoveDuplicatedElem(fonts) + ret = gulu.Str.RemoveDuplicatedElem(fonts) ret = removeUnusedFonts(ret) sort.Strings(ret) return diff --git a/kernel/util/path.go b/kernel/util/path.go index 80a793c30..9a343c9ab 100644 --- a/kernel/util/path.go +++ b/kernel/util/path.go @@ -23,6 +23,8 @@ import ( "os/exec" "path" "strings" + + "github.com/88250/gulu" ) var ( @@ -87,7 +89,7 @@ func GetLocalIPs() (ret []string) { if "android" == Container { // Android 上用不了 net.InterfaceAddrs() https://github.com/golang/go/issues/40569,所以前面使用启动内核传入的参数 localIPs LocalIPs = append(LocalIPs, "127.0.0.1") - LocalIPs = RemoveDuplicatedElem(LocalIPs) + LocalIPs = gulu.Str.RemoveDuplicatedElem(LocalIPs) return LocalIPs } @@ -104,7 +106,7 @@ func GetLocalIPs() (ret []string) { } } ret = append(ret, "127.0.0.1") - ret = RemoveDuplicatedElem(ret) + ret = gulu.Str.RemoveDuplicatedElem(ret) return } diff --git a/kernel/util/slice.go b/kernel/util/slice.go deleted file mode 100644 index 05ddd6380..000000000 --- a/kernel/util/slice.go +++ /dev/null @@ -1,49 +0,0 @@ -// SiYuan - Build Your Eternal Digital Garden -// Copyright (c) 2020-present, b3log.org -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see . - -package util - -import "github.com/88250/gulu" - -func RemoveElem(slice []string, elem string) (ret []string) { - for _, e := range slice { - if e != elem { - ret = append(ret, e) - } - } - return -} - -func ExcludeElem(slice, excludes []string) (ret []string) { - ret = []string{} - for _, e := range slice { - if !gulu.Str.Contains(e, excludes) { - ret = append(ret, e) - } - } - return -} - -func RemoveDuplicatedElem(slice []string) (ret []string) { - allKeys := make(map[string]bool) - for _, item := range slice { - if _, value := allKeys[item]; !value { - allKeys[item] = true - ret = append(ret, item) - } - } - return -}