From 86f31a5d21666c265eb3d489c809c1a93ec48c5f Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Tue, 14 Jun 2022 11:38:36 +0800 Subject: [PATCH 1/7] =?UTF-8?q?:art:=20=E6=95=B0=E6=8D=AE=E5=BF=AB?= =?UTF-8?q?=E7=85=A7=20https://github.com/siyuan-note/siyuan/issues/5159?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel/api/repo.go | 6 ++++-- kernel/go.mod | 2 +- kernel/go.sum | 4 ++-- kernel/model/repository.go | 14 ++------------ 4 files changed, 9 insertions(+), 17 deletions(-) diff --git a/kernel/api/repo.go b/kernel/api/repo.go index 2374ac025..2d3d24cac 100644 --- a/kernel/api/repo.go +++ b/kernel/api/repo.go @@ -55,14 +55,16 @@ func getRepoIndexLogs(c *gin.Context) { } page := arg["page"].(float64) - logs, err := model.GetRepoIndexLogs(int(page)) + logs, pageCount, totalCount, err := model.GetRepoIndexLogs(int(page)) if nil != err { ret.Code = -1 ret.Msg = err.Error() return } ret.Data = map[string]interface{}{ - "logs": logs, + "logs": logs, + "pageCount": pageCount, + "totalCount": totalCount, } } diff --git a/kernel/go.mod b/kernel/go.mod index dcc882d4d..28944c03a 100644 --- a/kernel/go.mod +++ b/kernel/go.mod @@ -40,7 +40,7 @@ require ( github.com/patrickmn/go-cache v2.1.0+incompatible github.com/qiniu/go-sdk/v7 v7.13.0 github.com/radovskyb/watcher v1.0.7 - github.com/siyuan-note/dejavu v0.0.0-20220613154907-7c4058d9f1e1 + github.com/siyuan-note/dejavu v0.0.0-20220614033429-787e55760d7e github.com/siyuan-note/encryption v0.0.0-20220612074546-f1dd94fe8676 github.com/vmihailenco/msgpack/v5 v5.3.5 github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 diff --git a/kernel/go.sum b/kernel/go.sum index 50520a995..5ec34c4b2 100644 --- a/kernel/go.sum +++ b/kernel/go.sum @@ -419,8 +419,8 @@ github.com/shurcooL/httpfs v0.0.0-20190707220628-8d4bc4ba7749/go.mod h1:ZY1cvUeJ github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/shurcooL/vfsgen v0.0.0-20200824052919-0d455de96546/go.mod h1:TrYk7fJVaAttu97ZZKrO9UbRa8izdowaMIZcxYMbVaw= github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -github.com/siyuan-note/dejavu v0.0.0-20220613154907-7c4058d9f1e1 h1:Z0Q4sjonCyTc0SHor86LM+oP6DM8wL6Xx+BKtReees4= -github.com/siyuan-note/dejavu v0.0.0-20220613154907-7c4058d9f1e1/go.mod h1:Oa/Y6fvTUCg8h9/t6GNWXiu8T7aQri/ZvyDRygnlikI= +github.com/siyuan-note/dejavu v0.0.0-20220614033429-787e55760d7e h1:cvgb8q8L2vKV9PI7dDMtOI7bsZ9YEWhfYHn5Nd6ijVY= +github.com/siyuan-note/dejavu v0.0.0-20220614033429-787e55760d7e/go.mod h1:Oa/Y6fvTUCg8h9/t6GNWXiu8T7aQri/ZvyDRygnlikI= github.com/siyuan-note/encryption v0.0.0-20220612074546-f1dd94fe8676 h1:QB9TjJQFhXhZ6dAtPpY02DlzHAQm1C+WqZq6OadG8mI= github.com/siyuan-note/encryption v0.0.0-20220612074546-f1dd94fe8676/go.mod h1:H8fyqqAbp9XreANjeSbc72zEdFfKTXYN34tc1TjZwtw= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= diff --git a/kernel/model/repository.go b/kernel/model/repository.go index eae8179c8..2992d5d9d 100644 --- a/kernel/model/repository.go +++ b/kernel/model/repository.go @@ -30,17 +30,7 @@ import ( "github.com/siyuan-note/siyuan/kernel/util" ) -func GetRepoFile(id string) (ret []byte, err error) { - //repo, err := dejavu.NewRepo(util.DataDir, util.RepoDir, Conf.Repo.Key) - //if nil != err { - // util.LogErrorf("init repo failed: %s", err) - // return - //} - - return -} - -func GetRepoIndexLogs(page int) (logs []*dejavu.Log, err error) { +func GetRepoIndexLogs(page int) (logs []*dejavu.Log, pageCount, totalCount int, err error) { repo, err := dejavu.NewRepo(util.DataDir, util.RepoDir, Conf.Repo.Key) if nil != err { util.LogErrorf("init repo failed: %s", err) @@ -48,7 +38,7 @@ func GetRepoIndexLogs(page int) (logs []*dejavu.Log, err error) { } page-- // 从 0 开始 - logs, err = repo.GetIndexLogs(page, 32) + logs, pageCount, totalCount, err = repo.GetIndexLogs(page, 32) if nil != err { util.LogErrorf("get repo index logs failed: %s", err) return From be92312be29d5e46e21929820d684126373884a6 Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Tue, 14 Jun 2022 11:52:51 +0800 Subject: [PATCH 2/7] =?UTF-8?q?:art:=20=E6=95=B0=E6=8D=AE=E5=BF=AB?= =?UTF-8?q?=E7=85=A7=20https://github.com/siyuan-note/siyuan/issues/5159?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel/go.mod | 3 ++- kernel/go.sum | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/kernel/go.mod b/kernel/go.mod index 28944c03a..e7d4cbef3 100644 --- a/kernel/go.mod +++ b/kernel/go.mod @@ -40,7 +40,7 @@ require ( github.com/patrickmn/go-cache v2.1.0+incompatible github.com/qiniu/go-sdk/v7 v7.13.0 github.com/radovskyb/watcher v1.0.7 - github.com/siyuan-note/dejavu v0.0.0-20220614033429-787e55760d7e + github.com/siyuan-note/dejavu v0.0.0-20220614034547-ec837e2de9a3 github.com/siyuan-note/encryption v0.0.0-20220612074546-f1dd94fe8676 github.com/vmihailenco/msgpack/v5 v5.3.5 github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 @@ -106,6 +106,7 @@ require ( replace github.com/mattn/go-sqlite3 => github.com/88250/go-sqlite3 v1.14.13-0.20220412041952-88c3aaa8595e +//replace github.com/siyuan-note/dejavu => D:\88250\dejavu //replace github.com/88250/lute => D:\gogogo\src\github.com\88250\lute //replace github.com/88250/enumfonts => D:\88250\enumfonts //replace github.com/88250/pdfcpu => D:\88250\pdfcpu diff --git a/kernel/go.sum b/kernel/go.sum index 5ec34c4b2..b109c08c3 100644 --- a/kernel/go.sum +++ b/kernel/go.sum @@ -419,8 +419,8 @@ github.com/shurcooL/httpfs v0.0.0-20190707220628-8d4bc4ba7749/go.mod h1:ZY1cvUeJ github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/shurcooL/vfsgen v0.0.0-20200824052919-0d455de96546/go.mod h1:TrYk7fJVaAttu97ZZKrO9UbRa8izdowaMIZcxYMbVaw= github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -github.com/siyuan-note/dejavu v0.0.0-20220614033429-787e55760d7e h1:cvgb8q8L2vKV9PI7dDMtOI7bsZ9YEWhfYHn5Nd6ijVY= -github.com/siyuan-note/dejavu v0.0.0-20220614033429-787e55760d7e/go.mod h1:Oa/Y6fvTUCg8h9/t6GNWXiu8T7aQri/ZvyDRygnlikI= +github.com/siyuan-note/dejavu v0.0.0-20220614034547-ec837e2de9a3 h1:z5QeeeMNXvtuVNue7llW9f5DNe01ir/PRJIFNKFRTJc= +github.com/siyuan-note/dejavu v0.0.0-20220614034547-ec837e2de9a3/go.mod h1:Oa/Y6fvTUCg8h9/t6GNWXiu8T7aQri/ZvyDRygnlikI= github.com/siyuan-note/encryption v0.0.0-20220612074546-f1dd94fe8676 h1:QB9TjJQFhXhZ6dAtPpY02DlzHAQm1C+WqZq6OadG8mI= github.com/siyuan-note/encryption v0.0.0-20220612074546-f1dd94fe8676/go.mod h1:H8fyqqAbp9XreANjeSbc72zEdFfKTXYN34tc1TjZwtw= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= From 14f8ba10a90726e7da0dbf5391cbb7b2cba280dc Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Tue, 14 Jun 2022 11:58:14 +0800 Subject: [PATCH 3/7] =?UTF-8?q?:art:=20=E6=95=B0=E6=8D=AE=E5=BF=AB?= =?UTF-8?q?=E7=85=A7=20https://github.com/siyuan-note/siyuan/issues/5159?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel/model/repository.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/model/repository.go b/kernel/model/repository.go index 2992d5d9d..9f384268a 100644 --- a/kernel/model/repository.go +++ b/kernel/model/repository.go @@ -103,7 +103,7 @@ var checkoutCallbacks = map[string]dejavu.Callback{ context.(func(msg string))(arg.(*entity.File).Path) }, "removeFile": func(context, arg interface{}, err error) { - context.(func(msg string))(arg.(*entity.File).Path) + context.(func(msg string))(arg.(string)) }, } From 02b0c553e3cd5193e211bc786c1456987c858276 Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Tue, 14 Jun 2022 15:06:41 +0800 Subject: [PATCH 4/7] =?UTF-8?q?:bug:=20=E6=B8=85=E7=90=86=E6=9C=AA?= =?UTF-8?q?=E5=BC=95=E7=94=A8=E8=B5=84=E6=BA=90=E6=97=B6=E6=9C=AA=E5=BF=BD?= =?UTF-8?q?=E7=95=A5=20`custom-data-assets`=20=E5=B1=9E=E6=80=A7=E5=AE=9A?= =?UTF-8?q?=E4=B9=89=E7=9A=84=E8=B5=84=E6=BA=90=E6=96=87=E4=BB=B6=20Fix=20?= =?UTF-8?q?https://github.com/siyuan-note/siyuan/issues/4122?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel/model/assets.go | 6 +++++- kernel/sql/database.go | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/kernel/model/assets.go b/kernel/model/assets.go index 4d20a0eda..15479fcda 100644 --- a/kernel/model/assets.go +++ b/kernel/model/assets.go @@ -550,7 +550,11 @@ func assetsLinkDestsInTree(tree *parse.Tree) (ret []string) { ret = append(ret, dest) } else { if ast.NodeWidget == n.Type { - dataAssets := n.IALAttr("data-assets") + dataAssets := n.IALAttr("custom-data-assets") + if "" == dataAssets { + // 兼容两种属性名 custom-data-assets 和 data-assets https://github.com/siyuan-note/siyuan/issues/4122#issuecomment-1154796568 + dataAssets = n.IALAttr("data-assets") + } if "" == dataAssets || !isRelativePath([]byte(dataAssets)) { return ast.WalkContinue } diff --git a/kernel/sql/database.go b/kernel/sql/database.go index b241b4294..a7b541847 100644 --- a/kernel/sql/database.go +++ b/kernel/sql/database.go @@ -578,7 +578,7 @@ func buildSpanFromNode(n *ast.Node, tree *parse.Tree, rootID, boxID, p string) ( var src []byte for _, attr := range nodes[0].Attr { - if "src" == attr.Key || "data-assets" == attr.Key { + if "src" == attr.Key || "data-assets" == attr.Key || "custom-data-assets" == attr.Key { src = gulu.Str.ToBytes(attr.Val) break } From cb206b9a649e89160987b4d9986fb16e8a4ba115 Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Tue, 14 Jun 2022 15:41:21 +0800 Subject: [PATCH 5/7] =?UTF-8?q?:art:=20=E6=95=B0=E6=8D=AE=E5=BF=AB?= =?UTF-8?q?=E7=85=A7=20https://github.com/siyuan-note/siyuan/issues/5159?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/appearance/langs/en_US.json | 2 +- app/appearance/langs/fr_FR.json | 2 +- app/appearance/langs/zh_CHT.json | 2 +- app/appearance/langs/zh_CN.json | 2 +- kernel/model/repository.go | 9 +++++++-- 5 files changed, 11 insertions(+), 6 deletions(-) diff --git a/app/appearance/langs/en_US.json b/app/appearance/langs/en_US.json index 10766aa7c..68a7821e1 100644 --- a/app/appearance/langs/en_US.json +++ b/app/appearance/langs/en_US.json @@ -768,7 +768,7 @@ "23": "Backup failed: %s", "24": "Failed to obtain cloud sync info: %s", "25": "The attribute name only supports English letters and digits", - "26": "Generate auth key failed", + "26": "Please initialize the data repo key first in [Settings - About - Data repo key]", "27": "Data integrity check failed", "28": "Incorrect end-to-end encryption password, unable to decrypt data", "29": "This feature requires paid subscription (If you have subscribed, please refresh or log in again in settings - account)", diff --git a/app/appearance/langs/fr_FR.json b/app/appearance/langs/fr_FR.json index 1c55bdbd1..beefda193 100644 --- a/app/appearance/langs/fr_FR.json +++ b/app/appearance/langs/fr_FR.json @@ -768,7 +768,7 @@ "23": "La sauvegarde a échoué : %s", "24": "Impossible d'obtenir les informations de synchronisation du Cloud : %s", "25": "Le nom de l'attribut ne supporte que les lettres et les chiffres anglais.", - "26": "La génération de la clé d'authentification a échoué", + "26": "Veuillez d'abord initialiser la clé du référentiel de données dans [Paramètres - À propos - Clé du référentiel de données]", "27": "La vérification de l'intégrité des données a échoué", "28": "Mot de passe de cryptage de bout en bout incorrect, impossible de décrypter les données", "29": "Cette fonctionnalité nécessite un abonnement payant (Si vous êtes déjà abonné, Rafraîchissez ou connectez - vous à nouveau dans Paramètres - compte)", diff --git a/app/appearance/langs/zh_CHT.json b/app/appearance/langs/zh_CHT.json index 500adbd0c..58e2840db 100644 --- a/app/appearance/langs/zh_CHT.json +++ b/app/appearance/langs/zh_CHT.json @@ -768,7 +768,7 @@ "23": "備份失敗:%s", "24": "獲取雲端同步資訊失敗:%s", "25": "屬性名僅支援英文字母和阿拉伯數字", - "26": "生成認證金鑰失敗", + "26": "請先在 [設置 - 關於 - 數據倉庫密鑰] 中初始化數據倉庫密鑰", "27": "數據完整性校驗失敗", "28": "端到端加密密碼不正確,無法解密數據", "29": "該功能需要付費訂閱(如果你已經訂閱,請在設定-帳號中重繪或者重新登入)", diff --git a/app/appearance/langs/zh_CN.json b/app/appearance/langs/zh_CN.json index e5b79a175..7109415d9 100644 --- a/app/appearance/langs/zh_CN.json +++ b/app/appearance/langs/zh_CN.json @@ -769,7 +769,7 @@ "23": "备份失败:%s", "24": "获取云端同步信息失败:%s", "25": "属性名仅支持英文字母和阿拉伯数字", - "26": "生成认证密钥失败", + "26": "请先在 [设置 - 关于 - 数据仓库密钥] 中初始化数据仓库密钥", "27": "数据完整性校验失败", "28": "端到端加密密码不正确,无法解密数据", "29": "该功能需要付费订阅(如果你已经订阅,请在 设置 - 账号中刷新或者重新登录)", diff --git a/kernel/model/repository.go b/kernel/model/repository.go index 9f384268a..82e6079c2 100644 --- a/kernel/model/repository.go +++ b/kernel/model/repository.go @@ -31,6 +31,11 @@ import ( ) func GetRepoIndexLogs(page int) (logs []*dejavu.Log, pageCount, totalCount int, err error) { + if 1 > len(Conf.Repo.Key) { + err = errors.New(Conf.Language(26)) + return + } + repo, err := dejavu.NewRepo(util.DataDir, util.RepoDir, Conf.Repo.Key) if nil != err { util.LogErrorf("init repo failed: %s", err) @@ -109,7 +114,7 @@ var checkoutCallbacks = map[string]dejavu.Callback{ func CheckoutRepo(id string) (err error) { if 1 > len(Conf.Repo.Key) { - err = errors.New("repo key is nil") + err = errors.New(Conf.Language(26)) return } @@ -141,7 +146,7 @@ var indexCallbacks = map[string]dejavu.Callback{ func IndexRepo(memo string) (err error) { if 1 > len(Conf.Repo.Key) { - err = errors.New("repo key is nil") + err = errors.New(Conf.Language(26)) return } From f5283f0330950cd882b47abb710e25f4574dd47e Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Tue, 14 Jun 2022 15:53:13 +0800 Subject: [PATCH 6/7] =?UTF-8?q?:art:=20=E6=95=B0=E6=8D=AE=E5=BF=AB?= =?UTF-8?q?=E7=85=A7=20https://github.com/siyuan-note/siyuan/issues/5159?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel/go.mod | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/go.mod b/kernel/go.mod index e7d4cbef3..4b96a6344 100644 --- a/kernel/go.mod +++ b/kernel/go.mod @@ -40,7 +40,7 @@ require ( github.com/patrickmn/go-cache v2.1.0+incompatible github.com/qiniu/go-sdk/v7 v7.13.0 github.com/radovskyb/watcher v1.0.7 - github.com/siyuan-note/dejavu v0.0.0-20220614034547-ec837e2de9a3 + github.com/siyuan-note/dejavu v0.0.0-20220614075107-2c74319dce59 github.com/siyuan-note/encryption v0.0.0-20220612074546-f1dd94fe8676 github.com/vmihailenco/msgpack/v5 v5.3.5 github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 From 70adf3860ee1553c3a710c02388a2f1f560d7399 Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Tue, 14 Jun 2022 18:24:20 +0800 Subject: [PATCH 7/7] =?UTF-8?q?:art:=20=E6=95=B0=E6=8D=AE=E5=BF=AB?= =?UTF-8?q?=E7=85=A7=20https://github.com/siyuan-note/siyuan/issues/5159?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel/go.mod | 2 +- kernel/go.sum | 4 ++-- kernel/model/repository.go | 37 ++++++++++++++++++++++++++++++++----- 3 files changed, 35 insertions(+), 8 deletions(-) diff --git a/kernel/go.mod b/kernel/go.mod index 4b96a6344..68a12c021 100644 --- a/kernel/go.mod +++ b/kernel/go.mod @@ -40,7 +40,7 @@ require ( github.com/patrickmn/go-cache v2.1.0+incompatible github.com/qiniu/go-sdk/v7 v7.13.0 github.com/radovskyb/watcher v1.0.7 - github.com/siyuan-note/dejavu v0.0.0-20220614075107-2c74319dce59 + github.com/siyuan-note/dejavu v0.0.0-20220614100921-f1d318f3dd6b github.com/siyuan-note/encryption v0.0.0-20220612074546-f1dd94fe8676 github.com/vmihailenco/msgpack/v5 v5.3.5 github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 diff --git a/kernel/go.sum b/kernel/go.sum index b109c08c3..2189b41d4 100644 --- a/kernel/go.sum +++ b/kernel/go.sum @@ -419,8 +419,8 @@ github.com/shurcooL/httpfs v0.0.0-20190707220628-8d4bc4ba7749/go.mod h1:ZY1cvUeJ github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/shurcooL/vfsgen v0.0.0-20200824052919-0d455de96546/go.mod h1:TrYk7fJVaAttu97ZZKrO9UbRa8izdowaMIZcxYMbVaw= github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -github.com/siyuan-note/dejavu v0.0.0-20220614034547-ec837e2de9a3 h1:z5QeeeMNXvtuVNue7llW9f5DNe01ir/PRJIFNKFRTJc= -github.com/siyuan-note/dejavu v0.0.0-20220614034547-ec837e2de9a3/go.mod h1:Oa/Y6fvTUCg8h9/t6GNWXiu8T7aQri/ZvyDRygnlikI= +github.com/siyuan-note/dejavu v0.0.0-20220614100921-f1d318f3dd6b h1:GyLlhQQsgfVFzyWB+OB1wCRlyzBhI4EkczC0YK9cRHc= +github.com/siyuan-note/dejavu v0.0.0-20220614100921-f1d318f3dd6b/go.mod h1:Oa/Y6fvTUCg8h9/t6GNWXiu8T7aQri/ZvyDRygnlikI= github.com/siyuan-note/encryption v0.0.0-20220612074546-f1dd94fe8676 h1:QB9TjJQFhXhZ6dAtPpY02DlzHAQm1C+WqZq6OadG8mI= github.com/siyuan-note/encryption v0.0.0-20220612074546-f1dd94fe8676/go.mod h1:H8fyqqAbp9XreANjeSbc72zEdFfKTXYN34tc1TjZwtw= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= diff --git a/kernel/model/repository.go b/kernel/model/repository.go index 82e6079c2..ce6207d73 100644 --- a/kernel/model/repository.go +++ b/kernel/model/repository.go @@ -21,6 +21,7 @@ import ( "encoding/hex" "errors" "os" + "time" "github.com/88250/gulu" "github.com/siyuan-note/dejavu" @@ -45,6 +46,12 @@ func GetRepoIndexLogs(page int) (logs []*dejavu.Log, pageCount, totalCount int, page-- // 从 0 开始 logs, pageCount, totalCount, err = repo.GetIndexLogs(page, 32) if nil != err { + if dejavu.ErrNotFoundIndex == err { + logs = []*dejavu.Log{} + err = nil + return + } + util.LogErrorf("get repo index logs failed: %s", err) return } @@ -124,11 +131,31 @@ func CheckoutRepo(id string) (err error) { return } - syncLock.Lock() - defer syncLock.Unlock() filesys.ReleaseAllFileLocks() + writingDataLock.Lock() + defer writingDataLock.Unlock() + + CloseWatchAssets() + defer WatchAssets() + + // 恢复快照时自动暂停同步,避免刚刚恢复后的数据又被同步覆盖 + syncEnabled := Conf.Sync.Enabled + Conf.Sync.Enabled = false + Conf.Save() + err = repo.Checkout(id, util.PushEndlessProgress, checkoutCallbacks) - util.PushClearProgress() + if nil != err { + util.PushClearProgress() + return + } + + RefreshFileTree() + if syncEnabled { + func() { + time.Sleep(5 * time.Second) + util.PushMsg(Conf.Language(134), 0) + }() + } return } @@ -163,9 +190,9 @@ func IndexRepo(memo string) (err error) { } WaitForWritingFiles() - syncLock.Lock() - defer syncLock.Unlock() filesys.ReleaseAllFileLocks() + writingDataLock.Lock() + defer writingDataLock.Unlock() _, err = repo.Index(memo, util.PushEndlessProgress, indexCallbacks) util.PushClearProgress() return