This commit is contained in:
Daniel 2024-10-19 11:43:53 +08:00
parent f12910e760
commit c3d5db2e12
No known key found for this signature in database
GPG key ID: 86211BA83DF03017

View file

@ -255,8 +255,7 @@ func Export2Liandi(id string) (err error) {
case 404: case 404:
foundArticle = false foundArticle = false
default: default:
msg := fmt.Sprintf("get liandi article info failed [sc=%d]", resp.StatusCode) err = errors.New(fmt.Sprintf("get liandi article info failed [sc=%d]", resp.StatusCode))
err = errors.New(msg)
return return
} }
} }
@ -315,8 +314,7 @@ func Export2Liandi(id string) (err error) {
} }
} }
msg := fmt.Sprintf(Conf.Language(181), util.GetCloudAccountServer()+"/article/"+articleId) util.PushMsg(fmt.Sprintf(Conf.Language(181), util.GetCloudAccountServer()+"/article/"+articleId), 7000)
util.PushMsg(msg, 7000)
return return
} }
@ -505,8 +503,7 @@ func exportData(exportFolder string) (zipPath string, err error) {
} }
zipCallback := func(filename string) { zipCallback := func(filename string) {
msg := Conf.language(65) + " " + fmt.Sprintf(Conf.language(70), filename) util.PushEndlessProgress(Conf.language(65) + " " + fmt.Sprintf(Conf.language(70), filename))
util.PushEndlessProgress(msg)
} }
if err = zip.AddDirectory(baseFolderName, exportFolder, zipCallback); err != nil { if err = zip.AddDirectory(baseFolderName, exportFolder, zipCallback); err != nil {
@ -619,8 +616,7 @@ func ExportDocx(id, savePath string, removeAssets, merge bool) (fullPath string,
if "" != docxTemplate { if "" != docxTemplate {
if !gulu.File.IsExist(docxTemplate) { if !gulu.File.IsExist(docxTemplate) {
logging.LogErrorf("docx template [%s] not found", docxTemplate) logging.LogErrorf("docx template [%s] not found", docxTemplate)
msg := fmt.Sprintf(Conf.Language(197), docxTemplate) err = errors.New(fmt.Sprintf(Conf.Language(197), docxTemplate))
err = errors.New(msg)
return return
} }
@ -633,8 +629,7 @@ func ExportDocx(id, savePath string, removeAssets, merge bool) (fullPath string,
output, err := pandoc.CombinedOutput() output, err := pandoc.CombinedOutput()
if err != nil { if err != nil {
logging.LogErrorf("export docx failed: %s", gulu.Str.FromBytes(output)) logging.LogErrorf("export docx failed: %s", gulu.Str.FromBytes(output))
msg := fmt.Sprintf(Conf.Language(14), gulu.Str.FromBytes(output)) err = errors.New(fmt.Sprintf(Conf.Language(14), gulu.Str.FromBytes(output)))
err = errors.New(msg)
return return
} }
@ -1540,23 +1535,22 @@ func exportSYZip(boxID, rootDirPath, baseFolderName string, docPaths []string) (
trees := map[string]*parse.Tree{} trees := map[string]*parse.Tree{}
refTrees := map[string]*parse.Tree{} refTrees := map[string]*parse.Tree{}
treeCache := map[string]*parse.Tree{} luteEngine := util.NewLute()
for i, p := range docPaths { for i, p := range docPaths {
docIAL := box.docIAL(p) tree, err := filesys.LoadTree(boxID, p, luteEngine)
if nil == docIAL {
continue
}
msg := Conf.language(65) + " " + fmt.Sprintf(Conf.language(70), fmt.Sprintf("%d/%d %s", i+1, len(docPaths), docIAL["title"]))
util.PushEndlessProgress(msg)
id := docIAL["id"]
tree, err := LoadTreeByBlockID(id)
if err != nil { if err != nil {
continue continue
} }
trees[tree.ID] = tree trees[tree.ID] = tree
util.PushEndlessProgress(Conf.language(65) + " " + fmt.Sprintf(Conf.language(70), fmt.Sprintf("%d/%d %s", i+1, len(docPaths), tree.Root.IALAttr("title"))))
}
count := 1
treeCache := map[string]*parse.Tree{}
for _, tree := range trees {
util.PushEndlessProgress(Conf.language(65) + " " + fmt.Sprintf(Conf.language(70), fmt.Sprintf("%d/%d %s", count, len(docPaths), tree.Root.IALAttr("title"))))
refs := map[string]*parse.Tree{} refs := map[string]*parse.Tree{}
exportRefTrees(tree, &refs, &treeCache) exportRefTrees(tree, &refs, &treeCache)
for refTreeID, refTree := range refs { for refTreeID, refTree := range refs {
@ -1567,9 +1561,9 @@ func exportSYZip(boxID, rootDirPath, baseFolderName string, docPaths []string) (
} }
util.PushEndlessProgress(Conf.Language(65)) util.PushEndlessProgress(Conf.Language(65))
count = 0
// 按文件夹结构复制选择的树 // 按文件夹结构复制选择的树
count := 0
total := len(trees) + len(refTrees) total := len(trees) + len(refTrees)
for _, tree := range trees { for _, tree := range trees {
readPath := filepath.Join(util.DataDir, tree.Box, tree.Path) readPath := filepath.Join(util.DataDir, tree.Box, tree.Path)
@ -1592,7 +1586,7 @@ func exportSYZip(boxID, rootDirPath, baseFolderName string, docPaths []string) (
} }
count++ count++
util.PushEndlessProgress(fmt.Sprintf(Conf.Language(66), fmt.Sprintf("%d/%d ", count, total)+tree.HPath)) util.PushEndlessProgress(Conf.language(65) + " " + fmt.Sprintf(Conf.Language(66), fmt.Sprintf("%d/%d ", count, total)+tree.HPath))
} }
// 引用树放在导出文件夹根路径下 // 引用树放在导出文件夹根路径下
@ -1612,7 +1606,7 @@ func exportSYZip(boxID, rootDirPath, baseFolderName string, docPaths []string) (
} }
count++ count++
util.PushEndlessProgress(fmt.Sprintf(Conf.Language(66), fmt.Sprintf("%d/%d ", count, total)+tree.HPath)) util.PushEndlessProgress(Conf.language(65) + " " + fmt.Sprintf(Conf.Language(66), fmt.Sprintf("%d/%d ", count, total)+tree.HPath))
} }
// 将引用树合并到选择树中,以便后面一次性导出资源文件 // 将引用树合并到选择树中,以便后面一次性导出资源文件
@ -1798,8 +1792,7 @@ func exportSYZip(boxID, rootDirPath, baseFolderName string, docPaths []string) (
} }
zipCallback := func(filename string) { zipCallback := func(filename string) {
msg := Conf.language(65) + " " + fmt.Sprintf(Conf.language(70), filename) util.PushEndlessProgress(Conf.language(65) + " " + fmt.Sprintf(Conf.language(70), filename))
util.PushEndlessProgress(msg)
} }
if err = zip.AddDirectory(baseFolderName, exportFolder, zipCallback); err != nil { if err = zip.AddDirectory(baseFolderName, exportFolder, zipCallback); err != nil {
@ -2735,7 +2728,7 @@ type refAsFootnotes struct {
refAnchorText string refAnchorText string
} }
func exportRefTrees(tree *parse.Tree, retTrees *map[string]*parse.Tree, treeCache *map[string]*parse.Tree) { func exportRefTrees(tree *parse.Tree, retTrees, treeCache *map[string]*parse.Tree) {
if nil != (*retTrees)[tree.ID] { if nil != (*retTrees)[tree.ID] {
return return
} }