From 76aef4689bcd3ef3d1a21b49cf11b4dcdb7ed1db Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Tue, 7 Mar 2023 14:50:21 +0800 Subject: [PATCH] =?UTF-8?q?:bug:=20=E6=9B=B4=E6=96=B0=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E5=90=8E=E8=87=AA=E5=8A=A8=E6=89=93=E5=BC=80=E6=9C=80=E6=96=B0?= =?UTF-8?q?=E7=89=88=E7=9A=84=E7=94=A8=E6=88=B7=E6=8C=87=E5=8D=97=E9=87=8D?= =?UTF-8?q?=E5=A4=8D=20https://github.com/siyuan-note/siyuan/issues/7517?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/appearance/langs/en_US.json | 3 +- app/appearance/langs/es_ES.json | 3 +- app/appearance/langs/fr_FR.json | 3 +- app/appearance/langs/zh_CHT.json | 3 +- app/appearance/langs/zh_CN.json | 3 +- kernel/model/conf.go | 53 +++++++++++++++++++++++++++++++- kernel/task/queue.go | 1 + kernel/util/file.go | 3 ++ 8 files changed, 66 insertions(+), 6 deletions(-) diff --git a/app/appearance/langs/en_US.json b/app/appearance/langs/en_US.json index df50f6d9f..458d95b37 100644 --- a/app/appearance/langs/en_US.json +++ b/app/appearance/langs/en_US.json @@ -908,7 +908,8 @@ "task.history.generateDoc": "Execute GenerateDoc History", "task.history.database.index.commit": "Execute history database index commit", "task.database.index.embedBlock": "Execute database index embed block", - "task.reload.ui": "Execute reload UI" + "task.reload.ui": "Execute reload UI", + "task.upgrade.userGuide": "Execute upgrade user guide" }, "_trayMenu": { "showWindow": "Show Window", diff --git a/app/appearance/langs/es_ES.json b/app/appearance/langs/es_ES.json index 334716dba..cf8531e53 100644 --- a/app/appearance/langs/es_ES.json +++ b/app/appearance/langs/es_ES.json @@ -908,7 +908,8 @@ "task.history.generateDoc": "Ejecutar Historial GenerateDoc", "task.history.database.index.commit": "Ejecutar la confirmación del índice de la base de datos del historial", "task.database.index.embedBlock": "Ejecutar bloque de incrustación de índice de base de datos", - "task.reload.ui": "IU de recarga de tareas" + "task.reload.ui": "IU de recarga de tareas", + "task.upgrade.userGuide": "Ejecutar la guía de usuario de actualización", }, "_trayMenu": { "showWindow": "Mostrar ventana", diff --git a/app/appearance/langs/fr_FR.json b/app/appearance/langs/fr_FR.json index 4b53f5cd9..5ddd47df3 100644 --- a/app/appearance/langs/fr_FR.json +++ b/app/appearance/langs/fr_FR.json @@ -908,7 +908,8 @@ "task.history.generateDoc": "Exécuter l'historique de GenerateDoc", "task.history.database.index.commit": "Effectuer la validation de l'index de la base de données d'historique", "task.database.index.embedBlock": "Exécuter le bloc d'intégration d'index de base de données", - "task.reload.ui": "Interface utilisateur de rechargement de tâche" + "task.reload.ui": "Interface utilisateur de rechargement de tâche", + "task.upgrade.userGuide": "Mise à niveau de la tâche de guide utilisateur", }, "_trayMenu": { "showWindow": "Afficher la fenêtre principale", diff --git a/app/appearance/langs/zh_CHT.json b/app/appearance/langs/zh_CHT.json index 66e8d1a70..7d005c9b0 100644 --- a/app/appearance/langs/zh_CHT.json +++ b/app/appearance/langs/zh_CHT.json @@ -908,7 +908,8 @@ "task.history.generateDoc": "執行生成文件歷史", "task.history.database.index.commit": "執行歷史數據庫索引提交", "task.database.index.embedBlock": "執行數據庫索引嵌入塊", - "task.reload.ui": "執行重載界面" + "task.reload.ui": "執行重載界面", + "task.upgrade.userGuide": "執行升級用戶指南" }, "_trayMenu": { "showWindow": "顯示主窗口", diff --git a/app/appearance/langs/zh_CN.json b/app/appearance/langs/zh_CN.json index 497789203..aefbe5525 100644 --- a/app/appearance/langs/zh_CN.json +++ b/app/appearance/langs/zh_CN.json @@ -908,7 +908,8 @@ "task.history.generateDoc": "执行生成文件历史", "task.history.database.index.commit": "执行历史数据库索引提交", "task.database.index.embedBlock": "执行数据库索引嵌入块", - "task.reload.ui": "执行重载界面" + "task.reload.ui": "执行重载界面", + "task.upgrade.userGuide": "执行升级用户指南" }, "_trayMenu": { "showWindow": "显示主窗口", diff --git a/kernel/model/conf.go b/kernel/model/conf.go index 4523e09db..7bba7c3ab 100644 --- a/kernel/model/conf.go +++ b/kernel/model/conf.go @@ -19,6 +19,7 @@ package model import ( "bytes" "fmt" + "github.com/siyuan-note/siyuan/kernel/task" "os" "path/filepath" "runtime" @@ -219,9 +220,10 @@ func InitConf() { } else { logging.LogInfof("downgraded from version [%s] to [%s]", Conf.System.KernelVersion, util.Ver) } - Conf.OpenHelp = Conf.System.KernelVersion != util.Ver + Conf.System.KernelVersion = util.Ver Conf.System.IsInsider = util.IsInsider + task.AppendTask(task.UpgradeUserGuide, upgradeUserGuide) } if nil == Conf.System.NetworkProxy { Conf.System.NetworkProxy = &conf.NetworkProxy{} @@ -779,3 +781,52 @@ func clearWorkspaceTemp() { logging.LogInfof("cleared workspace temp") } + +func upgradeUserGuide() { + dirs, err := os.ReadDir(util.DataDir) + if nil != err { + logging.LogErrorf("read dir [%s] failed: %s", util.DataDir, err) + return + } + + for _, dir := range dirs { + if !IsUserGuide(dir.Name()) { + continue + } + + boxID := dir.Name() + boxDirPath := filepath.Join(util.DataDir, boxID) + boxConf := conf.NewBoxConf() + boxConfPath := filepath.Join(boxDirPath, ".siyuan", "conf.json") + if !gulu.File.IsExist(boxConfPath) { + logging.LogWarnf("found a corrupted box [%s]", boxDirPath) + continue + } + + data, readErr := filelock.ReadFile(boxConfPath) + if nil != readErr { + logging.LogErrorf("read box conf [%s] failed: %s", boxConfPath, readErr) + continue + } + if readErr = gulu.JSON.UnmarshalJSON(data, boxConf); nil != readErr { + logging.LogErrorf("parse box conf [%s] failed: %s", boxConfPath, readErr) + continue + } + + if boxConf.Closed { + continue + } + + unindex(boxID) + + if err = filelock.Remove(boxDirPath); nil != err { + return + } + p := filepath.Join(util.WorkingDir, "guide", boxID) + if err = filelock.Copy(p, boxDirPath); nil != err { + return + } + + index(boxID) + } +} diff --git a/kernel/task/queue.go b/kernel/task/queue.go index af1b3c3e0..facd623f4 100644 --- a/kernel/task/queue.go +++ b/kernel/task/queue.go @@ -93,6 +93,7 @@ const ( HistoryDatabaseIndexCommit = "task.history.database.index.commit" // 历史数据库索引提交 DatabaseIndexEmbedBlock = "task.database.index.embedBlock" // 数据库索引嵌入块 ReloadUI = "task.reload.ui" // 重载 UI + UpgradeUserGuide = "task.upgrade.userGuide" // 升级用户指南文档笔记本 ) // uniqueActions 描述了唯一的任务,即队列中只能存在一个在执行的任务。 diff --git a/kernel/util/file.go b/kernel/util/file.go index 090956dcf..8f974f153 100644 --- a/kernel/util/file.go +++ b/kernel/util/file.go @@ -194,6 +194,9 @@ func SizeOfDirectory(path string) (size int64, err error) { func DataSize() (dataSize, assetsSize int64) { filepath.Walk(DataDir, func(path string, info os.FileInfo, err error) error { if nil != err { + if os.IsNotExist(err) { + return nil + } logging.LogErrorf("size of data failed: %s", err) return io.EOF }