From eba283d8b26d6c55bdbe9190309d560d8dc84b59 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Mon, 30 Oct 2023 15:25:46 +0800 Subject: [PATCH] =?UTF-8?q?:art:=20=E9=A2=98=E5=A4=B4=E5=9B=BE=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E8=B5=84=E6=BA=90=E6=96=87=E4=BB=B6=E6=90=9C=E7=B4=A2?= =?UTF-8?q?=20https://github.com/siyuan-note/siyuan/issues/9524?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel/api/search.go | 10 +++++++++- kernel/model/assets.go | 17 ++++++++++++++++- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/kernel/api/search.go b/kernel/api/search.go index 0b4feab8e..0c29d130e 100644 --- a/kernel/api/search.go +++ b/kernel/api/search.go @@ -101,7 +101,15 @@ func searchAsset(c *gin.Context) { } k := arg["k"].(string) - ret.Data = model.SearchAssetsByName(k) + + var exts []string + if extsArg := arg["exts"]; nil != extsArg { + for _, ext := range extsArg.([]interface{}) { + exts = append(exts, ext.(string)) + } + } + + ret.Data = model.SearchAssetsByName(k, exts) return } diff --git a/kernel/model/assets.go b/kernel/model/assets.go index 709171a53..72f29aebd 100644 --- a/kernel/model/assets.go +++ b/kernel/model/assets.go @@ -220,11 +220,26 @@ func NetImg2LocalAssets(rootID, originalURL string) (err error) { return } -func SearchAssetsByName(keyword string) (ret []*cache.Asset) { +func SearchAssetsByName(keyword string, exts []string) (ret []*cache.Asset) { ret = []*cache.Asset{} count := 0 + filterByExt := 0 < len(exts) for _, asset := range cache.GetAssets() { + if filterByExt { + ext := filepath.Ext(asset.HName) + includeExt := false + for _, e := range exts { + if strings.ToLower(ext) == strings.ToLower(e) { + includeExt = true + break + } + } + if !includeExt { + continue + } + } + if !strings.Contains(strings.ToLower(asset.HName), strings.ToLower(keyword)) { continue }