🎨 重建索引细节进度推送展现 https://github.com/siyuan-note/siyuan/issues/5890

This commit is contained in:
Liang Ding 2022-09-16 11:04:52 +08:00
parent 9a7f61f715
commit e52883fc3e
No known key found for this signature in database
GPG key ID: 136F30F901A2231D
9 changed files with 89 additions and 133 deletions

File diff suppressed because one or more lines are too long

View file

@ -7,7 +7,7 @@ require (
github.com/88250/css v0.1.2
github.com/88250/flock v0.8.2
github.com/88250/gulu v1.2.3-0.20220909041418-fdfa4d7380bf
github.com/88250/lute v1.7.5-0.20220915150247-57676b7312e1
github.com/88250/lute v1.7.5-0.20220916024833-cf60435b2b33
github.com/88250/pdfcpu v0.3.13
github.com/88250/vitess-sqlparser v0.0.0-20210205111146-56a2ded2aba1
github.com/ConradIrwin/font v0.0.0-20210318200717-ce8d41cc0732
@ -38,9 +38,9 @@ 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-20220909042242-acde27589097
github.com/siyuan-note/dejavu v0.0.0-20220916030034-b12760230ed4
github.com/siyuan-note/encryption v0.0.0-20220713091850-5ecd92177b75
github.com/siyuan-note/eventbus v0.0.0-20220624162334-ca7c06dc771f
github.com/siyuan-note/eventbus v0.0.0-20220916025349-3ac6e75522da
github.com/siyuan-note/filelock v0.0.0-20220720144616-011221f7e128
github.com/siyuan-note/httpclient v0.0.0-20220906125021-bb9ddffaea0e
github.com/siyuan-note/logging v0.0.0-20220717040626-f796b05ee520

View file

@ -19,8 +19,8 @@ github.com/88250/go-sqlite3 v1.14.13-0.20220714142610-fbbda1ee84f5 h1:8HdZozCsXS
github.com/88250/go-sqlite3 v1.14.13-0.20220714142610-fbbda1ee84f5/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU=
github.com/88250/gulu v1.2.3-0.20220909041418-fdfa4d7380bf h1:q+iiBuKjdvUKj5dQQHCRs+g9oChTWkZmm7r1FMvtkfI=
github.com/88250/gulu v1.2.3-0.20220909041418-fdfa4d7380bf/go.mod h1:I1qBzsksFL2ciGSuqDE7R3XW4BUMrfDgOvSXEk7FsAI=
github.com/88250/lute v1.7.5-0.20220915150247-57676b7312e1 h1:7ZtyePWOCVrW5EpUE7NXFBGKhLhAn7SjkIm8LXw1Kqs=
github.com/88250/lute v1.7.5-0.20220915150247-57676b7312e1/go.mod h1:cEoBGi0zArPqAsp0MdG9SKinvH/xxZZWXU7sRx8vHSA=
github.com/88250/lute v1.7.5-0.20220916024833-cf60435b2b33 h1:I16AH1C+7b0k/Yzr/BLmOyTYFOta+jpWKstgQ0F8P9M=
github.com/88250/lute v1.7.5-0.20220916024833-cf60435b2b33/go.mod h1:cEoBGi0zArPqAsp0MdG9SKinvH/xxZZWXU7sRx8vHSA=
github.com/88250/pdfcpu v0.3.13 h1:touMWMZkCGalMIbEg9bxYp7rETM+zwb9hXjwhqi4I7Q=
github.com/88250/pdfcpu v0.3.13/go.mod h1:S5YT38L/GCjVjmB4PB84PymA1qfopjEhfhTNQilLpv4=
github.com/88250/vitess-sqlparser v0.0.0-20210205111146-56a2ded2aba1 h1:48T899JQDwyyRu9yXHePYlPdHtpJfrJEUGBMH3SMBWY=
@ -348,12 +348,12 @@ github.com/shurcooL/reactions v0.0.0-20181006231557-f2e0b4ca5b82/go.mod h1:TCR1l
github.com/shurcooL/sanitized_anchor_name v0.0.0-20170918181015-86672fcb3f95/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
github.com/shurcooL/users v0.0.0-20180125191416-49c67e49c537/go.mod h1:QJTqeLYEDaXHZDBsXlPCDqdhQuJkuw4NOtaxYe3xii4=
github.com/shurcooL/webdavfs v0.0.0-20170829043945-18c3829fa133/go.mod h1:hKmq5kWdCj2z2KEozexVbfEZIWiTjhE0+UjmZgPqehw=
github.com/siyuan-note/dejavu v0.0.0-20220909042242-acde27589097 h1:jCev7f50UVfE0Gt/J26q+0gjcEDjTvYQGDPU93/UGpA=
github.com/siyuan-note/dejavu v0.0.0-20220909042242-acde27589097/go.mod h1:5dVd4OEze7ZKm9ol698ILwBFsK6vOXb1GOn/iGYRDBI=
github.com/siyuan-note/dejavu v0.0.0-20220916030034-b12760230ed4 h1:bKKUoKMgGfR6uLksVqGrmGyj5q4/nzQHKlzQePZjZJ4=
github.com/siyuan-note/dejavu v0.0.0-20220916030034-b12760230ed4/go.mod h1:ou8LG8G+7bjjDB4t+pbMdUik6HmOLyKEM+4LMzbS/d4=
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-20220624162334-ca7c06dc771f h1:JMobMNZ7AqaKKyEK+WeWFhix/2TDQXgPZDajU00IybU=
github.com/siyuan-note/eventbus v0.0.0-20220624162334-ca7c06dc771f/go.mod h1:Sqo4FYX5lAXu7gWkbEdJF0e6P57tNNVV4WDKYDctokI=
github.com/siyuan-note/eventbus v0.0.0-20220916025349-3ac6e75522da h1:/jNhl7LC+9BhkWvNxuJDdsNfA/2wvfuj9mqWx4CbV90=
github.com/siyuan-note/eventbus v0.0.0-20220916025349-3ac6e75522da/go.mod h1:Sqo4FYX5lAXu7gWkbEdJF0e6P57tNNVV4WDKYDctokI=
github.com/siyuan-note/filelock v0.0.0-20220720144616-011221f7e128 h1:p90RgCJ0BFRY60wOFQ+XHAgI6ey3sUWbqHcQ7T3KWfQ=
github.com/siyuan-note/filelock v0.0.0-20220720144616-011221f7e128/go.mod h1:NeC98UUl+U62YScI0qWIjzrK+L4Z6WsBL5bueShjBKs=
github.com/siyuan-note/httpclient v0.0.0-20220906125021-bb9ddffaea0e h1:iSjaFQk9v8FEMaKMiS9yg8eqxz4jtKC3oKEd6NLN1aA=

View file

@ -146,7 +146,7 @@ func (box *Box) Index(fullRebuildIndex bool) (treeCount int, treeSize int64) {
bootProgressPart = 20.0 / float64(boxLen) / float64(treeCount)
context := map[string]interface{}{sql.CtxPushMsg: sql.CtxPushMsgToStatusBarAndProgress}
context := map[string]interface{}{eventbus.CtxPushMsg: eventbus.CtxPushMsgToStatusBarAndProgress}
i = 0
// 块级行级入库,缓存块
// 这里不能并行插入,因为 SQLite 不支持
@ -196,7 +196,7 @@ func IndexRefs() {
util.SetBootDetails("Resolving refs...")
util.PushEndlessProgress(Conf.Language(54))
context := map[string]interface{}{sql.CtxPushMsg: sql.CtxPushMsgToStatusBarAndProgress}
context := map[string]interface{}{eventbus.CtxPushMsg: eventbus.CtxPushMsgToStatusBarAndProgress}
// 解析并更新引用块
util.SetBootDetails("Resolving ref block content...")
refUnresolvedBlocks := sql.GetRefUnresolvedBlocks() // TODO: v2.2.0 以后移除
@ -357,14 +357,14 @@ func isLegacyDynamicBlockRef(blockRef *ast.Node) bool {
}
func init() {
eventbus.Subscribe(sql.EvtSQLInsertBlocks, func(context map[string]interface{}, blockCount int, hash string) {
eventbus.Subscribe(eventbus.EvtSQLInsertBlocks, func(context map[string]interface{}, blockCount int, hash string) {
msg := fmt.Sprintf(Conf.Language(89), blockCount, hash)
util.SetBootDetails(msg)
contextPushMsg(context, msg)
util.ContextPushMsg(context, msg)
})
eventbus.Subscribe(sql.EvtSQLInsertBlocksFTS, func(context map[string]interface{}, blockCount int, hash string) {
eventbus.Subscribe(eventbus.EvtSQLInsertBlocksFTS, func(context map[string]interface{}, blockCount int, hash string) {
msg := fmt.Sprintf(Conf.Language(90), blockCount, hash)
util.SetBootDetails(msg)
contextPushMsg(context, msg)
util.ContextPushMsg(context, msg)
})
}

View file

@ -234,7 +234,7 @@ func CheckoutRepo(id string) (err error) {
Conf.Sync.Enabled = false
Conf.Save()
_, _, err = repo.Checkout(id, map[string]interface{}{dejavu.CtxPushMsg: dejavu.CtxPushMsgToStatusBarAndProgress})
_, _, err = repo.Checkout(id, map[string]interface{}{eventbus.CtxPushMsg: eventbus.CtxPushMsgToStatusBarAndProgress})
if nil != err {
util.PushClearProgress()
return
@ -267,7 +267,7 @@ func DownloadCloudSnapshot(tag, id string) (err error) {
}
defer util.PushClearProgress()
downloadFileCount, downloadChunkCount, downloadBytes, err := repo.DownloadTagIndex(tag, id, cloudInfo, map[string]interface{}{dejavu.CtxPushMsg: dejavu.CtxPushMsgToStatusBarAndProgress})
downloadFileCount, downloadChunkCount, downloadBytes, err := repo.DownloadTagIndex(tag, id, cloudInfo, map[string]interface{}{eventbus.CtxPushMsg: eventbus.CtxPushMsgToStatusBarAndProgress})
if nil != err {
return
}
@ -295,7 +295,7 @@ func UploadCloudSnapshot(tag, id string) (err error) {
util.PushEndlessProgress(Conf.Language(116))
defer util.PushClearProgress()
uploadFileCount, uploadChunkCount, uploadBytes, err := repo.UploadTagIndex(tag, id, cloudInfo, map[string]interface{}{dejavu.CtxPushMsg: dejavu.CtxPushMsgToStatusBarAndProgress})
uploadFileCount, uploadChunkCount, uploadBytes, err := repo.UploadTagIndex(tag, id, cloudInfo, map[string]interface{}{eventbus.CtxPushMsg: eventbus.CtxPushMsgToStatusBarAndProgress})
if nil != err {
if errors.Is(err, dejavu.ErrCloudBackupCountExceeded) {
err = fmt.Errorf(Conf.Language(84), Conf.Language(154))
@ -331,7 +331,7 @@ func RemoveCloudRepoTag(tag string) (err error) {
return
}
err = repo.RemoveCloudRepoTag(tag, cloudInfo, map[string]interface{}{dejavu.CtxPushMsg: dejavu.CtxPushMsgToStatusBar})
err = repo.RemoveCloudRepoTag(tag, cloudInfo, map[string]interface{}{eventbus.CtxPushMsg: eventbus.CtxPushMsgToStatusBar})
if nil != err {
return
}
@ -353,7 +353,7 @@ func GetCloudRepoTagSnapshots() (ret []*dejavu.Log, err error) {
if nil != err {
return
}
ret, err = repo.GetCloudRepoTagLogs(cloudInfo, map[string]interface{}{dejavu.CtxPushMsg: dejavu.CtxPushMsgToStatusBar})
ret, err = repo.GetCloudRepoTagLogs(cloudInfo, map[string]interface{}{eventbus.CtxPushMsg: eventbus.CtxPushMsgToStatusBar})
if 1 > len(ret) {
ret = []*dejavu.Log{}
}
@ -452,7 +452,7 @@ func IndexRepo(memo string) (err error) {
WaitForWritingFiles()
filelock.ReleaseAllFileLocks()
index, err := repo.Index(memo, map[string]interface{}{
dejavu.CtxPushMsg: dejavu.CtxPushMsgToStatusBarAndProgress,
eventbus.CtxPushMsg: eventbus.CtxPushMsgToStatusBarAndProgress,
})
if nil != err {
util.PushStatusBar("Index data repo failed: " + err.Error())
@ -510,7 +510,7 @@ func syncRepo(boot, exit, byHand bool) (err error) {
return
}
syncContext := map[string]interface{}{dejavu.CtxPushMsg: dejavu.CtxPushMsgToStatusBar}
syncContext := map[string]interface{}{eventbus.CtxPushMsg: eventbus.CtxPushMsgToStatusBar}
_, mergeResult, trafficStat, err := repo.Sync(cloudInfo, syncContext)
elapsed := time.Since(start)
if nil != err {
@ -684,7 +684,7 @@ func indexRepoBeforeCloudSync(repo *dejavu.Repo) (err error) {
start := time.Now()
latest, _ := repo.Latest()
index, err := repo.Index("[Sync] Cloud sync", map[string]interface{}{
dejavu.CtxPushMsg: dejavu.CtxPushMsgToStatusBar,
eventbus.CtxPushMsg: eventbus.CtxPushMsgToStatusBar,
})
if nil != err {
msg := fmt.Sprintf(Conf.Language(140), formatErrorMsg(err))
@ -725,189 +725,177 @@ func newRepository() (ret *dejavu.Repo, err error) {
}
func subscribeEvents() {
eventbus.Subscribe(dejavu.EvtIndexBeforeWalkData, func(context map[string]interface{}, path string) {
eventbus.Subscribe(eventbus.EvtIndexBeforeWalkData, func(context map[string]interface{}, path string) {
msg := fmt.Sprintf(Conf.Language(158), path)
util.SetBootDetails(msg)
contextPushMsg(context, msg)
util.ContextPushMsg(context, msg)
})
indexWalkDataCount := 0
eventbus.Subscribe(dejavu.EvtIndexWalkData, func(context map[string]interface{}, path string) {
eventbus.Subscribe(eventbus.EvtIndexWalkData, func(context map[string]interface{}, path string) {
msg := fmt.Sprintf(Conf.Language(158), filepath.Base(path))
if 0 == indexWalkDataCount%512 {
util.SetBootDetails(msg)
contextPushMsg(context, msg)
util.ContextPushMsg(context, msg)
}
indexWalkDataCount++
})
eventbus.Subscribe(dejavu.EvtIndexBeforeGetLatestFiles, func(context map[string]interface{}, files []string) {
eventbus.Subscribe(eventbus.EvtIndexBeforeGetLatestFiles, func(context map[string]interface{}, files []string) {
msg := fmt.Sprintf(Conf.Language(159), len(files))
util.SetBootDetails(msg)
contextPushMsg(context, msg)
util.ContextPushMsg(context, msg)
})
getLatestFileCount := 0
eventbus.Subscribe(dejavu.EvtIndexGetLatestFile, func(context map[string]interface{}, id string) {
eventbus.Subscribe(eventbus.EvtIndexGetLatestFile, func(context map[string]interface{}, id string) {
msg := fmt.Sprintf(Conf.Language(159), id[:7])
if 0 == getLatestFileCount%512 {
util.SetBootDetails(msg)
contextPushMsg(context, msg)
util.ContextPushMsg(context, msg)
}
getLatestFileCount++
})
eventbus.Subscribe(dejavu.EvtIndexUpsertFiles, func(context map[string]interface{}, files []*entity.File) {
eventbus.Subscribe(eventbus.EvtIndexUpsertFiles, func(context map[string]interface{}, files []*entity.File) {
msg := fmt.Sprintf(Conf.Language(160), len(files))
util.SetBootDetails(msg)
contextPushMsg(context, msg)
util.ContextPushMsg(context, msg)
})
indexUpsertFileCount := 0
eventbus.Subscribe(dejavu.EvtIndexUpsertFile, func(context map[string]interface{}, path string) {
eventbus.Subscribe(eventbus.EvtIndexUpsertFile, func(context map[string]interface{}, path string) {
msg := fmt.Sprintf(Conf.Language(160), filepath.Base(path))
if 0 == indexUpsertFileCount%128 {
util.SetBootDetails(msg)
contextPushMsg(context, msg)
util.ContextPushMsg(context, msg)
}
indexUpsertFileCount++
})
eventbus.Subscribe(dejavu.EvtCheckoutBeforeWalkData, func(context map[string]interface{}, path string) {
eventbus.Subscribe(eventbus.EvtCheckoutBeforeWalkData, func(context map[string]interface{}, path string) {
msg := fmt.Sprintf(Conf.Language(161), path)
util.SetBootDetails(msg)
contextPushMsg(context, msg)
util.ContextPushMsg(context, msg)
})
coWalkDataCount := 0
eventbus.Subscribe(dejavu.EvtCheckoutWalkData, func(context map[string]interface{}, path string) {
eventbus.Subscribe(eventbus.EvtCheckoutWalkData, func(context map[string]interface{}, path string) {
msg := fmt.Sprintf(Conf.Language(161), filepath.Base(path))
if 0 == coWalkDataCount%512 {
util.SetBootDetails(msg)
contextPushMsg(context, msg)
util.ContextPushMsg(context, msg)
}
coWalkDataCount++
})
var bootProgressPart float64
eventbus.Subscribe(dejavu.EvtCheckoutUpsertFiles, func(context map[string]interface{}, files []*entity.File) {
eventbus.Subscribe(eventbus.EvtCheckoutUpsertFiles, func(context map[string]interface{}, files []*entity.File) {
msg := fmt.Sprintf(Conf.Language(162), len(files))
util.SetBootDetails(msg)
bootProgressPart = 10 / float64(len(files))
contextPushMsg(context, msg)
util.ContextPushMsg(context, msg)
})
coUpsertFileCount := 0
eventbus.Subscribe(dejavu.EvtCheckoutUpsertFile, func(context map[string]interface{}, path string) {
eventbus.Subscribe(eventbus.EvtCheckoutUpsertFile, func(context map[string]interface{}, path string) {
msg := fmt.Sprintf(Conf.Language(162), filepath.Base(path))
util.IncBootProgress(bootProgressPart, msg)
if 0 == coUpsertFileCount%128 {
contextPushMsg(context, msg)
util.ContextPushMsg(context, msg)
}
coUpsertFileCount++
})
eventbus.Subscribe(dejavu.EvtCheckoutRemoveFiles, func(context map[string]interface{}, files []*entity.File) {
eventbus.Subscribe(eventbus.EvtCheckoutRemoveFiles, func(context map[string]interface{}, files []*entity.File) {
msg := fmt.Sprintf(Conf.Language(163), files)
util.SetBootDetails(msg)
bootProgressPart = 10 / float64(len(files))
contextPushMsg(context, msg)
util.ContextPushMsg(context, msg)
})
coRemoveFileCount := 0
eventbus.Subscribe(dejavu.EvtCheckoutRemoveFile, func(context map[string]interface{}, path string) {
eventbus.Subscribe(eventbus.EvtCheckoutRemoveFile, func(context map[string]interface{}, path string) {
msg := fmt.Sprintf(Conf.Language(163), filepath.Base(path))
util.IncBootProgress(bootProgressPart, msg)
if 0 == coRemoveFileCount%512 {
contextPushMsg(context, msg)
util.ContextPushMsg(context, msg)
}
coRemoveFileCount++
})
eventbus.Subscribe(dejavu.EvtCloudBeforeDownloadIndex, func(context map[string]interface{}, id string) {
eventbus.Subscribe(eventbus.EvtCloudBeforeDownloadIndex, func(context map[string]interface{}, id string) {
msg := fmt.Sprintf(Conf.Language(164), id[:7])
util.IncBootProgress(1, msg)
contextPushMsg(context, msg)
util.ContextPushMsg(context, msg)
})
eventbus.Subscribe(dejavu.EvtCloudBeforeDownloadFiles, func(context map[string]interface{}, ids []string) {
eventbus.Subscribe(eventbus.EvtCloudBeforeDownloadFiles, func(context map[string]interface{}, ids []string) {
msg := fmt.Sprintf(Conf.Language(165), len(ids))
util.SetBootDetails(msg)
bootProgressPart = 10 / float64(len(ids))
contextPushMsg(context, msg)
util.ContextPushMsg(context, msg)
})
downloadFileCount := 0
eventbus.Subscribe(dejavu.EvtCloudBeforeDownloadFile, func(context map[string]interface{}, id string) {
eventbus.Subscribe(eventbus.EvtCloudBeforeDownloadFile, func(context map[string]interface{}, id string) {
msg := fmt.Sprintf(Conf.Language(165), id[:7])
util.IncBootProgress(bootProgressPart, msg)
if 0 == downloadFileCount%8 {
contextPushMsg(context, msg)
util.ContextPushMsg(context, msg)
}
downloadFileCount++
})
eventbus.Subscribe(dejavu.EvtCloudBeforeDownloadChunks, func(context map[string]interface{}, ids []string) {
eventbus.Subscribe(eventbus.EvtCloudBeforeDownloadChunks, func(context map[string]interface{}, ids []string) {
msg := fmt.Sprintf(Conf.Language(166), len(ids))
util.SetBootDetails(msg)
bootProgressPart = 10 / float64(len(ids))
contextPushMsg(context, msg)
util.ContextPushMsg(context, msg)
})
downloadChunkCount := 0
eventbus.Subscribe(dejavu.EvtCloudBeforeDownloadChunk, func(context map[string]interface{}, id string) {
eventbus.Subscribe(eventbus.EvtCloudBeforeDownloadChunk, func(context map[string]interface{}, id string) {
msg := fmt.Sprintf(Conf.Language(166), id[:7])
util.IncBootProgress(bootProgressPart, msg)
if 0 == downloadChunkCount%8 {
contextPushMsg(context, msg)
util.ContextPushMsg(context, msg)
}
downloadChunkCount++
})
eventbus.Subscribe(dejavu.EvtCloudBeforeDownloadRef, func(context map[string]interface{}, ref string) {
eventbus.Subscribe(eventbus.EvtCloudBeforeDownloadRef, func(context map[string]interface{}, ref string) {
msg := fmt.Sprintf(Conf.Language(167), ref)
util.IncBootProgress(1, msg)
contextPushMsg(context, msg)
util.ContextPushMsg(context, msg)
})
eventbus.Subscribe(dejavu.EvtCloudBeforeUploadIndex, func(context map[string]interface{}, id string) {
eventbus.Subscribe(eventbus.EvtCloudBeforeUploadIndex, func(context map[string]interface{}, id string) {
msg := fmt.Sprintf(Conf.Language(168), id[:7])
util.IncBootProgress(1, msg)
contextPushMsg(context, msg)
util.ContextPushMsg(context, msg)
})
eventbus.Subscribe(dejavu.EvtCloudBeforeUploadFiles, func(context map[string]interface{}, files []*entity.File) {
eventbus.Subscribe(eventbus.EvtCloudBeforeUploadFiles, func(context map[string]interface{}, files []*entity.File) {
msg := fmt.Sprintf(Conf.Language(169), len(files))
util.SetBootDetails(msg)
contextPushMsg(context, msg)
util.ContextPushMsg(context, msg)
})
uploadFileCount := 0
eventbus.Subscribe(dejavu.EvtCloudBeforeUploadFile, func(context map[string]interface{}, id string) {
eventbus.Subscribe(eventbus.EvtCloudBeforeUploadFile, func(context map[string]interface{}, id string) {
msg := fmt.Sprintf(Conf.Language(169), id[:7])
if 0 == uploadFileCount%8 {
util.SetBootDetails(msg)
contextPushMsg(context, msg)
util.ContextPushMsg(context, msg)
}
uploadFileCount++
})
eventbus.Subscribe(dejavu.EvtCloudBeforeUploadChunks, func(context map[string]interface{}, ids []string) {
eventbus.Subscribe(eventbus.EvtCloudBeforeUploadChunks, func(context map[string]interface{}, ids []string) {
msg := fmt.Sprintf(Conf.Language(170), len(ids))
util.SetBootDetails(msg)
contextPushMsg(context, msg)
util.ContextPushMsg(context, msg)
})
uploadChunkCount := 0
eventbus.Subscribe(dejavu.EvtCloudBeforeUploadChunk, func(context map[string]interface{}, id string) {
eventbus.Subscribe(eventbus.EvtCloudBeforeUploadChunk, func(context map[string]interface{}, id string) {
msg := fmt.Sprintf(Conf.Language(170), id[:7])
if 0 == uploadChunkCount%8 {
util.SetBootDetails(msg)
contextPushMsg(context, msg)
util.ContextPushMsg(context, msg)
}
uploadChunkCount++
})
eventbus.Subscribe(dejavu.EvtCloudBeforeUploadRef, func(context map[string]interface{}, ref string) {
eventbus.Subscribe(eventbus.EvtCloudBeforeUploadRef, func(context map[string]interface{}, ref string) {
msg := fmt.Sprintf(Conf.Language(171), ref)
util.SetBootDetails(msg)
contextPushMsg(context, msg)
util.ContextPushMsg(context, msg)
})
}
func contextPushMsg(context map[string]interface{}, msg string) {
switch context[dejavu.CtxPushMsg].(int) {
case dejavu.CtxPushMsgToProgress:
util.PushEndlessProgress(msg)
case dejavu.CtxPushMsgToStatusBar:
util.PushStatusBar(msg)
case dejavu.CtxPushMsgToStatusBarAndProgress:
util.PushStatusBar(msg)
util.PushEndlessProgress(msg)
}
}
func buildCloudInfo() (ret *dejavu.CloudInfo, err error) {
if !IsValidCloudDirName(Conf.Sync.CloudName) {
logging.LogWarnf("invalid cloud repo name, rename it to [main]")

View file

@ -1,46 +0,0 @@
// SiYuan - Build Your Eternal Digital Garden
// Copyright (c) 2020-present, b3log.org
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>.
package sql
import (
"github.com/siyuan-note/siyuan/kernel/util"
)
const (
EvtSQLInsertBlocks = "sql.insert.blocks"
EvtSQLInsertBlocksFTS = "sql.insert.blocks_fts"
)
const (
CtxPushMsg = "pushMsg"
CtxPushMsgToProgress = iota
CtxPushMsgToStatusBar
CtxPushMsgToStatusBarAndProgress
)
func contextPushMsg(context map[string]interface{}, msg string) {
switch context[CtxPushMsg].(int) {
case CtxPushMsgToProgress:
util.PushEndlessProgress(msg)
case CtxPushMsgToStatusBar:
util.PushStatusBar(msg)
case CtxPushMsgToStatusBarAndProgress:
util.PushStatusBar(msg)
util.PushEndlessProgress(msg)
}
}

View file

@ -27,6 +27,7 @@ import (
"github.com/88250/lute/parse"
"github.com/emirpasic/gods/sets/hashset"
"github.com/siyuan-note/eventbus"
"github.com/siyuan-note/logging"
"github.com/siyuan-note/siyuan/kernel/util"
)
@ -98,7 +99,7 @@ func flushTreeQueue() {
return
}
context := map[string]interface{}{CtxPushMsg: CtxPushMsgToStatusBar}
context := map[string]interface{}{eventbus.CtxPushMsg: eventbus.CtxPushMsgToStatusBar}
boxes := hashset.New()
for _, op := range ops {
switch op.action {

View file

@ -128,7 +128,7 @@ func insertBlocks0(tx *sql.Tx, bulk []*Block, context map[string]interface{}) (e
}
hashBuf.WriteString("blocks")
evtHash := fmt.Sprintf("%x", sha256.Sum256(hashBuf.Bytes()))[:7]
eventbus.Publish(EvtSQLInsertBlocks, context, len(bulk), evtHash)
eventbus.Publish(eventbus.EvtSQLInsertBlocks, context, len(bulk), evtHash)
stmt = fmt.Sprintf(BlocksFTSInsert, strings.Join(valueStrings, ","))
if err = prepareExecInsertTx(tx, stmt, valueArgs); nil != err {
@ -143,7 +143,7 @@ func insertBlocks0(tx *sql.Tx, bulk []*Block, context map[string]interface{}) (e
}
hashBuf.WriteString("fts")
evtHash = fmt.Sprintf("%x", sha256.Sum256(hashBuf.Bytes()))[:7]
eventbus.Publish(EvtSQLInsertBlocksFTS, context, len(bulk), evtHash)
eventbus.Publish(eventbus.EvtSQLInsertBlocksFTS, context, len(bulk), evtHash)
return
}

View file

@ -22,6 +22,7 @@ import (
"github.com/88250/gulu"
"github.com/olahol/melody"
"github.com/siyuan-note/eventbus"
)
var (
@ -150,6 +151,18 @@ func PushStatusBar(msg string) {
BroadcastByType("main", "statusbar", 0, msg, nil)
}
func ContextPushMsg(context map[string]interface{}, msg string) {
switch context[eventbus.CtxPushMsg].(int) {
case eventbus.CtxPushMsgToProgress:
PushEndlessProgress(msg)
case eventbus.CtxPushMsgToStatusBar:
PushStatusBar(msg)
case eventbus.CtxPushMsgToStatusBarAndProgress:
PushStatusBar(msg)
PushEndlessProgress(msg)
}
}
const (
PushProgressCodeProgressed = 0 // 有进度
PushProgressCodeEndless = 1 // 无进度