diff --git a/app/appearance/langs/en_US.json b/app/appearance/langs/en_US.json index bbdffe930..2715b52f9 100644 --- a/app/appearance/langs/en_US.json +++ b/app/appearance/langs/en_US.json @@ -95,6 +95,7 @@ "netImg2LocalAsset": "Convert network images to local images", "releaseDate": "Release Date", "pkgSize": "Package size", + "installSize": "Install Size", "optimizeTypography": "Optimize typography", "dragPosition": "Drag image to reposition", "exportPDF0": "Page Size", diff --git a/app/appearance/langs/es_ES.json b/app/appearance/langs/es_ES.json index 3662fdbb8..d6f703766 100644 --- a/app/appearance/langs/es_ES.json +++ b/app/appearance/langs/es_ES.json @@ -95,6 +95,7 @@ "netImg2LocalAsset": "Convertir imágenes de red en imágenes locales", "releaseDate": "Fecha de lanzamiento", "pkgSize": "Tamaño del paquete", + "installSize": "Tamaño de instalación", "optimizeTypography": "Insertar un espacio entre el chino y el occidental", "dragPosition": "Arrastrar imagen para reposicionarla", "exportPDF0": "Tamaño de la página", diff --git a/app/appearance/langs/fr_FR.json b/app/appearance/langs/fr_FR.json index e14f8f9ff..483270a34 100644 --- a/app/appearance/langs/fr_FR.json +++ b/app/appearance/langs/fr_FR.json @@ -95,6 +95,7 @@ "netImg2LocalAsset": "Convertir des images réseau en images locales", "releaseDate": "Date de sortie", "pkgSize": "Taille du package", + "installSize": "Taille d'installation", "optimizeTypography": "Optimiser la typographie", "dragPosition": "Faites glisser l'image pour la repositionner", "exportPDF0": "Taille de la page", diff --git a/app/appearance/langs/zh_CHT.json b/app/appearance/langs/zh_CHT.json index c06fc94e5..10865b6da 100644 --- a/app/appearance/langs/zh_CHT.json +++ b/app/appearance/langs/zh_CHT.json @@ -95,6 +95,7 @@ "netImg2LocalAsset": "網絡圖片轉換為本地圖片", "releaseDate": "發布日期", "pkgSize": "包大小", + "installSize": "安裝大小", "optimizeTypography": "優化排版", "dragPosition": "拖動圖像重新定位", "exportPDF0": "頁面大小", diff --git a/app/appearance/langs/zh_CN.json b/app/appearance/langs/zh_CN.json index 78b6a7024..31a8ad3c7 100644 --- a/app/appearance/langs/zh_CN.json +++ b/app/appearance/langs/zh_CN.json @@ -95,6 +95,7 @@ "netImg2LocalAsset": "网络图片转换为本地图片", "releaseDate": "发布日期", "pkgSize": "包大小", + "installSize": "安装大小", "optimizeTypography": "优化排版", "dragPosition": "上下拖动图片以调整位置", "exportPDF0": "页面大小", diff --git a/app/src/config/bazaar.ts b/app/src/config/bazaar.ts index 6029ac438..c844344ba 100644 --- a/app/src/config/bazaar.ts +++ b/app/src/config/bazaar.ts @@ -266,7 +266,7 @@ export const bazaar = {
${window.siyuan.languages.releaseDate}
${data.hUpdated}
-
${window.siyuan.languages.pkgSize}
${data.hSize}
+
${isDownloaded ? window.siyuan.languages.installSize : window.siyuan.languages.pkgSize}
${isDownloaded ? data.hInstallSize : data.hSize}
diff --git a/app/src/types/index.d.ts b/app/src/types/index.d.ts index 196f584b9..afeb9238b 100644 --- a/app/src/types/index.d.ts +++ b/app/src/types/index.d.ts @@ -495,5 +495,6 @@ declare interface IBazaarItem { version: string modes: string[] hSize: string + hInstallSize: string hUpdated: string } diff --git a/kernel/bazaar/icon.go b/kernel/bazaar/icon.go index 8251ca37c..e0ce0f1c4 100644 --- a/kernel/bazaar/icon.go +++ b/kernel/bazaar/icon.go @@ -124,6 +124,8 @@ func InstalledIcons() (ret []*Icon) { continue } + installPath := filepath.Join(util.IconsPath, dirName) + icon := &Icon{} icon.Installed = true icon.Name = iconConf["name"].(string) @@ -134,10 +136,11 @@ func InstalledIcons() (ret []*Icon) { icon.PreviewURL = "/appearance/icons/" + dirName + "/preview.png" icon.PreviewURLThumb = "/appearance/icons/" + dirName + "/preview.png" icon.Updated = iconDir.ModTime().Format("2006-01-02 15:04:05") - icon.Size = iconDir.Size() - icon.HSize = humanize.Bytes(uint64(icon.Size)) icon.HUpdated = formatUpdated(icon.Updated) - readme, readErr := os.ReadFile(filepath.Join(util.IconsPath, dirName, "README.md")) + installSize, _ := util.SizeOfDirectory(installPath) + icon.InstallSize = installSize + icon.HInstallSize = humanize.Bytes(uint64(installSize)) + readme, readErr := os.ReadFile(filepath.Join(installPath, "README.md")) if nil != readErr { logging.LogWarnf("read install icon README.md failed: %s", readErr) continue diff --git a/kernel/bazaar/package.go b/kernel/bazaar/package.go index 5a000249a..27fcf52a0 100644 --- a/kernel/bazaar/package.go +++ b/kernel/bazaar/package.go @@ -50,16 +50,18 @@ type Package struct { README string `json:"readme"` - Installed bool `json:"installed"` - Outdated bool `json:"outdated"` - Current bool `json:"current"` - Updated string `json:"updated"` - Stars int `json:"stars"` - OpenIssues int `json:"openIssues"` - Size int64 `json:"size"` - HSize string `json:"hSize"` - HUpdated string `json:"hUpdated"` - Downloads int `json:"downloads"` + Installed bool `json:"installed"` + Outdated bool `json:"outdated"` + Current bool `json:"current"` + Updated string `json:"updated"` + Stars int `json:"stars"` + OpenIssues int `json:"openIssues"` + Size int64 `json:"size"` + HSize string `json:"hSize"` + InstallSize int64 `json:"installSize"` + HInstallSize string `json:"hInstallSize"` + HUpdated string `json:"hUpdated"` + Downloads int `json:"downloads"` } func WidgetJSON(widgetDirName string) (ret map[string]interface{}, err error) { diff --git a/kernel/bazaar/template.go b/kernel/bazaar/template.go index 57fd6098b..6fd9185a7 100644 --- a/kernel/bazaar/template.go +++ b/kernel/bazaar/template.go @@ -124,6 +124,8 @@ func InstalledTemplates() (ret []*Template) { continue } + installPath := filepath.Join(util.DataDir, "templates", dirName) + template := &Template{} template.Installed = true template.Name = templateConf["name"].(string) @@ -134,10 +136,11 @@ func InstalledTemplates() (ret []*Template) { template.PreviewURL = "/templates/" + dirName + "/preview.png" template.PreviewURLThumb = "/templates/" + dirName + "/preview.png" template.Updated = templateDir.ModTime().Format("2006-01-02 15:04:05") - template.Size = templateDir.Size() - template.HSize = humanize.Bytes(uint64(template.Size)) template.HUpdated = formatUpdated(template.Updated) - readme, readErr := os.ReadFile(filepath.Join(util.DataDir, "templates", dirName, "README.md")) + installSize, _ := util.SizeOfDirectory(installPath) + template.InstallSize = installSize + template.HInstallSize = humanize.Bytes(uint64(installSize)) + readme, readErr := os.ReadFile(filepath.Join(installPath, "README.md")) if nil != readErr { logging.LogWarnf("read install template README.md failed: %s", readErr) continue diff --git a/kernel/bazaar/theme.go b/kernel/bazaar/theme.go index 3068a42d9..be03908d9 100644 --- a/kernel/bazaar/theme.go +++ b/kernel/bazaar/theme.go @@ -126,6 +126,8 @@ func InstalledThemes() (ret []*Theme) { continue } + installPath := filepath.Join(util.ThemesPath, dirName) + theme := &Theme{} theme.Installed = true theme.Name = themeConf["name"].(string) @@ -137,10 +139,11 @@ func InstalledThemes() (ret []*Theme) { theme.PreviewURL = "/appearance/themes/" + dirName + "/preview.png" theme.PreviewURLThumb = "/appearance/themes/" + dirName + "/preview.png" theme.Updated = themeDir.ModTime().Format("2006-01-02 15:04:05") - theme.Size = themeDir.Size() - theme.HSize = humanize.Bytes(uint64(theme.Size)) theme.HUpdated = formatUpdated(theme.Updated) - readme, readErr := os.ReadFile(filepath.Join(util.ThemesPath, dirName, "README.md")) + installSize, _ := util.SizeOfDirectory(installPath) + theme.InstallSize = installSize + theme.HInstallSize = humanize.Bytes(uint64(installSize)) + readme, readErr := os.ReadFile(filepath.Join(installPath, "README.md")) if nil != readErr { logging.LogWarnf("read install theme README.md failed: %s", readErr) continue diff --git a/kernel/bazaar/widget.go b/kernel/bazaar/widget.go index db3695fc1..2b176acc8 100644 --- a/kernel/bazaar/widget.go +++ b/kernel/bazaar/widget.go @@ -122,6 +122,8 @@ func InstalledWidgets() (ret []*Widget) { continue } + installPath := filepath.Join(util.DataDir, "widgets", dirName) + widget := &Widget{} widget.Installed = true widget.Name = widgetConf["name"].(string) @@ -132,10 +134,11 @@ func InstalledWidgets() (ret []*Widget) { widget.PreviewURL = "/widgets/" + dirName + "/preview.png" widget.PreviewURLThumb = "/widgets/" + dirName + "/preview.png" widget.Updated = widgetDir.ModTime().Format("2006-01-02 15:04:05") - widget.Size = widgetDir.Size() - widget.HSize = humanize.Bytes(uint64(widget.Size)) widget.HUpdated = formatUpdated(widget.Updated) - readme, readErr := os.ReadFile(filepath.Join(util.DataDir, "widgets", dirName, "README.md")) + installSize, _ := util.SizeOfDirectory(installPath) + widget.InstallSize = installSize + widget.HInstallSize = humanize.Bytes(uint64(installSize)) + readme, readErr := os.ReadFile(filepath.Join(installPath, "README.md")) if nil != readErr { logging.LogWarnf("read install widget README.md failed: %s", readErr) continue diff --git a/kernel/model/assets.go b/kernel/model/assets.go index f1461899c..076420bc6 100644 --- a/kernel/model/assets.go +++ b/kernel/model/assets.go @@ -288,7 +288,7 @@ func uploadCloud(sqlAssets []*sql.Asset) (err error) { if fi, statErr := os.Stat(absAsset); nil != statErr { logging.LogErrorf("stat file [%s] failed: %s", absAsset, statErr) return statErr - } else if util.CloudSingleFileMaxSizeLimit/10 <= fi.Size() { + } else if 10*1024*1024 <= fi.Size() { logging.LogWarnf("file [%s] larger than 10MB, ignore uploading it", absAsset) continue } diff --git a/kernel/util/file.go b/kernel/util/file.go index 6f6e61758..174db57d0 100644 --- a/kernel/util/file.go +++ b/kernel/util/file.go @@ -190,23 +190,14 @@ func IsSubFolder(parent, sub string) bool { return false } -const CloudSingleFileMaxSizeLimit = 96 * 1000 * 1000 - -func SizeOfDirectory(path string, includeBigFile bool) (int64, error) { - var size int64 - err := filepath.Walk(path, func(_ string, info os.FileInfo, err error) error { +func SizeOfDirectory(path string) (size int64, err error) { + err = filepath.Walk(path, func(_ string, info os.FileInfo, err error) error { if nil != err { return err } if !info.IsDir() { s := info.Size() - if CloudSingleFileMaxSizeLimit < s { - if includeBigFile { - size += s - } - } else { - size += s - } + size += s } else { size += 4096 } @@ -215,7 +206,7 @@ func SizeOfDirectory(path string, includeBigFile bool) (int64, error) { if nil != err { logging.LogErrorf("size of dir [%s] failed: %s", path, err) } - return size, err + return } func IsReservedFilename(baseName string) bool { diff --git a/kernel/util/runtime.go b/kernel/util/runtime.go index ceedb265c..5445c3aa2 100644 --- a/kernel/util/runtime.go +++ b/kernel/util/runtime.go @@ -41,7 +41,7 @@ const ( ) func logBootInfo() { - s, _ := SizeOfDirectory(DataDir, true) + s, _ := SizeOfDirectory(DataDir) dataDirSize := humanize.Bytes(uint64(s)) logging.LogInfof("kernel is booting:\n"+