From c86ed9bd5998dd9d5117c39596c20c4334801ec5 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Sun, 11 Aug 2024 10:01:02 +0800 Subject: [PATCH] :art: Improve marketplace loading when offline https://github.com/siyuan-note/siyuan/issues/12050 --- kernel/bazaar/icon.go | 5 +++++ kernel/bazaar/package.go | 9 +++++++++ kernel/bazaar/plugin.go | 5 +++++ kernel/bazaar/template.go | 5 +++++ kernel/bazaar/theme.go | 5 +++++ kernel/bazaar/widget.go | 5 +++++ kernel/util/net.go | 2 +- 7 files changed, 35 insertions(+), 1 deletion(-) diff --git a/kernel/bazaar/icon.go b/kernel/bazaar/icon.go index b7e509c2e..e3635da3a 100644 --- a/kernel/bazaar/icon.go +++ b/kernel/bazaar/icon.go @@ -37,6 +37,11 @@ type Icon struct { func Icons() (icons []*Icon) { icons = []*Icon{} + isOnline := isBazzarOnline() + if !isOnline { + return + } + stageIndex, err := getStageIndex("icons") if nil != err { return diff --git a/kernel/bazaar/package.go b/kernel/bazaar/package.go index 73b539395..7eb3de138 100644 --- a/kernel/bazaar/package.go +++ b/kernel/bazaar/package.go @@ -482,6 +482,15 @@ func isOutdatedTemplate(template *Template, bazaarTemplates []*Template) bool { return false } +func isBazzarOnline() (ret bool) { + // Improve marketplace loading when offline https://github.com/siyuan-note/siyuan/issues/12050 + ret = util.IsOnline(util.BazaarOSSServer, true) + if !ret { + util.PushErrMsg(util.Langs[util.Lang][24], 5000) + } + return +} + func GetPackageREADME(repoURL, repoHash, packageType string) (ret string) { repoURLHash := repoURL + "@" + repoHash diff --git a/kernel/bazaar/plugin.go b/kernel/bazaar/plugin.go index 9bc6bd29d..86d7decc3 100644 --- a/kernel/bazaar/plugin.go +++ b/kernel/bazaar/plugin.go @@ -39,6 +39,11 @@ type Plugin struct { func Plugins(frontend string) (plugins []*Plugin) { plugins = []*Plugin{} + isOnline := isBazzarOnline() + if !isOnline { + return + } + stageIndex, err := getStageIndex("plugins") if nil != err { return diff --git a/kernel/bazaar/template.go b/kernel/bazaar/template.go index d7f850fab..46f28f9e7 100644 --- a/kernel/bazaar/template.go +++ b/kernel/bazaar/template.go @@ -38,6 +38,11 @@ type Template struct { func Templates() (templates []*Template) { templates = []*Template{} + isOnline := isBazzarOnline() + if !isOnline { + return + } + stageIndex, err := getStageIndex("templates") if nil != err { return diff --git a/kernel/bazaar/theme.go b/kernel/bazaar/theme.go index c5d9d1222..2a6a0e5a1 100644 --- a/kernel/bazaar/theme.go +++ b/kernel/bazaar/theme.go @@ -39,6 +39,11 @@ type Theme struct { func Themes() (ret []*Theme) { ret = []*Theme{} + isOnline := isBazzarOnline() + if !isOnline { + return + } + stageIndex, err := getStageIndex("themes") if nil != err { return diff --git a/kernel/bazaar/widget.go b/kernel/bazaar/widget.go index 2d4b7a312..cd4b504d7 100644 --- a/kernel/bazaar/widget.go +++ b/kernel/bazaar/widget.go @@ -37,6 +37,11 @@ type Widget struct { func Widgets() (widgets []*Widget) { widgets = []*Widget{} + isOnline := isBazzarOnline() + if !isOnline { + return + } + stageIndex, err := getStageIndex("widgets") if nil != err { return diff --git a/kernel/util/net.go b/kernel/util/net.go index 1b51b936c..549670ca1 100644 --- a/kernel/util/net.go +++ b/kernel/util/net.go @@ -111,7 +111,7 @@ func isOnline(checkURL string, skipTlsVerify bool) (ret bool) { } c.SetUserAgent(UserAgent) - for i := 0; i < 3; i++ { + for i := 0; i < 2; i++ { resp, err := c.R().Get(checkURL) if resp.GetHeader("Location") != "" {