🎨 Remove asset content indexes when deleting asset files https://github.com/siyuan-note/siyuan/issues/9010
This commit is contained in:
parent
2fae8a008a
commit
2d61568fad
3 changed files with 20 additions and 6 deletions
|
@ -286,10 +286,16 @@ func buildAssetContentOrderBy(orderBy int) string {
|
|||
|
||||
var assetContentSearcher = NewAssetsSearcher()
|
||||
|
||||
func IndexAssetContent(absPath string) {
|
||||
func RemoveIndexAssetContent(absPath string) {
|
||||
defer logging.Recover()
|
||||
|
||||
assetsDir := util.GetDataAssetsAbsPath()
|
||||
p := "assets" + filepath.ToSlash(strings.TrimPrefix(absPath, assetsDir))
|
||||
sql.DeleteAssetContentsByPathQueue(p)
|
||||
}
|
||||
|
||||
func IndexAssetContent(absPath string) {
|
||||
defer logging.Recover()
|
||||
|
||||
ext := filepath.Ext(absPath)
|
||||
parser := assetContentSearcher.GetParser(ext)
|
||||
|
@ -308,6 +314,7 @@ func IndexAssetContent(absPath string) {
|
|||
return
|
||||
}
|
||||
|
||||
assetsDir := util.GetDataAssetsAbsPath()
|
||||
p := "assets" + filepath.ToSlash(strings.TrimPrefix(absPath, assetsDir))
|
||||
|
||||
assetContents := []*sql.AssetContent{
|
||||
|
|
|
@ -75,8 +75,9 @@ func watchAssets() {
|
|||
timer.Reset(time.Millisecond * 100)
|
||||
|
||||
if lastEvent.Op&fsnotify.Rename == fsnotify.Rename {
|
||||
// 索引资源文件内容
|
||||
IndexAssetContent(lastEvent.Name)
|
||||
} else if lastEvent.Op&fsnotify.Remove == fsnotify.Remove {
|
||||
RemoveIndexAssetContent(lastEvent.Name)
|
||||
}
|
||||
case err, ok := <-assetsWatcher.Errors:
|
||||
if !ok {
|
||||
|
@ -93,8 +94,11 @@ func watchAssets() {
|
|||
// 重新缓存资源文件,以便使用 /资源 搜索
|
||||
go cache.LoadAssets()
|
||||
|
||||
// 索引资源文件内容
|
||||
IndexAssetContent(lastEvent.Name)
|
||||
if lastEvent.Op&fsnotify.Remove == fsnotify.Remove {
|
||||
RemoveIndexAssetContent(lastEvent.Name)
|
||||
} else {
|
||||
IndexAssetContent(lastEvent.Name)
|
||||
}
|
||||
}
|
||||
}
|
||||
}()
|
||||
|
|
|
@ -60,8 +60,11 @@ func watchAssets() {
|
|||
// 重新缓存资源文件,以便使用 /资源 搜索
|
||||
go cache.LoadAssets()
|
||||
|
||||
// 索引资源文件内容
|
||||
IndexAssetContent(event.Path)
|
||||
if watcher.Remove == event.Op {
|
||||
RemoveIndexAssetContent(event.Path)
|
||||
} else {
|
||||
IndexAssetContent(event.Path)
|
||||
}
|
||||
case err, ok := <-assetsWatcher.Error:
|
||||
if !ok {
|
||||
return
|
||||
|
|
Loading…
Add table
Reference in a new issue