Procházet zdrojové kódy

:art: Improve marketplace loading when offline https://github.com/siyuan-note/siyuan/issues/12050

Daniel před 11 měsíci
rodič
revize
c86ed9bd59

+ 5 - 0
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

+ 9 - 0
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
 

+ 5 - 0
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

+ 5 - 0
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

+ 5 - 0
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

+ 5 - 0
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

+ 1 - 1
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") != "" {