From 9532edcab07c070cbe37e406d1f5b366ec636731 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Sat, 4 Jan 2025 21:32:09 +0800 Subject: [PATCH] :art: Improve import conf https://github.com/siyuan-note/siyuan/issues/13718 --- kernel/api/system.go | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/kernel/api/system.go b/kernel/api/system.go index 604b3bdb7..446197fae 100644 --- a/kernel/api/system.go +++ b/kernel/api/system.go @@ -408,10 +408,24 @@ func importConf(c *gin.Context) { } tmpDir := filepath.Join(importDir, "conf") - if err = gulu.Zip.Unzip(tmp, tmpDir); err != nil { - logging.LogErrorf("import conf failed: %s", err) + os.RemoveAll(tmpDir) + if strings.HasSuffix(strings.ToLower(tmp), ".zip") { + if err = gulu.Zip.Unzip(tmp, tmpDir); err != nil { + logging.LogErrorf("import conf failed: %s", err) + ret.Code = -1 + ret.Msg = err.Error() + return + } + } else if strings.HasSuffix(strings.ToLower(tmp), ".json") { + if err = gulu.File.CopyFile(tmp, filepath.Join(tmpDir, f.Filename)); err != nil { + logging.LogErrorf("import conf failed: %s", err) + ret.Code = -1 + ret.Msg = err.Error() + } + } else { + logging.LogErrorf("invalid conf package") ret.Code = -1 - ret.Msg = err.Error() + ret.Msg = "invalid conf package" return }