From f3de2e9292978ee08bac8d07dae48de1b8e25298 Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Fri, 21 Apr 2023 20:50:24 +0800 Subject: [PATCH 1/4] :art: Support downloading cloud data snapshots to local on demand https://github.com/siyuan-note/siyuan/issues/8057 --- kernel/api/repo.go | 7 ++++--- kernel/go.mod | 2 +- kernel/go.sum | 6 ++++-- kernel/model/repository.go | 4 ++-- 4 files changed, 11 insertions(+), 8 deletions(-) diff --git a/kernel/api/repo.go b/kernel/api/repo.go index 6f63e8f68..d3f4ea984 100644 --- a/kernel/api/repo.go +++ b/kernel/api/repo.go @@ -186,9 +186,9 @@ func getCloudRepoSnapshots(c *gin.Context) { return } - marker := arg["marker"].(string) + page := int(arg["page"].(float64)) - snapshots, nextMarker, err := model.GetCloudRepoSnapshots(marker) + snapshots, pageCount, totalCount, err := model.GetCloudRepoSnapshots(page) if nil != err { ret.Code = -1 ret.Msg = err.Error() @@ -197,7 +197,8 @@ func getCloudRepoSnapshots(c *gin.Context) { ret.Data = map[string]interface{}{ "snapshots": snapshots, - "nextMarker": nextMarker, + "pageCount": pageCount, + "totalCount": totalCount, } } diff --git a/kernel/go.mod b/kernel/go.mod index 7545e4fae..8803844f7 100644 --- a/kernel/go.mod +++ b/kernel/go.mod @@ -44,7 +44,7 @@ require ( github.com/radovskyb/watcher v1.0.7 github.com/sashabaranov/go-gpt3 v1.4.0 github.com/shirou/gopsutil/v3 v3.23.2 - github.com/siyuan-note/dejavu v0.0.0-20230421090246-20abbaa745d6 + github.com/siyuan-note/dejavu v0.0.0-20230421124852-3096ef1f7c1a github.com/siyuan-note/encryption v0.0.0-20220713091850-5ecd92177b75 github.com/siyuan-note/eventbus v0.0.0-20230216103454-41885eac6c2b github.com/siyuan-note/filelock v0.0.0-20230417044524-125ee78b5cc9 diff --git a/kernel/go.sum b/kernel/go.sum index 1d2a7f57b..1ff7fd2cd 100644 --- a/kernel/go.sum +++ b/kernel/go.sum @@ -277,8 +277,10 @@ github.com/shopspring/decimal v1.3.1 h1:2Usl1nmF/WZucqkFZhnfFYxxxu8LG21F6nPQBE5g github.com/shopspring/decimal v1.3.1/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= github.com/shurcooL/gofontwoff v0.0.0-20181114050219-180f79e6909d h1:lvCTyBbr36+tqMccdGMwuEU+hjux/zL6xSmf5S9ITaA= github.com/shurcooL/gofontwoff v0.0.0-20181114050219-180f79e6909d/go.mod h1:05UtEgK5zq39gLST6uB0cf3NEHjETfB4Fgr3Gx5R9Vw= -github.com/siyuan-note/dejavu v0.0.0-20230421090246-20abbaa745d6 h1:s2BtWsabaCqDlS1D5A7zx63OCzpKjCW6Ke6rwpYhXCg= -github.com/siyuan-note/dejavu v0.0.0-20230421090246-20abbaa745d6/go.mod h1:R3PnH4Y9/0TollG4g0tX7jGW7lvhNIEL9hYi5zQ4+sI= +github.com/siyuan-note/dejavu v0.0.0-20230421122923-cb79db5323e0 h1:iaqx8D2somQMoY5khaUTeUvL8j5geCKNiXH2cGvGSSU= +github.com/siyuan-note/dejavu v0.0.0-20230421122923-cb79db5323e0/go.mod h1:R3PnH4Y9/0TollG4g0tX7jGW7lvhNIEL9hYi5zQ4+sI= +github.com/siyuan-note/dejavu v0.0.0-20230421124852-3096ef1f7c1a h1:peB9ArOWWcRim5D76DdFMEMEbj4rBtClnRCnw+BmWMA= +github.com/siyuan-note/dejavu v0.0.0-20230421124852-3096ef1f7c1a/go.mod h1:R3PnH4Y9/0TollG4g0tX7jGW7lvhNIEL9hYi5zQ4+sI= github.com/siyuan-note/encryption v0.0.0-20220713091850-5ecd92177b75 h1:Bi7/7f29LW+Fm0cHc0J1NO1cZqyJwljSWVmfOqVZgaE= github.com/siyuan-note/encryption v0.0.0-20220713091850-5ecd92177b75/go.mod h1:H8fyqqAbp9XreANjeSbc72zEdFfKTXYN34tc1TjZwtw= github.com/siyuan-note/eventbus v0.0.0-20230216103454-41885eac6c2b h1:828lTUW2C0uNiolODqoACu7J8sDUzswD4Xo04mUombg= diff --git a/kernel/model/repository.go b/kernel/model/repository.go index 4adc7ebb4..b598fcbe6 100644 --- a/kernel/model/repository.go +++ b/kernel/model/repository.go @@ -672,7 +672,7 @@ func GetCloudRepoTagSnapshots() (ret []*dejavu.Log, err error) { return } -func GetCloudRepoSnapshots(marker string) (ret []*dejavu.Log, nextMarker string, err error) { +func GetCloudRepoSnapshots(page int) (ret []*dejavu.Log, pageCount, totalCount int, err error) { ret = []*dejavu.Log{} if 1 > len(Conf.Repo.Key) { err = errors.New(Conf.Language(26)) @@ -684,7 +684,7 @@ func GetCloudRepoSnapshots(marker string) (ret []*dejavu.Log, nextMarker string, return } - logs, nextMarker, err := repo.GetCloudRepoLogs(marker) + logs, pageCount, totalCount, err := repo.GetCloudRepoLogs(page) if nil != err { return } From 171fc40dea879cc48cf962ff0fc761238b01adee Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Fri, 21 Apr 2023 20:51:28 +0800 Subject: [PATCH 2/4] :art: Support downloading cloud data snapshots to local on demand https://github.com/siyuan-note/siyuan/issues/8057 --- app/src/history/history.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/app/src/history/history.ts b/app/src/history/history.ts index 88a071ff6..908650397 100644 --- a/app/src/history/history.ts +++ b/app/src/history/history.ts @@ -146,7 +146,12 @@ const renderRepo = (element: Element, currentPage: number) => { renderRepoItem(response, element, "cloudTag"); }); } else if (currentPage === -3) { - fetchPost("/api/repo/getCloudRepoSnapshots", {marker: ""}, (response) => { + fetchPost("/api/repo/getCloudRepoSnapshots", {page: currentPage}, (response) => { + if (currentPage < response.data.pageCount) { + nextElement.removeAttribute("disabled"); + } else { + nextElement.setAttribute("disabled", "disabled"); + } renderRepoItem(response, element, "cloud"); }); } From 3f6421cf1702482e1204f66f9741243fc7a1851c Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Fri, 21 Apr 2023 21:31:44 +0800 Subject: [PATCH 3/4] :art: Support downloading cloud data snapshots to local on demand https://github.com/siyuan-note/siyuan/issues/8057 --- kernel/go.mod | 2 +- kernel/go.sum | 6 ++---- kernel/model/repository.go | 9 ++++++++- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/kernel/go.mod b/kernel/go.mod index 8803844f7..04952bc72 100644 --- a/kernel/go.mod +++ b/kernel/go.mod @@ -44,7 +44,7 @@ require ( github.com/radovskyb/watcher v1.0.7 github.com/sashabaranov/go-gpt3 v1.4.0 github.com/shirou/gopsutil/v3 v3.23.2 - github.com/siyuan-note/dejavu v0.0.0-20230421124852-3096ef1f7c1a + github.com/siyuan-note/dejavu v0.0.0-20230421133029-69679a7f4e07 github.com/siyuan-note/encryption v0.0.0-20220713091850-5ecd92177b75 github.com/siyuan-note/eventbus v0.0.0-20230216103454-41885eac6c2b github.com/siyuan-note/filelock v0.0.0-20230417044524-125ee78b5cc9 diff --git a/kernel/go.sum b/kernel/go.sum index 1ff7fd2cd..88c9e76d3 100644 --- a/kernel/go.sum +++ b/kernel/go.sum @@ -277,10 +277,8 @@ github.com/shopspring/decimal v1.3.1 h1:2Usl1nmF/WZucqkFZhnfFYxxxu8LG21F6nPQBE5g github.com/shopspring/decimal v1.3.1/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= github.com/shurcooL/gofontwoff v0.0.0-20181114050219-180f79e6909d h1:lvCTyBbr36+tqMccdGMwuEU+hjux/zL6xSmf5S9ITaA= github.com/shurcooL/gofontwoff v0.0.0-20181114050219-180f79e6909d/go.mod h1:05UtEgK5zq39gLST6uB0cf3NEHjETfB4Fgr3Gx5R9Vw= -github.com/siyuan-note/dejavu v0.0.0-20230421122923-cb79db5323e0 h1:iaqx8D2somQMoY5khaUTeUvL8j5geCKNiXH2cGvGSSU= -github.com/siyuan-note/dejavu v0.0.0-20230421122923-cb79db5323e0/go.mod h1:R3PnH4Y9/0TollG4g0tX7jGW7lvhNIEL9hYi5zQ4+sI= -github.com/siyuan-note/dejavu v0.0.0-20230421124852-3096ef1f7c1a h1:peB9ArOWWcRim5D76DdFMEMEbj4rBtClnRCnw+BmWMA= -github.com/siyuan-note/dejavu v0.0.0-20230421124852-3096ef1f7c1a/go.mod h1:R3PnH4Y9/0TollG4g0tX7jGW7lvhNIEL9hYi5zQ4+sI= +github.com/siyuan-note/dejavu v0.0.0-20230421133029-69679a7f4e07 h1:gSfQLXrr3hOriRP7r38fakauefBF/oRWvha9vG0n238= +github.com/siyuan-note/dejavu v0.0.0-20230421133029-69679a7f4e07/go.mod h1:R3PnH4Y9/0TollG4g0tX7jGW7lvhNIEL9hYi5zQ4+sI= github.com/siyuan-note/encryption v0.0.0-20220713091850-5ecd92177b75 h1:Bi7/7f29LW+Fm0cHc0J1NO1cZqyJwljSWVmfOqVZgaE= github.com/siyuan-note/encryption v0.0.0-20220713091850-5ecd92177b75/go.mod h1:H8fyqqAbp9XreANjeSbc72zEdFfKTXYN34tc1TjZwtw= github.com/siyuan-note/eventbus v0.0.0-20230216103454-41885eac6c2b h1:828lTUW2C0uNiolODqoACu7J8sDUzswD4Xo04mUombg= diff --git a/kernel/model/repository.go b/kernel/model/repository.go index b598fcbe6..06b4025d0 100644 --- a/kernel/model/repository.go +++ b/kernel/model/repository.go @@ -588,7 +588,14 @@ func DownloadCloudSnapshot(tag, id string) (err error) { } defer util.PushClearProgress() - downloadFileCount, downloadChunkCount, downloadBytes, err := repo.DownloadTagIndex(tag, id, map[string]interface{}{eventbus.CtxPushMsg: eventbus.CtxPushMsgToStatusBarAndProgress}) + + var downloadFileCount, downloadChunkCount int + var downloadBytes int64 + if "" == tag { + downloadFileCount, downloadChunkCount, downloadBytes, err = repo.DownloadIndex(id, map[string]interface{}{eventbus.CtxPushMsg: eventbus.CtxPushMsgToStatusBarAndProgress}) + } else { + downloadFileCount, downloadChunkCount, downloadBytes, err = repo.DownloadTagIndex(tag, id, map[string]interface{}{eventbus.CtxPushMsg: eventbus.CtxPushMsgToStatusBarAndProgress}) + } if nil != err { return } From 9e2f531e3b1404b60ce3a24eadcb2c5d8c823498 Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Fri, 21 Apr 2023 21:49:13 +0800 Subject: [PATCH 4/4] :art: Show abbreviated ID in data snapshot list Fix https://github.com/siyuan-note/siyuan/issues/8075 --- app/src/history/history.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/history/history.ts b/app/src/history/history.ts index 908650397..763892421 100644 --- a/app/src/history/history.ts +++ b/app/src/history/history.ts @@ -111,7 +111,7 @@ const renderRepoItem = (response: IWebSocketData, element: Element, type: string ${item.tag}
- ${item.hCreated} + ${item.id.substring(0, 7)} ${item.hCreated} ${window.siyuan.languages.fileSize} ${item.hSize} ${window.siyuan.languages.fileCount} ${item.count}`; let statHTML = "";