From a169b3913a23a64679d0bc274a25fc8eeb3e916a Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Tue, 15 Aug 2023 16:18:43 +0800 Subject: [PATCH] :sparkles: Support for searching asset content https://github.com/siyuan-note/siyuan/issues/8874 --- kernel/model/asset_content.go | 7 +++++-- kernel/model/assets_watcher.go | 5 +++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/kernel/model/asset_content.go b/kernel/model/asset_content.go index 6a1e5cd55..8c762f274 100644 --- a/kernel/model/asset_content.go +++ b/kernel/model/asset_content.go @@ -444,9 +444,12 @@ func copyTempAsset(absPath string) (ret string) { return } + filelock.RWLock.Lock() + defer filelock.RWLock.Unlock() + ret = filepath.Join(dir, gulu.Rand.String(7)+".docx") - if err := filelock.Copy(absPath, ret); nil != err { - logging.LogErrorf("copy [%s] to [%s] failed: [%s]", absPath, ret, err) + if err := gulu.File.Copy(absPath, ret); nil != err { + logging.LogErrorf("copy [src=%s, dest=%s] failed: %s", absPath, ret, err) return } return diff --git a/kernel/model/assets_watcher.go b/kernel/model/assets_watcher.go index d56a81849..18771a62d 100644 --- a/kernel/model/assets_watcher.go +++ b/kernel/model/assets_watcher.go @@ -73,6 +73,11 @@ func watchAssets() { lastEvent = event timer.Reset(time.Millisecond * 100) + + if lastEvent.Op&fsnotify.Rename == fsnotify.Rename { + // 索引资源文件内容 + IndexAssetContent(lastEvent.Name) + } case err, ok := <-assetsWatcher.Errors: if !ok { return