mirror of
https://github.com/siyuan-note/siyuan
synced 2026-04-21 13:37:52 +00:00
♻️ Improve validation of some JSON parameters (#17412)
* 🎨 Improve validation of some JSON parameters * 🎨 Improve validation of some JSON parameters * 🎨 Improve validation of some JSON parameters * 🎨 Improve validation of some JSON parameters * 🎨 Improve validation of some JSON parameters * 🎨 Improve validation of some JSON parameters * 🎨 Improve validation of some JSON parameters * 🎨 Improve validation of some JSON parameters * 🎨 Improve validation of some JSON parameters * 🎨 Improve validation of some JSON parameters * 🎨 Improve validation of some JSON parameters * 🎨 Improve validation of some JSON parameters * 🎨 Improve validation of some JSON parameters * 🎨 Improve validation of some JSON parameters * 🎨 Improve validation of some JSON parameters * 🎨 Improve validation of some JSON parameters * 🎨 Improve validation of some JSON parameters * 🎨 Improve validation of some JSON parameters * 🎨 Improve validation of some JSON parameters * 🎨 Improve validation of some JSON parameters * 🎨 Improve validation of some JSON parameters * 🎨 Improve validation of some JSON parameters * 🎨 Improve validation of some JSON parameters * 🎨 Improve validation of some JSON parameters
This commit is contained in:
parent
bb9cb86bd7
commit
698ee3d357
37 changed files with 249 additions and 264 deletions
|
|
@ -708,7 +708,6 @@ type="checkbox">
|
|||
fetchPost("/api/petal/setPetalEnabled", {
|
||||
packageName: dataObj.name,
|
||||
enabled: true,
|
||||
frontend: getFrontend(),
|
||||
app: Constants.SIYUAN_APPID,
|
||||
}, (response) => {
|
||||
loadPlugin(app, response.data);
|
||||
|
|
@ -724,7 +723,7 @@ type="checkbox">
|
|||
break;
|
||||
} else if (type === "install-all") {
|
||||
confirmDialog("⬆️ " + window.siyuan.languages.updateAll, window.siyuan.languages.confirmUpdateAll, () => {
|
||||
fetchPost("/api/bazaar/batchUpdatePackage", {frontend: getFrontend()});
|
||||
fetchPost("/api/bazaar/batchUpdatePackage");
|
||||
});
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
|
|
@ -875,7 +874,6 @@ type="checkbox">
|
|||
fetchPost("/api/petal/setPetalEnabled", {
|
||||
packageName: dataObj.name,
|
||||
enabled,
|
||||
frontend: getFrontend(),
|
||||
app: Constants.SIYUAN_APPID,
|
||||
}, (response) => {
|
||||
target.removeAttribute("disabled");
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ func useActivationcode(c *gin.Context) {
|
|||
}
|
||||
|
||||
var code string
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("data", &code, true, false)) {
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("data", &code, true, true)) {
|
||||
return
|
||||
}
|
||||
err := model.UseActivationcode(code)
|
||||
|
|
@ -68,7 +68,7 @@ func checkActivationcode(c *gin.Context) {
|
|||
}
|
||||
|
||||
var code string
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("data", &code, true, false)) {
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("data", &code, true, true)) {
|
||||
return
|
||||
}
|
||||
ret.Code, ret.Msg = model.CheckActivationcode(code)
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ func chatGPT(c *gin.Context) {
|
|||
}
|
||||
|
||||
var msg string
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("msg", &msg, true, false)) {
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("msg", &msg, true, true)) {
|
||||
return
|
||||
}
|
||||
ret.Data = model.ChatGPT(msg)
|
||||
|
|
|
|||
|
|
@ -34,8 +34,11 @@ func zip(c *gin.Context) {
|
|||
return
|
||||
}
|
||||
|
||||
var entryPath string
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("path", &entryPath, true, false)) {
|
||||
var entryPath, zipFilePath string
|
||||
if !util.ParseJsonArgs(arg, ret,
|
||||
util.BindJsonArg("path", &entryPath, true, false),
|
||||
util.BindJsonArg("zipPath", &zipFilePath, true, false),
|
||||
) {
|
||||
return
|
||||
}
|
||||
entryAbsPath, err := util.GetAbsPathInWorkspace(entryPath)
|
||||
|
|
@ -44,11 +47,6 @@ func zip(c *gin.Context) {
|
|||
ret.Msg = err.Error()
|
||||
return
|
||||
}
|
||||
|
||||
var zipFilePath string
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("zipPath", &zipFilePath, true, false)) {
|
||||
return
|
||||
}
|
||||
zipAbsFilePath, err := util.GetAbsPathInWorkspace(zipFilePath)
|
||||
if err != nil {
|
||||
ret.Code = -1
|
||||
|
|
@ -91,8 +89,11 @@ func unzip(c *gin.Context) {
|
|||
return
|
||||
}
|
||||
|
||||
var zipFilePath string
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("zipPath", &zipFilePath, true, false)) {
|
||||
var zipFilePath, entryPath string
|
||||
if !util.ParseJsonArgs(arg, ret,
|
||||
util.BindJsonArg("zipPath", &zipFilePath, true, false),
|
||||
util.BindJsonArg("path", &entryPath, true, false),
|
||||
) {
|
||||
return
|
||||
}
|
||||
zipAbsFilePath, err := util.GetAbsPathInWorkspace(zipFilePath)
|
||||
|
|
@ -101,11 +102,6 @@ func unzip(c *gin.Context) {
|
|||
ret.Msg = err.Error()
|
||||
return
|
||||
}
|
||||
|
||||
var entryPath string
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("path", &entryPath, true, false)) {
|
||||
return
|
||||
}
|
||||
entryAbsPath, err := util.GetAbsPathInWorkspace(entryPath)
|
||||
if err != nil {
|
||||
ret.Code = -1
|
||||
|
|
|
|||
|
|
@ -37,16 +37,7 @@ func batchUpdatePackage(c *gin.Context) {
|
|||
ret := gulu.Ret.NewResult()
|
||||
defer c.JSON(http.StatusOK, ret)
|
||||
|
||||
arg, ok := util.JsonArg(c, ret)
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
|
||||
var frontend string
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("frontend", &frontend, true, false)) {
|
||||
return
|
||||
}
|
||||
model.BatchUpdatePackages(frontend)
|
||||
model.BatchUpdatePackages()
|
||||
}
|
||||
|
||||
func getUpdatedPackage(c *gin.Context) {
|
||||
|
|
@ -59,7 +50,7 @@ func getUpdatedPackage(c *gin.Context) {
|
|||
}
|
||||
|
||||
var frontend string
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("frontend", &frontend, true, false)) {
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("frontend", &frontend, true, true)) {
|
||||
return
|
||||
}
|
||||
|
||||
|
|
@ -84,9 +75,9 @@ func getBazaarPackageREADME(c *gin.Context) {
|
|||
|
||||
var repoURL, repoHash, pkgType string
|
||||
if !util.ParseJsonArgs(arg, ret,
|
||||
util.BindJsonArg("repoURL", &repoURL, true, false),
|
||||
util.BindJsonArg("repoHash", &repoHash, true, false),
|
||||
util.BindJsonArg("packageType", &pkgType, true, false),
|
||||
util.BindJsonArg("repoURL", &repoURL, true, true),
|
||||
util.BindJsonArg("repoHash", &repoHash, true, true),
|
||||
util.BindJsonArg("packageType", &pkgType, true, true),
|
||||
) {
|
||||
return
|
||||
}
|
||||
|
|
@ -111,7 +102,7 @@ func getBazaarPlugin(c *gin.Context) {
|
|||
|
||||
var frontend, keyword string
|
||||
if !util.ParseJsonArgs(arg, ret,
|
||||
util.BindJsonArg("frontend", &frontend, true, false),
|
||||
util.BindJsonArg("frontend", &frontend, true, true),
|
||||
util.BindJsonArg("keyword", &keyword, false, false),
|
||||
) {
|
||||
return
|
||||
|
|
@ -133,7 +124,7 @@ func getInstalledPlugin(c *gin.Context) {
|
|||
|
||||
var frontend, keyword string
|
||||
if !util.ParseJsonArgs(arg, ret,
|
||||
util.BindJsonArg("frontend", &frontend, true, false),
|
||||
util.BindJsonArg("frontend", &frontend, true, true),
|
||||
util.BindJsonArg("keyword", &keyword, false, false),
|
||||
) {
|
||||
return
|
||||
|
|
@ -155,11 +146,11 @@ func installBazaarPlugin(c *gin.Context) {
|
|||
|
||||
var frontend, keyword, repoURL, repoHash, packageName string
|
||||
if !util.ParseJsonArgs(arg, ret,
|
||||
util.BindJsonArg("frontend", &frontend, true, false),
|
||||
util.BindJsonArg("frontend", &frontend, true, true),
|
||||
util.BindJsonArg("keyword", &keyword, false, false),
|
||||
util.BindJsonArg("repoURL", &repoURL, true, false),
|
||||
util.BindJsonArg("repoHash", &repoHash, true, false),
|
||||
util.BindJsonArg("packageName", &packageName, true, false),
|
||||
util.BindJsonArg("repoURL", &repoURL, true, true),
|
||||
util.BindJsonArg("repoHash", &repoHash, true, true),
|
||||
util.BindJsonArg("packageName", &packageName, true, true),
|
||||
) {
|
||||
return
|
||||
}
|
||||
|
|
@ -189,7 +180,7 @@ func uninstallBazaarPlugin(c *gin.Context) {
|
|||
if !util.ParseJsonArgs(arg, ret,
|
||||
util.BindJsonArg("frontend", &frontend, false, false),
|
||||
util.BindJsonArg("keyword", &keyword, false, false),
|
||||
util.BindJsonArg("packageName", &packageName, true, false),
|
||||
util.BindJsonArg("packageName", &packageName, true, true),
|
||||
) {
|
||||
return
|
||||
}
|
||||
|
|
@ -263,9 +254,9 @@ func installBazaarWidget(c *gin.Context) {
|
|||
var keyword, repoURL, repoHash, packageName string
|
||||
if !util.ParseJsonArgs(arg, ret,
|
||||
util.BindJsonArg("keyword", &keyword, false, false),
|
||||
util.BindJsonArg("repoURL", &repoURL, true, false),
|
||||
util.BindJsonArg("repoHash", &repoHash, true, false),
|
||||
util.BindJsonArg("packageName", &packageName, true, false),
|
||||
util.BindJsonArg("repoURL", &repoURL, true, true),
|
||||
util.BindJsonArg("repoHash", &repoHash, true, true),
|
||||
util.BindJsonArg("packageName", &packageName, true, true),
|
||||
) {
|
||||
return
|
||||
}
|
||||
|
|
@ -294,7 +285,7 @@ func uninstallBazaarWidget(c *gin.Context) {
|
|||
var keyword, packageName string
|
||||
if !util.ParseJsonArgs(arg, ret,
|
||||
util.BindJsonArg("keyword", &keyword, false, false),
|
||||
util.BindJsonArg("packageName", &packageName, true, false),
|
||||
util.BindJsonArg("packageName", &packageName, true, true),
|
||||
) {
|
||||
return
|
||||
}
|
||||
|
|
@ -360,9 +351,9 @@ func installBazaarIcon(c *gin.Context) {
|
|||
var keyword, repoURL, repoHash, packageName string
|
||||
if !util.ParseJsonArgs(arg, ret,
|
||||
util.BindJsonArg("keyword", &keyword, false, false),
|
||||
util.BindJsonArg("repoURL", &repoURL, true, false),
|
||||
util.BindJsonArg("repoHash", &repoHash, true, false),
|
||||
util.BindJsonArg("packageName", &packageName, true, false),
|
||||
util.BindJsonArg("repoURL", &repoURL, true, true),
|
||||
util.BindJsonArg("repoHash", &repoHash, true, true),
|
||||
util.BindJsonArg("packageName", &packageName, true, true),
|
||||
) {
|
||||
return
|
||||
}
|
||||
|
|
@ -392,7 +383,7 @@ func uninstallBazaarIcon(c *gin.Context) {
|
|||
var keyword, packageName string
|
||||
if !util.ParseJsonArgs(arg, ret,
|
||||
util.BindJsonArg("keyword", &keyword, false, false),
|
||||
util.BindJsonArg("packageName", &packageName, true, false),
|
||||
util.BindJsonArg("packageName", &packageName, true, true),
|
||||
) {
|
||||
return
|
||||
}
|
||||
|
|
@ -459,9 +450,9 @@ func installBazaarTemplate(c *gin.Context) {
|
|||
var keyword, repoURL, repoHash, packageName string
|
||||
if !util.ParseJsonArgs(arg, ret,
|
||||
util.BindJsonArg("keyword", &keyword, false, false),
|
||||
util.BindJsonArg("repoURL", &repoURL, true, false),
|
||||
util.BindJsonArg("repoHash", &repoHash, true, false),
|
||||
util.BindJsonArg("packageName", &packageName, true, false),
|
||||
util.BindJsonArg("repoURL", &repoURL, true, true),
|
||||
util.BindJsonArg("repoHash", &repoHash, true, true),
|
||||
util.BindJsonArg("packageName", &packageName, true, true),
|
||||
) {
|
||||
return
|
||||
}
|
||||
|
|
@ -491,7 +482,7 @@ func uninstallBazaarTemplate(c *gin.Context) {
|
|||
var keyword, packageName string
|
||||
if !util.ParseJsonArgs(arg, ret,
|
||||
util.BindJsonArg("keyword", &keyword, false, false),
|
||||
util.BindJsonArg("packageName", &packageName, true, false),
|
||||
util.BindJsonArg("packageName", &packageName, true, true),
|
||||
) {
|
||||
return
|
||||
}
|
||||
|
|
@ -558,9 +549,9 @@ func installBazaarTheme(c *gin.Context) {
|
|||
var mode float64
|
||||
if !util.ParseJsonArgs(arg, ret,
|
||||
util.BindJsonArg("keyword", &keyword, false, false),
|
||||
util.BindJsonArg("repoURL", &repoURL, true, false),
|
||||
util.BindJsonArg("repoHash", &repoHash, true, false),
|
||||
util.BindJsonArg("packageName", &packageName, true, false),
|
||||
util.BindJsonArg("repoURL", &repoURL, true, true),
|
||||
util.BindJsonArg("repoHash", &repoHash, true, true),
|
||||
util.BindJsonArg("packageName", &packageName, true, true),
|
||||
util.BindJsonArg("mode", &mode, true, false),
|
||||
) {
|
||||
return
|
||||
|
|
@ -596,7 +587,7 @@ func uninstallBazaarTheme(c *gin.Context) {
|
|||
var keyword, packageName string
|
||||
if !util.ParseJsonArgs(arg, ret,
|
||||
util.BindJsonArg("keyword", &keyword, false, false),
|
||||
util.BindJsonArg("packageName", &packageName, true, false),
|
||||
util.BindJsonArg("packageName", &packageName, true, true),
|
||||
) {
|
||||
return
|
||||
}
|
||||
|
|
|
|||
|
|
@ -807,7 +807,7 @@ func batchUpdateBlock(c *gin.Context) {
|
|||
}
|
||||
|
||||
var blocksArg []any
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("blocks", &blocksArg, true, false)) {
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("blocks", &blocksArg, true, true)) {
|
||||
return
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -721,8 +721,8 @@ func postMessage(c *gin.Context) {
|
|||
|
||||
var message, channelName string
|
||||
if !util.ParseJsonArgs(arg, ret,
|
||||
util.BindJsonArg("message", &message, true, false),
|
||||
util.BindJsonArg("channel", &channelName, true, false),
|
||||
util.BindJsonArg("message", &message, true, true),
|
||||
util.BindJsonArg("channel", &channelName, true, true),
|
||||
) {
|
||||
return
|
||||
}
|
||||
|
|
@ -780,7 +780,7 @@ func getChannelInfo(c *gin.Context) {
|
|||
}
|
||||
|
||||
var name string
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("name", &name, true, false)) {
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("name", &name, true, true)) {
|
||||
return
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ func exportCodeBlock(c *gin.Context) {
|
|||
}
|
||||
|
||||
var id string
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("id", &id, true, false)) {
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("id", &id, true, true)) {
|
||||
return
|
||||
}
|
||||
filePath, err := model.ExportCodeBlock(id)
|
||||
|
|
@ -75,8 +75,8 @@ func exportAttributeView(c *gin.Context) {
|
|||
|
||||
var avID, blockID string
|
||||
if !util.ParseJsonArgs(arg, ret,
|
||||
util.BindJsonArg("id", &avID, true, false),
|
||||
util.BindJsonArg("blockID", &blockID, true, false),
|
||||
util.BindJsonArg("id", &avID, true, true),
|
||||
util.BindJsonArg("blockID", &blockID, true, true),
|
||||
) {
|
||||
return
|
||||
}
|
||||
|
|
@ -103,7 +103,7 @@ func exportEPUB(c *gin.Context) {
|
|||
}
|
||||
|
||||
var id string
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("id", &id, true, false)) {
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("id", &id, true, true)) {
|
||||
return
|
||||
}
|
||||
name, zipPath := model.ExportPandocConvertZip([]string{id}, "epub", ".epub")
|
||||
|
|
@ -123,7 +123,7 @@ func exportRTF(c *gin.Context) {
|
|||
}
|
||||
|
||||
var id string
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("id", &id, true, false)) {
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("id", &id, true, true)) {
|
||||
return
|
||||
}
|
||||
name, zipPath := model.ExportPandocConvertZip([]string{id}, "rtf", ".rtf")
|
||||
|
|
@ -143,7 +143,7 @@ func exportODT(c *gin.Context) {
|
|||
}
|
||||
|
||||
var id string
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("id", &id, true, false)) {
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("id", &id, true, true)) {
|
||||
return
|
||||
}
|
||||
name, zipPath := model.ExportPandocConvertZip([]string{id}, "odt", ".odt")
|
||||
|
|
@ -163,7 +163,7 @@ func exportMediaWiki(c *gin.Context) {
|
|||
}
|
||||
|
||||
var id string
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("id", &id, true, false)) {
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("id", &id, true, true)) {
|
||||
return
|
||||
}
|
||||
name, zipPath := model.ExportPandocConvertZip([]string{id}, "mediawiki", ".wiki")
|
||||
|
|
@ -183,7 +183,7 @@ func exportOrgMode(c *gin.Context) {
|
|||
}
|
||||
|
||||
var id string
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("id", &id, true, false)) {
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("id", &id, true, true)) {
|
||||
return
|
||||
}
|
||||
name, zipPath := model.ExportPandocConvertZip([]string{id}, "org", ".org")
|
||||
|
|
@ -203,7 +203,7 @@ func exportOPML(c *gin.Context) {
|
|||
}
|
||||
|
||||
var id string
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("id", &id, true, false)) {
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("id", &id, true, true)) {
|
||||
return
|
||||
}
|
||||
name, zipPath := model.ExportPandocConvertZip([]string{id}, "opml", ".opml")
|
||||
|
|
@ -223,7 +223,7 @@ func exportTextile(c *gin.Context) {
|
|||
}
|
||||
|
||||
var id string
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("id", &id, true, false)) {
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("id", &id, true, true)) {
|
||||
return
|
||||
}
|
||||
name, zipPath := model.ExportPandocConvertZip([]string{id}, "textile", ".textile")
|
||||
|
|
@ -243,7 +243,7 @@ func exportAsciiDoc(c *gin.Context) {
|
|||
}
|
||||
|
||||
var id string
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("id", &id, true, false)) {
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("id", &id, true, true)) {
|
||||
return
|
||||
}
|
||||
name, zipPath := model.ExportPandocConvertZip([]string{id}, "asciidoc", ".adoc")
|
||||
|
|
@ -263,7 +263,7 @@ func exportReStructuredText(c *gin.Context) {
|
|||
}
|
||||
|
||||
var id string
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("id", &id, true, false)) {
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("id", &id, true, true)) {
|
||||
return
|
||||
}
|
||||
name, zipPath := model.ExportPandocConvertZip([]string{id}, "rst", ".rst")
|
||||
|
|
@ -283,7 +283,7 @@ func export2Liandi(c *gin.Context) {
|
|||
}
|
||||
|
||||
var id string
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("id", &id, true, false)) {
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("id", &id, true, true)) {
|
||||
return
|
||||
}
|
||||
err := model.Export2Liandi(id)
|
||||
|
|
@ -304,7 +304,7 @@ func exportDataInFolder(c *gin.Context) {
|
|||
}
|
||||
|
||||
var exportFolder string
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("folder", &exportFolder, true, false)) {
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("folder", &exportFolder, true, true)) {
|
||||
return
|
||||
}
|
||||
name, err := model.ExportDataInFolder(exportFolder)
|
||||
|
|
@ -386,7 +386,7 @@ func exportNotebookMd(c *gin.Context) {
|
|||
}
|
||||
|
||||
var notebook string
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("notebook", ¬ebook, true, false)) {
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("notebook", ¬ebook, true, true)) {
|
||||
return
|
||||
}
|
||||
zipPath := model.ExportNotebookMarkdown(notebook)
|
||||
|
|
@ -428,7 +428,7 @@ func exportMd(c *gin.Context) {
|
|||
}
|
||||
|
||||
var id string
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("id", &id, true, false)) {
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("id", &id, true, true)) {
|
||||
return
|
||||
}
|
||||
name, zipPath := model.ExportPandocConvertZip([]string{id}, "", ".md")
|
||||
|
|
@ -448,7 +448,7 @@ func exportNotebookSY(c *gin.Context) {
|
|||
}
|
||||
|
||||
var id string
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("id", &id, true, false)) {
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("id", &id, true, true)) {
|
||||
return
|
||||
}
|
||||
zipPath := model.ExportNotebookSY(id)
|
||||
|
|
@ -488,7 +488,7 @@ func exportSY(c *gin.Context) {
|
|||
}
|
||||
|
||||
var id string
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("id", &id, true, false)) {
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("id", &id, true, true)) {
|
||||
return
|
||||
}
|
||||
zipPath := model.ExportSYs([]string{id})
|
||||
|
|
@ -507,7 +507,7 @@ func exportMdContent(c *gin.Context) {
|
|||
}
|
||||
|
||||
var id string
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("id", &id, true, false)) {
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("id", &id, true, true)) {
|
||||
return
|
||||
}
|
||||
if util.InvalidIDPattern(id, ret) {
|
||||
|
|
@ -566,8 +566,8 @@ func exportDocx(c *gin.Context) {
|
|||
var id, savePath string
|
||||
var removeAssets, merge bool
|
||||
if !util.ParseJsonArgs(arg, ret,
|
||||
util.BindJsonArg("id", &id, true, false),
|
||||
util.BindJsonArg("savePath", &savePath, true, false),
|
||||
util.BindJsonArg("id", &id, true, true),
|
||||
util.BindJsonArg("savePath", &savePath, true, true),
|
||||
util.BindJsonArg("removeAssets", &removeAssets, true, false),
|
||||
util.BindJsonArg("merge", &merge, false, false),
|
||||
) {
|
||||
|
|
@ -597,8 +597,8 @@ func exportMdHTML(c *gin.Context) {
|
|||
|
||||
var id, savePath string
|
||||
if !util.ParseJsonArgs(arg, ret,
|
||||
util.BindJsonArg("id", &id, true, false),
|
||||
util.BindJsonArg("savePath", &savePath, true, false),
|
||||
util.BindJsonArg("id", &id, true, true),
|
||||
util.BindJsonArg("savePath", &savePath, false, false),
|
||||
) {
|
||||
return
|
||||
}
|
||||
|
|
@ -669,9 +669,9 @@ func exportBrowserHTML(c *gin.Context) {
|
|||
|
||||
var folder, htmlContent, name string
|
||||
if !util.ParseJsonArgs(arg, ret,
|
||||
util.BindJsonArg("folder", &folder, true, false),
|
||||
util.BindJsonArg("html", &htmlContent, true, false),
|
||||
util.BindJsonArg("name", &name, true, false),
|
||||
util.BindJsonArg("folder", &folder, true, true),
|
||||
util.BindJsonArg("html", &htmlContent, true, true),
|
||||
util.BindJsonArg("name", &name, true, true),
|
||||
) {
|
||||
return
|
||||
}
|
||||
|
|
@ -731,7 +731,7 @@ func exportPreviewHTML(c *gin.Context) {
|
|||
var id string
|
||||
var keepFold, merge, image bool
|
||||
if !util.ParseJsonArgs(arg, ret,
|
||||
util.BindJsonArg("id", &id, true, false),
|
||||
util.BindJsonArg("id", &id, true, true),
|
||||
util.BindJsonArg("keepFold", &keepFold, false, false),
|
||||
util.BindJsonArg("merge", &merge, false, false),
|
||||
util.BindJsonArg("image", &image, false, false),
|
||||
|
|
@ -771,9 +771,9 @@ func exportHTML(c *gin.Context) {
|
|||
var id, savePath string
|
||||
var pdf, keepFold, merge bool
|
||||
if !util.ParseJsonArgs(arg, ret,
|
||||
util.BindJsonArg("id", &id, true, false),
|
||||
util.BindJsonArg("id", &id, true, true),
|
||||
util.BindJsonArg("pdf", &pdf, true, false),
|
||||
util.BindJsonArg("savePath", &savePath, true, false),
|
||||
util.BindJsonArg("savePath", &savePath, false, false),
|
||||
util.BindJsonArg("keepFold", &keepFold, false, false),
|
||||
util.BindJsonArg("merge", &merge, false, false),
|
||||
) {
|
||||
|
|
@ -814,8 +814,8 @@ func processPDF(c *gin.Context) {
|
|||
var id, pdfPath string
|
||||
var merge bool
|
||||
if !util.ParseJsonArgs(arg, ret,
|
||||
util.BindJsonArg("id", &id, true, false),
|
||||
util.BindJsonArg("path", &pdfPath, true, false),
|
||||
util.BindJsonArg("id", &id, true, true),
|
||||
util.BindJsonArg("path", &pdfPath, true, true),
|
||||
util.BindJsonArg("merge", &merge, false, false),
|
||||
) {
|
||||
return
|
||||
|
|
@ -840,7 +840,7 @@ func exportPreview(c *gin.Context) {
|
|||
}
|
||||
|
||||
var id string
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("id", &id, true, false)) {
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("id", &id, true, true)) {
|
||||
return
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ func netAssets2LocalAssets(c *gin.Context) {
|
|||
}
|
||||
|
||||
var id string
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("id", &id, true, false)) {
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("id", &id, true, true)) {
|
||||
return
|
||||
}
|
||||
err := model.NetAssets2LocalAssets(id, false, "")
|
||||
|
|
@ -56,10 +56,12 @@ func netImg2LocalAssets(c *gin.Context) {
|
|||
return
|
||||
}
|
||||
|
||||
id := arg["id"].(string)
|
||||
var url string
|
||||
if urlArg := arg["url"]; nil != urlArg {
|
||||
url = urlArg.(string)
|
||||
var id, url string
|
||||
if !util.ParseJsonArgs(arg, ret,
|
||||
util.BindJsonArg("id", &id, true, true),
|
||||
util.BindJsonArg("url", &url, false, false),
|
||||
) {
|
||||
return
|
||||
}
|
||||
err := model.NetAssets2LocalAssets(id, true, url)
|
||||
if err != nil {
|
||||
|
|
@ -80,7 +82,7 @@ func autoSpace(c *gin.Context) {
|
|||
}
|
||||
|
||||
var id string
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("id", &id, true, false)) {
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("id", &id, true, true)) {
|
||||
return
|
||||
}
|
||||
err := model.AutoSpace(id)
|
||||
|
|
|
|||
|
|
@ -65,7 +65,7 @@ func getGraph(c *gin.Context) {
|
|||
var query string
|
||||
var confArg map[string]any
|
||||
if !util.ParseJsonArgs(arg, ret,
|
||||
util.BindJsonArg("k", &query, true, false),
|
||||
util.BindJsonArg("k", &query, false, false),
|
||||
util.BindJsonArg("conf", &confArg, true, false),
|
||||
) {
|
||||
return
|
||||
|
|
@ -98,7 +98,7 @@ func getGraph(c *gin.Context) {
|
|||
"links": links,
|
||||
"conf": global,
|
||||
"box": boxID,
|
||||
"reqId": arg["reqId"],
|
||||
"reqId": reqId,
|
||||
}
|
||||
util.RandomSleep(200, 500)
|
||||
}
|
||||
|
|
@ -121,8 +121,8 @@ func getLocalGraph(c *gin.Context) {
|
|||
var keyword, id string
|
||||
var confArg map[string]any
|
||||
if !util.ParseJsonArgs(arg, ret,
|
||||
util.BindJsonArg("k", &keyword, true, false),
|
||||
util.BindJsonArg("id", &id, true, false),
|
||||
util.BindJsonArg("k", &keyword, false, false),
|
||||
util.BindJsonArg("id", &id, true, true),
|
||||
util.BindJsonArg("conf", &confArg, true, false),
|
||||
) {
|
||||
return
|
||||
|
|
@ -157,7 +157,7 @@ func getLocalGraph(c *gin.Context) {
|
|||
"nodes": nodes,
|
||||
"links": links,
|
||||
"conf": local,
|
||||
"reqId": arg["reqId"],
|
||||
"reqId": reqId,
|
||||
}
|
||||
util.RandomSleep(200, 500)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -35,23 +35,29 @@ func searchHistory(c *gin.Context) {
|
|||
return
|
||||
}
|
||||
|
||||
notebook := ""
|
||||
if nil != arg["notebook"] {
|
||||
notebook = arg["notebook"].(string)
|
||||
var notebook, query, op string
|
||||
if !util.ParseJsonArgs(arg, ret,
|
||||
util.BindJsonArg("notebook", ¬ebook, false, false),
|
||||
util.BindJsonArg("query", &query, false, false),
|
||||
util.BindJsonArg("op", &op, false, false),
|
||||
) {
|
||||
return
|
||||
}
|
||||
typ := model.HistoryTypeDoc
|
||||
if nil != arg["type"] {
|
||||
typ = int(arg["type"].(float64))
|
||||
typeVal, ok := util.ParseJsonArg[float64]("type", arg, ret, true, false)
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
typ = int(typeVal)
|
||||
}
|
||||
|
||||
query := arg["query"].(string)
|
||||
page := 1
|
||||
if nil != arg["page"] {
|
||||
page = int(arg["page"].(float64))
|
||||
}
|
||||
op := "all"
|
||||
if nil != arg["op"] {
|
||||
op = arg["op"].(string)
|
||||
pageVal, ok := util.ParseJsonArg[float64]("page", arg, ret, true, false)
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
page = int(pageVal)
|
||||
}
|
||||
histories, pageCount, totalCount := model.FullTextSearchHistory(query, notebook, op, typ, page)
|
||||
ret.Data = map[string]any{
|
||||
|
|
@ -70,21 +76,22 @@ func getHistoryItems(c *gin.Context) {
|
|||
return
|
||||
}
|
||||
|
||||
created := arg["created"].(string)
|
||||
|
||||
notebook := ""
|
||||
if nil != arg["notebook"] {
|
||||
notebook = arg["notebook"].(string)
|
||||
var created, notebook, query, op string
|
||||
if !util.ParseJsonArgs(arg, ret,
|
||||
util.BindJsonArg("created", &created, true, true),
|
||||
util.BindJsonArg("notebook", ¬ebook, false, false),
|
||||
util.BindJsonArg("query", &query, false, false),
|
||||
util.BindJsonArg("op", &op, false, false),
|
||||
) {
|
||||
return
|
||||
}
|
||||
typ := model.HistoryTypeDoc
|
||||
if nil != arg["type"] {
|
||||
typ = int(arg["type"].(float64))
|
||||
}
|
||||
|
||||
query := arg["query"].(string)
|
||||
op := "all"
|
||||
if nil != arg["op"] {
|
||||
op = arg["op"].(string)
|
||||
typeVal, ok := util.ParseJsonArg[float64]("type", arg, ret, true, false)
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
typ = int(typeVal)
|
||||
}
|
||||
histories := model.FullTextSearchHistoryItems(created, query, notebook, op, typ)
|
||||
ret.Data = map[string]any{
|
||||
|
|
@ -139,15 +146,20 @@ func getDocHistoryContent(c *gin.Context) {
|
|||
return
|
||||
}
|
||||
|
||||
historyPath := arg["historyPath"].(string)
|
||||
k := arg["k"]
|
||||
var keyword string
|
||||
if nil != k {
|
||||
keyword = k.(string)
|
||||
var historyPath, keyword string
|
||||
if !util.ParseJsonArgs(arg, ret,
|
||||
util.BindJsonArg("historyPath", &historyPath, true, true),
|
||||
util.BindJsonArg("k", &keyword, false, false),
|
||||
) {
|
||||
return
|
||||
}
|
||||
highlight := true
|
||||
if val, ok := arg["highlight"]; ok {
|
||||
highlight = val.(bool)
|
||||
if nil != arg["highlight"] {
|
||||
highlightVal, ok := util.ParseJsonArg[bool]("highlight", arg, ret, true, false)
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
highlight = highlightVal
|
||||
}
|
||||
id, rootID, content, isLargeDoc, err := model.GetDocHistoryContent(historyPath, keyword, highlight)
|
||||
if err != nil {
|
||||
|
|
@ -175,8 +187,8 @@ func rollbackDocHistory(c *gin.Context) {
|
|||
|
||||
var notebook, historyPath string
|
||||
if !util.ParseJsonArgs(arg, ret,
|
||||
util.BindJsonArg("notebook", ¬ebook, true, false),
|
||||
util.BindJsonArg("historyPath", &historyPath, true, false),
|
||||
util.BindJsonArg("notebook", ¬ebook, true, true),
|
||||
util.BindJsonArg("historyPath", &historyPath, true, true),
|
||||
) {
|
||||
return
|
||||
}
|
||||
|
|
@ -202,7 +214,7 @@ func rollbackAssetsHistory(c *gin.Context) {
|
|||
}
|
||||
|
||||
var historyPath string
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("historyPath", &historyPath, true, false)) {
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("historyPath", &historyPath, true, true)) {
|
||||
return
|
||||
}
|
||||
err := model.RollbackAssetsHistory(historyPath)
|
||||
|
|
@ -223,7 +235,7 @@ func rollbackNotebookHistory(c *gin.Context) {
|
|||
}
|
||||
|
||||
var historyPath string
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("historyPath", &historyPath, true, false)) {
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("historyPath", &historyPath, true, true)) {
|
||||
return
|
||||
}
|
||||
err := model.RollbackNotebookHistory(historyPath)
|
||||
|
|
@ -244,7 +256,7 @@ func rollbackAttributeViewHistory(c *gin.Context) {
|
|||
}
|
||||
|
||||
var historyPath string
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("historyPath", &historyPath, true, false)) {
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("historyPath", &historyPath, true, true)) {
|
||||
return
|
||||
}
|
||||
err := model.RollbackAttributeViewHistory(historyPath)
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ func getShorthand(c *gin.Context) {
|
|||
}
|
||||
|
||||
var id string
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("id", &id, true, false)) {
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("id", &id, true, true)) {
|
||||
return
|
||||
}
|
||||
data, err := model.GetCloudShorthand(id)
|
||||
|
|
|
|||
|
|
@ -162,7 +162,7 @@ func forwardProxy(c *gin.Context) {
|
|||
}
|
||||
|
||||
var destURL string
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("url", &destURL, true, false)) {
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("url", &destURL, true, true)) {
|
||||
return
|
||||
}
|
||||
u, e := url.ParseRequestURI(destURL)
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ func getNotebookInfo(c *gin.Context) {
|
|||
}
|
||||
|
||||
var boxID string
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("notebook", &boxID, true, false)) {
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("notebook", &boxID, true, true)) {
|
||||
return
|
||||
}
|
||||
if util.InvalidIDPattern(boxID, ret) {
|
||||
|
|
@ -69,7 +69,7 @@ func setNotebookIcon(c *gin.Context) {
|
|||
|
||||
var boxID, icon string
|
||||
if !util.ParseJsonArgs(arg, ret,
|
||||
util.BindJsonArg("notebook", &boxID, true, false),
|
||||
util.BindJsonArg("notebook", &boxID, true, true),
|
||||
util.BindJsonArg("icon", &icon, true, false),
|
||||
) {
|
||||
return
|
||||
|
|
@ -103,18 +103,16 @@ func renameNotebook(c *gin.Context) {
|
|||
return
|
||||
}
|
||||
|
||||
var notebook string
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("notebook", ¬ebook, true, false)) {
|
||||
var notebook, name string
|
||||
if !util.ParseJsonArgs(arg, ret,
|
||||
util.BindJsonArg("notebook", ¬ebook, true, true),
|
||||
util.BindJsonArg("name", &name, true, false),
|
||||
) {
|
||||
return
|
||||
}
|
||||
if util.InvalidIDPattern(notebook, ret) {
|
||||
return
|
||||
}
|
||||
|
||||
var name string
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("name", &name, true, false)) {
|
||||
return
|
||||
}
|
||||
err := model.RenameBox(notebook, name)
|
||||
if err != nil {
|
||||
ret.Code = -1
|
||||
|
|
@ -141,7 +139,7 @@ func removeNotebook(c *gin.Context) {
|
|||
}
|
||||
|
||||
var notebook string
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("notebook", ¬ebook, true, false)) {
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("notebook", ¬ebook, true, true)) {
|
||||
return
|
||||
}
|
||||
if util.InvalidIDPattern(notebook, ret) {
|
||||
|
|
@ -225,7 +223,7 @@ func openNotebook(c *gin.Context) {
|
|||
}
|
||||
|
||||
var notebook string
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("notebook", ¬ebook, true, false)) {
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("notebook", ¬ebook, true, true)) {
|
||||
return
|
||||
}
|
||||
if util.InvalidIDPattern(notebook, ret) {
|
||||
|
|
|
|||
|
|
@ -18,7 +18,6 @@ package api
|
|||
|
||||
import (
|
||||
"net/http"
|
||||
"strings"
|
||||
|
||||
"github.com/88250/gulu"
|
||||
"github.com/gin-gonic/gin"
|
||||
|
|
@ -35,13 +34,7 @@ func pushMsg(c *gin.Context) {
|
|||
}
|
||||
|
||||
var msg string
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("msg", &msg, true, false)) {
|
||||
return
|
||||
}
|
||||
msg = strings.TrimSpace(msg)
|
||||
if "" == msg {
|
||||
ret.Code = -1
|
||||
ret.Msg = "Field [msg] must not be empty"
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("msg", &msg, true, true)) {
|
||||
return
|
||||
}
|
||||
|
||||
|
|
@ -66,13 +59,7 @@ func pushErrMsg(c *gin.Context) {
|
|||
}
|
||||
|
||||
var msg string
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("msg", &msg, true, false)) {
|
||||
return
|
||||
}
|
||||
msg = strings.TrimSpace(msg)
|
||||
if "" == msg {
|
||||
ret.Code = -1
|
||||
ret.Msg = "Field [msg] must not be empty"
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("msg", &msg, true, true)) {
|
||||
return
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -36,10 +36,10 @@ func loadPetals(c *gin.Context) {
|
|||
}
|
||||
|
||||
var frontend string
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("frontend", &frontend, true, false)) {
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("frontend", &frontend, true, true)) {
|
||||
return
|
||||
}
|
||||
isPublish := model.IsReadOnlyRole(model.GetGinContextRole(c))
|
||||
isPublish := model.IsReadOnlyRoleContext(c)
|
||||
|
||||
ret.Data = model.LoadPetals(frontend, isPublish)
|
||||
}
|
||||
|
|
@ -53,17 +53,17 @@ func setPetalEnabled(c *gin.Context) {
|
|||
return
|
||||
}
|
||||
|
||||
var packageName, frontend, app string
|
||||
var packageName, app string
|
||||
var enabled bool
|
||||
if !util.ParseJsonArgs(arg, ret,
|
||||
util.BindJsonArg("packageName", &packageName, true, false),
|
||||
util.BindJsonArg("packageName", &packageName, true, true),
|
||||
util.BindJsonArg("enabled", &enabled, true, false),
|
||||
util.BindJsonArg("frontend", &frontend, true, false),
|
||||
util.BindJsonArg("app", &app, false, false),
|
||||
) {
|
||||
return
|
||||
}
|
||||
data, err := model.SetPetalEnabled(packageName, enabled, frontend)
|
||||
|
||||
data, err := model.SetPetalEnabled(packageName, enabled)
|
||||
if err != nil {
|
||||
ret.Code = -1
|
||||
ret.Msg = err.Error()
|
||||
|
|
|
|||
|
|
@ -85,7 +85,7 @@ func getRepoFile(c *gin.Context) {
|
|||
}
|
||||
|
||||
var id string
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("id", &id, true, false)) {
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("id", &id, true, true)) {
|
||||
return
|
||||
}
|
||||
data, p, err := model.GetRepoFile(id)
|
||||
|
|
@ -117,7 +117,7 @@ func rollbackRepoSnapshotFile(c *gin.Context) {
|
|||
}
|
||||
|
||||
var id string
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("id", &id, true, false)) {
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("id", &id, true, true)) {
|
||||
return
|
||||
}
|
||||
|
||||
|
|
@ -139,7 +139,7 @@ func openRepoSnapshotFile(c *gin.Context) {
|
|||
}
|
||||
|
||||
var id string
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("id", &id, true, false)) {
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("id", &id, true, true)) {
|
||||
return
|
||||
}
|
||||
|
||||
|
|
@ -169,8 +169,8 @@ func diffRepoSnapshots(c *gin.Context) {
|
|||
|
||||
var left, right string
|
||||
if !util.ParseJsonArgs(arg, ret,
|
||||
util.BindJsonArg("left", &left, true, false),
|
||||
util.BindJsonArg("right", &right, true, false),
|
||||
util.BindJsonArg("left", &left, true, true),
|
||||
util.BindJsonArg("right", &right, true, true),
|
||||
) {
|
||||
return
|
||||
}
|
||||
|
|
@ -227,7 +227,7 @@ func checkoutRepo(c *gin.Context) {
|
|||
}
|
||||
|
||||
var id string
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("id", &id, true, false)) {
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("id", &id, true, true)) {
|
||||
return
|
||||
}
|
||||
model.CheckoutRepo(id)
|
||||
|
|
@ -244,7 +244,7 @@ func downloadCloudSnapshot(c *gin.Context) {
|
|||
|
||||
var id, tag string
|
||||
if !util.ParseJsonArgs(arg, ret,
|
||||
util.BindJsonArg("id", &id, true, false),
|
||||
util.BindJsonArg("id", &id, true, true),
|
||||
util.BindJsonArg("tag", &tag, true, false),
|
||||
) {
|
||||
return
|
||||
|
|
@ -267,7 +267,7 @@ func uploadCloudSnapshot(c *gin.Context) {
|
|||
|
||||
var id, tag string
|
||||
if !util.ParseJsonArgs(arg, ret,
|
||||
util.BindJsonArg("id", &id, true, false),
|
||||
util.BindJsonArg("id", &id, true, true),
|
||||
util.BindJsonArg("tag", &tag, true, false),
|
||||
) {
|
||||
return
|
||||
|
|
@ -359,7 +359,7 @@ func removeCloudRepoTagSnapshot(c *gin.Context) {
|
|||
}
|
||||
|
||||
var tag string
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("tag", &tag, true, false)) {
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("tag", &tag, true, true)) {
|
||||
return
|
||||
}
|
||||
err := model.RemoveCloudRepoTag(tag)
|
||||
|
|
@ -396,7 +396,7 @@ func removeRepoTagSnapshot(c *gin.Context) {
|
|||
}
|
||||
|
||||
var tag string
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("tag", &tag, true, false)) {
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("tag", &tag, true, true)) {
|
||||
return
|
||||
}
|
||||
err := model.RemoveTagSnapshot(tag)
|
||||
|
|
@ -439,7 +439,7 @@ func tagSnapshot(c *gin.Context) {
|
|||
|
||||
var id, name string
|
||||
if !util.ParseJsonArgs(arg, ret,
|
||||
util.BindJsonArg("id", &id, true, false),
|
||||
util.BindJsonArg("id", &id, true, true),
|
||||
util.BindJsonArg("name", &name, true, false),
|
||||
) {
|
||||
return
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ func getSnippet(c *gin.Context) {
|
|||
var enabledArg float64 // 0:禁用,1:启用,2:全部
|
||||
var keyword string
|
||||
if !util.ParseJsonArgs(arg, ret,
|
||||
util.BindJsonArg("type", &typ, true, false),
|
||||
util.BindJsonArg("type", &typ, true, true),
|
||||
util.BindJsonArg("enabled", &enabledArg, true, false),
|
||||
util.BindJsonArg("keyword", &keyword, false, false),
|
||||
) {
|
||||
|
|
@ -60,7 +60,7 @@ func getSnippet(c *gin.Context) {
|
|||
return
|
||||
}
|
||||
|
||||
isPublish := model.IsReadOnlyRole(model.GetGinContextRole(c))
|
||||
isPublish := model.IsReadOnlyRoleContext(c)
|
||||
var snippets []*conf.Snippet
|
||||
for _, s := range confSnippets {
|
||||
if isPublish && s.DisabledInPublish {
|
||||
|
|
@ -144,7 +144,7 @@ func removeSnippet(c *gin.Context) {
|
|||
}
|
||||
|
||||
var id string
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("id", &id, true, false)) {
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("id", &id, true, true)) {
|
||||
return
|
||||
}
|
||||
snippet, err := model.RemoveSnippet(id)
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ func SQL(c *gin.Context) {
|
|||
}
|
||||
|
||||
var stmt string
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("stmt", &stmt, true, false)) {
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("stmt", &stmt, true, true)) {
|
||||
return
|
||||
}
|
||||
result, err := sql.Query(stmt, model.Conf.Search.Limit)
|
||||
|
|
|
|||
|
|
@ -29,14 +29,12 @@ func getRecentDocs(c *gin.Context) {
|
|||
ret := gulu.Ret.NewResult()
|
||||
defer c.JSON(http.StatusOK, ret)
|
||||
|
||||
// 获取排序参数
|
||||
sortBy := "viewedAt" // 默认按浏览时间排序,openAt:按打开时间排序,closedAt:按关闭时间排序
|
||||
|
||||
// 兼容旧版接口,不能直接使用 util.JsonArg()
|
||||
var sortBy string
|
||||
arg := map[string]any{}
|
||||
// 兼容旧版接口,不能直接使用 util.JsonArg()
|
||||
if err := c.ShouldBindJSON(&arg); err == nil {
|
||||
if arg["sortBy"] != nil {
|
||||
sortBy = arg["sortBy"].(string)
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("sortBy", &sortBy, false, false)) {
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -525,7 +525,7 @@ func removeCloudSyncDir(c *gin.Context) {
|
|||
}
|
||||
|
||||
var name string
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("name", &name, true, false)) {
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("name", &name, true, true)) {
|
||||
return
|
||||
}
|
||||
err := model.RemoveCloudSyncDir(name)
|
||||
|
|
@ -549,7 +549,7 @@ func createCloudSyncDir(c *gin.Context) {
|
|||
}
|
||||
|
||||
var name string
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("name", &name, true, false)) {
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("name", &name, true, true)) {
|
||||
return
|
||||
}
|
||||
err := model.CreateCloudSyncDir(name)
|
||||
|
|
@ -797,7 +797,7 @@ func setCloudSyncDir(c *gin.Context) {
|
|||
}
|
||||
|
||||
var name string
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("name", &name, true, false)) {
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("name", &name, true, true)) {
|
||||
return
|
||||
}
|
||||
model.SetCloudSyncDir(name)
|
||||
|
|
|
|||
|
|
@ -632,8 +632,8 @@ func setAccessAuthCode(c *gin.Context) {
|
|||
aac = model.Conf.AccessAuthCode
|
||||
}
|
||||
|
||||
aac = strings.TrimSpace(aac)
|
||||
aac = util.RemoveInvalid(aac)
|
||||
aac = strings.TrimSpace(aac)
|
||||
|
||||
model.Conf.AccessAuthCode = aac
|
||||
model.Conf.Save()
|
||||
|
|
|
|||
|
|
@ -34,26 +34,25 @@ func getTag(c *gin.Context) {
|
|||
return
|
||||
}
|
||||
|
||||
sortParam := arg["sort"]
|
||||
sortMode := model.Conf.Tag.Sort
|
||||
if nil != sortParam {
|
||||
sortMode = int(sortParam.(float64))
|
||||
}
|
||||
|
||||
model.Conf.Tag.Sort = sortMode
|
||||
model.Conf.Save()
|
||||
|
||||
// API `getTag` add an optional parameter `ignoreMaxListHint` https://github.com/siyuan-note/siyuan/issues/16000
|
||||
ignoreMaxListHint := false
|
||||
ignoreMaxListHintArg := arg["ignoreMaxListHint"]
|
||||
if nil != ignoreMaxListHintArg {
|
||||
ignoreMaxListHint = ignoreMaxListHintArg.(bool)
|
||||
}
|
||||
|
||||
var ignoreMaxListHint bool
|
||||
var app string
|
||||
if !util.ParseJsonArgs(arg, ret, util.BindJsonArg("app", &app, true, false)) {
|
||||
if !util.ParseJsonArgs(arg, ret,
|
||||
// API `getTag` add an optional parameter `ignoreMaxListHint` https://github.com/siyuan-note/siyuan/issues/16000
|
||||
util.BindJsonArg("ignoreMaxListHint", &ignoreMaxListHint, false, false),
|
||||
util.BindJsonArg("app", &app, false, false),
|
||||
) {
|
||||
return
|
||||
}
|
||||
|
||||
if nil != arg["sort"] {
|
||||
sortVal, ok := util.ParseJsonArg[float64]("sort", arg, ret, true, false)
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
model.Conf.Tag.Sort = int(sortVal)
|
||||
model.Conf.Save()
|
||||
}
|
||||
|
||||
tags := model.BuildTags(ignoreMaxListHint, app)
|
||||
|
||||
if model.IsReadOnlyRoleContext(c) {
|
||||
|
|
@ -76,7 +75,7 @@ func renameTag(c *gin.Context) {
|
|||
var oldLabel, newLabel string
|
||||
if !util.ParseJsonArgs(arg, ret,
|
||||
util.BindJsonArg("oldLabel", &oldLabel, true, false),
|
||||
util.BindJsonArg("newLabel", &newLabel, true, false),
|
||||
util.BindJsonArg("newLabel", &newLabel, true, true),
|
||||
) {
|
||||
return
|
||||
}
|
||||
|
|
|
|||
|
|
@ -42,10 +42,10 @@ func performTransactions(c *gin.Context) {
|
|||
var reqID float64
|
||||
var app, session string
|
||||
if !util.ParseJsonArgs(arg, ret,
|
||||
util.BindJsonArg("transactions", &trans, true, false),
|
||||
util.BindJsonArg("transactions", &trans, true, true),
|
||||
util.BindJsonArg("reqId", &reqID, true, false),
|
||||
util.BindJsonArg("app", &app, true, false),
|
||||
util.BindJsonArg("session", &session, true, false),
|
||||
util.BindJsonArg("app", &app, false, false),
|
||||
util.BindJsonArg("session", &session, false, false),
|
||||
) {
|
||||
return
|
||||
}
|
||||
|
|
|
|||
|
|
@ -62,6 +62,11 @@ func ParseInstalledPlugin(name, frontend string) (found bool, displayName string
|
|||
|
||||
// IsIncompatiblePlugin 判断插件是否与当前环境不兼容
|
||||
func IsIncompatiblePlugin(plugin *Package, frontend string) bool {
|
||||
// frontend 为空时不检查兼容性(视为兼容)
|
||||
if "" == frontend {
|
||||
return false
|
||||
}
|
||||
|
||||
backend := getCurrentBackend()
|
||||
if !isTargetSupported(plugin.Backends, backend) {
|
||||
return true
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@ func ChatGPTWithAction(ids []string, action string) (ret string) {
|
|||
var cachedContextMsg []string
|
||||
|
||||
func chatGPT(msg string, cloud bool) (ret string) {
|
||||
if "Clear context" == strings.TrimSpace(msg) {
|
||||
if "Clear context" == msg {
|
||||
// AI clear context action https://github.com/siyuan-note/siyuan/issues/10255
|
||||
cachedContextMsg = nil
|
||||
return
|
||||
|
|
|
|||
|
|
@ -79,8 +79,8 @@ func updatePackages(packages []*bazaar.Package, pkgType string, count *int, tota
|
|||
}
|
||||
|
||||
// BatchUpdatePackages 更新所有集市包
|
||||
func BatchUpdatePackages(frontend string) {
|
||||
plugins, widgets, icons, themes, templates := GetUpdatedPackages(frontend)
|
||||
func BatchUpdatePackages() {
|
||||
plugins, widgets, icons, themes, templates := GetUpdatedPackages("")
|
||||
|
||||
total := len(plugins) + len(widgets) + len(icons) + len(themes) + len(templates)
|
||||
if 1 > total {
|
||||
|
|
@ -112,23 +112,25 @@ func BatchUpdatePackages(frontend string) {
|
|||
}
|
||||
|
||||
// GetUpdatedPackages 获取所有类型集市包的更新列表
|
||||
//
|
||||
// - frontend 仅用于插件兼容性展示
|
||||
func GetUpdatedPackages(frontend string) (plugins, widgets, icons, themes, templates []*bazaar.Package) {
|
||||
wg := &sync.WaitGroup{}
|
||||
|
||||
wg.Go(func() {
|
||||
plugins = getUpdatedPackages("plugins", frontend, "")
|
||||
plugins = getUpdatedPackages("plugins", frontend)
|
||||
})
|
||||
wg.Go(func() {
|
||||
themes = getUpdatedPackages("themes", "", "")
|
||||
themes = getUpdatedPackages("themes", "")
|
||||
})
|
||||
wg.Go(func() {
|
||||
icons = getUpdatedPackages("icons", "", "")
|
||||
icons = getUpdatedPackages("icons", "")
|
||||
})
|
||||
wg.Go(func() {
|
||||
templates = getUpdatedPackages("templates", "", "")
|
||||
templates = getUpdatedPackages("templates", "")
|
||||
})
|
||||
wg.Go(func() {
|
||||
widgets = getUpdatedPackages("widgets", "", "")
|
||||
widgets = getUpdatedPackages("widgets", "")
|
||||
})
|
||||
|
||||
wg.Wait()
|
||||
|
|
@ -136,8 +138,8 @@ func GetUpdatedPackages(frontend string) (plugins, widgets, icons, themes, templ
|
|||
}
|
||||
|
||||
// getUpdatedPackages 获取单个类型集市包的更新列表
|
||||
func getUpdatedPackages(pkgType, frontend, keyword string) (updatedPackages []*bazaar.Package) {
|
||||
installedPackages := GetInstalledPackages(pkgType, frontend, keyword)
|
||||
func getUpdatedPackages(pkgType, frontend string) (updatedPackages []*bazaar.Package) {
|
||||
installedPackages := GetInstalledPackages(pkgType, frontend, "")
|
||||
updatedPackages = []*bazaar.Package{} // 确保返回空切片而非 nil
|
||||
for _, pkg := range installedPackages {
|
||||
if !pkg.Outdated {
|
||||
|
|
|
|||
|
|
@ -577,7 +577,6 @@ func getUser(token string) (*conf.User, error) {
|
|||
}
|
||||
|
||||
func UseActivationcode(code string) (err error) {
|
||||
code = strings.TrimSpace(code)
|
||||
code = util.RemoveInvalid(code)
|
||||
requestResult := gulu.Ret.NewResult()
|
||||
request := httpclient.NewCloudRequest30s()
|
||||
|
|
@ -601,7 +600,6 @@ func UseActivationcode(code string) (err error) {
|
|||
}
|
||||
|
||||
func CheckActivationcode(code string) (retCode int, msg string) {
|
||||
code = strings.TrimSpace(code)
|
||||
code = util.RemoveInvalid(code)
|
||||
retCode = 1
|
||||
requestResult := gulu.Ret.NewResult()
|
||||
|
|
|
|||
|
|
@ -589,8 +589,8 @@ func InitConf() {
|
|||
if "" != util.AccessAuthCode {
|
||||
Conf.AccessAuthCode = util.AccessAuthCode
|
||||
}
|
||||
Conf.AccessAuthCode = strings.TrimSpace(Conf.AccessAuthCode)
|
||||
Conf.AccessAuthCode = util.RemoveInvalid(Conf.AccessAuthCode)
|
||||
Conf.AccessAuthCode = strings.TrimSpace(Conf.AccessAuthCode)
|
||||
|
||||
if 1 == Conf.DataIndexState {
|
||||
// 上次未正常完成数据索引
|
||||
|
|
|
|||
|
|
@ -550,7 +550,8 @@ func buildSearchHistoryQueryFilter(query, op, box, table string, typ int) (stmt
|
|||
} else {
|
||||
stmt += "1=1"
|
||||
}
|
||||
if "all" != op {
|
||||
|
||||
if op = strings.TrimSpace(op); op != "" && op != "all" {
|
||||
stmt += " AND op = '" + op + "'"
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@ import (
|
|||
"fmt"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strconv"
|
||||
"strings"
|
||||
"sync"
|
||||
|
||||
|
|
@ -28,6 +29,7 @@ import (
|
|||
"github.com/siyuan-note/logging"
|
||||
"github.com/siyuan-note/siyuan/kernel/bazaar"
|
||||
"github.com/siyuan-note/siyuan/kernel/util"
|
||||
"golang.org/x/sync/singleflight"
|
||||
)
|
||||
|
||||
// Petal represents a plugin's management status.
|
||||
|
|
@ -44,10 +46,10 @@ type Petal struct {
|
|||
I18n map[string]any `json:"i18n"` // i18n text
|
||||
}
|
||||
|
||||
func SetPetalEnabled(name string, enabled bool, frontend string) (ret *Petal, err error) {
|
||||
func SetPetalEnabled(name string, enabled bool) (ret *Petal, err error) {
|
||||
petals := getPetals()
|
||||
|
||||
found, displayName, incompatible, disabledInPublish, disallowInstall := bazaar.ParseInstalledPlugin(name, frontend)
|
||||
found, displayName, incompatible, disabledInPublish, disallowInstall := bazaar.ParseInstalledPlugin(name, "")
|
||||
if !found {
|
||||
logging.LogErrorf("plugin [%s] not found", name)
|
||||
return
|
||||
|
|
@ -66,16 +68,9 @@ func SetPetalEnabled(name string, enabled bool, frontend string) (ret *Petal, er
|
|||
ret.DisabledInPublish = disabledInPublish
|
||||
ret.DisallowInstall = disallowInstall
|
||||
|
||||
if enabled && incompatible {
|
||||
err = fmt.Errorf(Conf.Language(205))
|
||||
logging.LogInfof("plugin [%s] is incompatible [%s]", name, frontend)
|
||||
return
|
||||
}
|
||||
|
||||
if enabled && disallowInstall {
|
||||
msg := "require upgrade SiYuan to use this plugin [" + name + "]"
|
||||
err = fmt.Errorf(msg)
|
||||
logging.LogInfof(msg)
|
||||
err = fmt.Errorf("require upgrade SiYuan to use this plugin [%s]", name)
|
||||
logging.LogInfof("require upgrade SiYuan to use this plugin [%s]", name)
|
||||
return
|
||||
}
|
||||
|
||||
|
|
@ -94,7 +89,21 @@ func getPetalByName(name string, petals []*Petal) (ret *Petal) {
|
|||
return
|
||||
}
|
||||
|
||||
var loadPetalsFlight singleflight.Group
|
||||
|
||||
func LoadPetals(frontend string, isPublish bool) (ret []*Petal) {
|
||||
// 调用 setPetalEnabled 接口之后推送消息到所有前端实例,接着会同时调用 loadPetals 接口,合并相同类型的请求为一次执行
|
||||
key := "loadPetals:" + frontend + ":" + strconv.FormatBool(isPublish)
|
||||
v, err, _ := loadPetalsFlight.Do(key, func() (any, error) {
|
||||
return loadPetals(frontend, isPublish), nil
|
||||
})
|
||||
if err != nil {
|
||||
return []*Petal{}
|
||||
}
|
||||
return v.([]*Petal)
|
||||
}
|
||||
|
||||
func loadPetals(frontend string, isPublish bool) (ret []*Petal) {
|
||||
ret = []*Petal{}
|
||||
|
||||
if Conf.Bazaar.PetalDisabled {
|
||||
|
|
@ -114,7 +123,7 @@ func LoadPetals(frontend string, isPublish bool) (ret []*Petal) {
|
|||
_, petal.DisplayName, petal.Incompatible, petal.DisabledInPublish, petal.DisallowInstall = bazaar.ParseInstalledPlugin(petal.Name, frontend)
|
||||
if !petal.Enabled || petal.Incompatible || (isPublish && petal.DisabledInPublish) || petal.DisallowInstall {
|
||||
if petal.DisallowInstall {
|
||||
SetPetalEnabled(petal.Name, false, frontend)
|
||||
SetPetalEnabled(petal.Name, false)
|
||||
logging.LogInfof("plugin [%s] disallowed install, auto disabled", petal.Name)
|
||||
}
|
||||
continue
|
||||
|
|
|
|||
|
|
@ -647,8 +647,8 @@ func statTypesByPath(files []*entity.File) (ret []*TypeCount) {
|
|||
func ImportRepoKey(base64Key string) (retKey string, err error) {
|
||||
util.PushMsg(Conf.Language(136), 3000)
|
||||
|
||||
retKey = strings.TrimSpace(base64Key)
|
||||
retKey = gulu.Str.RemoveInvisible(retKey)
|
||||
retKey = gulu.Str.RemoveInvisible(base64Key)
|
||||
retKey = strings.TrimSpace(retKey)
|
||||
if 1 > len(retKey) {
|
||||
err = errors.New(Conf.Language(142))
|
||||
return
|
||||
|
|
@ -984,11 +984,6 @@ func RemoveCloudRepoTag(tag string) (err error) {
|
|||
return
|
||||
}
|
||||
|
||||
if "" == tag {
|
||||
err = errors.New("tag is empty")
|
||||
return
|
||||
}
|
||||
|
||||
repo, err := newRepository()
|
||||
if err != nil {
|
||||
return
|
||||
|
|
@ -1134,8 +1129,8 @@ func TagSnapshot(id, name string) (err error) {
|
|||
return
|
||||
}
|
||||
|
||||
name = strings.TrimSpace(name)
|
||||
name = util.RemoveInvalid(name)
|
||||
name = strings.TrimSpace(name)
|
||||
if "" == name {
|
||||
err = errors.New(Conf.Language(142))
|
||||
return
|
||||
|
|
@ -1170,8 +1165,8 @@ func IndexRepo(memo string) (err error) {
|
|||
return
|
||||
}
|
||||
|
||||
memo = strings.TrimSpace(memo)
|
||||
memo = gulu.Str.RemoveInvisible(memo)
|
||||
memo = strings.TrimSpace(memo)
|
||||
if "" == memo {
|
||||
err = errors.New(Conf.Language(142))
|
||||
return
|
||||
|
|
|
|||
|
|
@ -106,8 +106,8 @@ func LoginAuth(c *gin.Context) {
|
|||
}
|
||||
|
||||
authCode := arg["authCode"].(string)
|
||||
authCode = strings.TrimSpace(authCode)
|
||||
authCode = util.RemoveInvalid(authCode)
|
||||
authCode = strings.TrimSpace(authCode)
|
||||
|
||||
if Conf.AccessAuthCode != authCode {
|
||||
ret.Code = -1
|
||||
|
|
@ -187,7 +187,7 @@ func GetCaptcha(c *gin.Context) {
|
|||
}
|
||||
|
||||
func CheckReadonly(c *gin.Context) {
|
||||
if util.ReadOnly || IsReadOnlyRole(GetGinContextRole(c)) {
|
||||
if util.ReadOnly || IsReadOnlyRoleContext(c) {
|
||||
result := util.NewResult()
|
||||
result.Code = -1
|
||||
result.Msg = Conf.Language(34)
|
||||
|
|
|
|||
|
|
@ -524,7 +524,6 @@ func CreateCloudSyncDir(name string) (err error) {
|
|||
return
|
||||
}
|
||||
|
||||
name = strings.TrimSpace(name)
|
||||
name = util.RemoveInvalid(name)
|
||||
if !cloud.IsValidCloudDirName(name) {
|
||||
return errors.New(Conf.Language(37))
|
||||
|
|
@ -554,10 +553,6 @@ func RemoveCloudSyncDir(name string) (err error) {
|
|||
|
||||
msgId := util.PushMsg(Conf.Language(116), 15000)
|
||||
|
||||
if "" == name {
|
||||
return
|
||||
}
|
||||
|
||||
repo, err := newRepository()
|
||||
if err != nil {
|
||||
return
|
||||
|
|
|
|||
|
|
@ -123,7 +123,6 @@ func RenameTag(oldLabel, newLabel string) (err error) {
|
|||
return fmt.Errorf(Conf.Language(112), invalidChar)
|
||||
}
|
||||
|
||||
newLabel = strings.TrimSpace(newLabel)
|
||||
newLabel = strings.TrimPrefix(newLabel, "/")
|
||||
newLabel = strings.TrimSuffix(newLabel, "/")
|
||||
newLabel = strings.TrimSpace(newLabel)
|
||||
|
|
|
|||
|
|
@ -314,9 +314,9 @@ func FilterFileName(name string) string {
|
|||
name = strings.ReplaceAll(name, "<", "_")
|
||||
name = strings.ReplaceAll(name, ">", "_")
|
||||
name = strings.ReplaceAll(name, "|", "_")
|
||||
name = RemoveInvalid(name) // Remove invisible characters from file names when uploading assets https://github.com/siyuan-note/siyuan/issues/11683
|
||||
name = strings.TrimSpace(name)
|
||||
name = strings.TrimSuffix(name, ".")
|
||||
name = RemoveInvalid(name) // Remove invisible characters from file names when uploading assets https://github.com/siyuan-note/siyuan/issues/11683
|
||||
return name
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -114,8 +114,8 @@ func Boot() {
|
|||
ServerPort = *port
|
||||
ReadOnly, _ = strconv.ParseBool(*readOnly)
|
||||
AccessAuthCode = *accessAuthCode
|
||||
AccessAuthCode = strings.TrimSpace(AccessAuthCode)
|
||||
AccessAuthCode = RemoveInvalid(AccessAuthCode)
|
||||
AccessAuthCode = strings.TrimSpace(AccessAuthCode)
|
||||
Container = ContainerStd
|
||||
if RunInContainer {
|
||||
Container = ContainerDocker
|
||||
|
|
|
|||
Loading…
Reference in a new issue