diff --git a/kernel/api/asset.go b/kernel/api/asset.go index eb0d7fe87..ee83f45c3 100644 --- a/kernel/api/asset.go +++ b/kernel/api/asset.go @@ -349,9 +349,7 @@ func getUnusedAssets(c *gin.Context) { util.PushMsg(fmt.Sprintf(model.Conf.Language(251), total, maxUnusedAssets), 5000) } - ret.Data = map[string]interface{}{ - "unusedAssets": unusedAssets, - } + ret.Data = unusedAssets } func getMissingAssets(c *gin.Context) { @@ -359,9 +357,7 @@ func getMissingAssets(c *gin.Context) { defer c.JSON(http.StatusOK, ret) missingAssets := model.MissingAssets() - ret.Data = map[string]interface{}{ - "missingAssets": missingAssets, - } + ret.Data = missingAssets } func resolveAssetPath(c *gin.Context) { diff --git a/kernel/api/av.go b/kernel/api/av.go index 88e8d68c3..779c23680 100644 --- a/kernel/api/av.go +++ b/kernel/api/av.go @@ -67,9 +67,7 @@ func getUnusedAttributeViews(c *gin.Context) { util.PushMsg(fmt.Sprintf(model.Conf.Language(279), total, maxUnusedAttributeViews), 5000) } - ret.Data = map[string]interface{}{ - "unusedAttributeViews": unusedAttributeViews, - } + ret.Data = unusedAttributeViews } func getAttributeViewItemIDsByBoundIDs(c *gin.Context) { diff --git a/kernel/model/assets.go b/kernel/model/assets.go index a2de0a89f..8824ce383 100644 --- a/kernel/model/assets.go +++ b/kernel/model/assets.go @@ -737,7 +737,8 @@ func RemoveUnusedAssets() (ret []string) { } var hashes []string - for _, p := range unusedAssets { + for _, unusedAsset := range unusedAssets { + p := unusedAsset["item"].(string) historyPath := filepath.Join(historyDir, p) if p = filepath.Join(util.DataDir, p); filelock.IsExist(p) { if filelock.IsHidden(p) { @@ -757,7 +758,8 @@ func RemoveUnusedAssets() (ret []string) { sql.BatchRemoveAssetsQueue(hashes) for _, unusedAsset := range unusedAssets { - absPath := filepath.Join(util.DataDir, unusedAsset) + p := unusedAsset["item"].(string) + absPath := filepath.Join(util.DataDir, p) if filelock.IsExist(absPath) { info, statErr := os.Stat(absPath) if statErr == nil { @@ -779,7 +781,7 @@ func RemoveUnusedAssets() (ret []string) { return } - util.RemoveAssetText(unusedAsset) + util.RemoveAssetText(p) } ret = append(ret, absPath) } @@ -965,9 +967,9 @@ func RenameAsset(oldPath, newName string) (newPath string, err error) { return } -func UnusedAssets() (ret []string) { +func UnusedAssets() (ret []map[string]any) { defer logging.Recover() - ret = []string{} + ret = []map[string]any{} assetsPathMap, err := allAssetAbsPaths() if err != nil { @@ -1121,15 +1123,18 @@ func UnusedAssets() (ret []string) { if strings.HasPrefix(p, "/") { p = p[1:] } - ret = append(ret, p) + name := util.RemoveID(path.Base(p)) + ret = append(ret, map[string]any{ + "item": p, + "name": name, + }) } - sort.Strings(ret) return } -func MissingAssets() (ret []string) { +func MissingAssets() (ret []map[string]any) { defer logging.Recover() - ret = []string{} + ret = []map[string]any{} assetsPathMap, err := allAssetAbsPaths() if err != nil { @@ -1197,17 +1202,23 @@ func MissingAssets() (ret []string) { if strings.HasPrefix(dest, "assets/.") { // Assets starting with `.` should not be considered missing assets https://github.com/siyuan-note/siyuan/issues/8821 if !filelock.IsExist(filepath.Join(util.DataDir, dest)) { - ret = append(ret, dest) + name := util.RemoveID(path.Base(dest)) + ret = append(ret, map[string]any{ + "item": dest, + "name": name, + }) } } else { - ret = append(ret, dest) + name := util.RemoveID(path.Base(dest)) + ret = append(ret, map[string]any{ + "item": dest, + "name": name, + }) } continue } } } - - sort.Strings(ret) return } diff --git a/kernel/model/attribute_view.go b/kernel/model/attribute_view.go index 5edb0f2f0..252ce0811 100644 --- a/kernel/model/attribute_view.go +++ b/kernel/model/attribute_view.go @@ -173,7 +173,7 @@ func UnusedAttributeViews() (ret []map[string]any) { if !docReferencedAvIDs[id] && !isRelatedSrcAvDocReferenced(id, docReferencedAvIDs, checkedAvIDs) { name, _ := av.GetAttributeViewName(id) ret = append(ret, map[string]any{ - "id": id, + "item": id, "name": name, }) }