diff --git a/kernel/bazaar/icon.go b/kernel/bazaar/icon.go index 7ac3e68df..79c8a2d3c 100644 --- a/kernel/bazaar/icon.go +++ b/kernel/bazaar/icon.go @@ -133,6 +133,7 @@ func InstalledIcons() (ret []*Icon) { icon.PreviewURL = "/appearance/icons/" + dirName + "/preview.png" icon.PreviewURLThumb = "/appearance/icons/" + dirName + "/preview.png" icon.IconURL = "/appearance/icons/" + dirName + "/icon.png" + icon.Funding = parseFunding(iconConf) info, statErr := os.Stat(filepath.Join(installPath, "README.md")) if nil != statErr { logging.LogWarnf("stat install theme README.md failed: %s", statErr) diff --git a/kernel/bazaar/package.go b/kernel/bazaar/package.go index 9e4ca380d..224a6ded8 100644 --- a/kernel/bazaar/package.go +++ b/kernel/bazaar/package.go @@ -75,6 +75,16 @@ type Package struct { Downloads int `json:"downloads"` } +func parseFunding(conf map[string]interface{}) (ret *Funding) { + ret = &Funding{} + funding := conf["funding"].(map[string]interface{}) + ret.OpenCollective = funding["openCollective"].(string) + ret.Patreon = funding["patreon"].(string) + ret.GitHub = funding["github"].(string) + ret.Custom = funding["custom"].([]string) + return +} + func PluginJSON(pluginDirName string) (ret map[string]interface{}, err error) { p := filepath.Join(util.DataDir, "plugins", pluginDirName, "plugin.json") if !gulu.File.IsExist(p) { diff --git a/kernel/bazaar/plugin.go b/kernel/bazaar/plugin.go index d6d429229..12c53930b 100644 --- a/kernel/bazaar/plugin.go +++ b/kernel/bazaar/plugin.go @@ -138,6 +138,7 @@ func InstalledPlugins() (ret []*Plugin) { plugin.PreviewURL = "/plugins/" + dirName + "/preview.png" plugin.PreviewURLThumb = "/plugins/" + dirName + "/preview.png" plugin.IconURL = "/plugins/" + dirName + "/icon.png" + plugin.Funding = parseFunding(pluginConf) info, statErr := os.Stat(filepath.Join(installPath, "README.md")) if nil != statErr { logging.LogWarnf("stat install theme README.md failed: %s", statErr) diff --git a/kernel/bazaar/template.go b/kernel/bazaar/template.go index 9206001bf..800a55cf6 100644 --- a/kernel/bazaar/template.go +++ b/kernel/bazaar/template.go @@ -140,6 +140,7 @@ func InstalledTemplates() (ret []*Template) { template.PreviewURL = "/templates/" + dirName + "/preview.png" template.PreviewURLThumb = "/templates/" + dirName + "/preview.png" template.IconURL = "/templates/" + dirName + "/icon.png" + template.Funding = parseFunding(templateConf) info, statErr := os.Stat(filepath.Join(installPath, "README.md")) if nil != statErr { logging.LogWarnf("stat install theme README.md failed: %s", statErr) diff --git a/kernel/bazaar/theme.go b/kernel/bazaar/theme.go index 7c8ae1fb0..7d0d37f4e 100644 --- a/kernel/bazaar/theme.go +++ b/kernel/bazaar/theme.go @@ -144,6 +144,7 @@ func InstalledThemes() (ret []*Theme) { theme.PreviewURL = "/appearance/themes/" + dirName + "/preview.png" theme.PreviewURLThumb = "/appearance/themes/" + dirName + "/preview.png" theme.IconURL = "/appearance/themes/" + dirName + "/icon.png" + theme.Funding = parseFunding(themeConf) info, statErr := os.Stat(filepath.Join(installPath, "README.md")) if nil != statErr { logging.LogWarnf("stat install theme README.md failed: %s", statErr) diff --git a/kernel/bazaar/widget.go b/kernel/bazaar/widget.go index 6789278c2..38502116e 100644 --- a/kernel/bazaar/widget.go +++ b/kernel/bazaar/widget.go @@ -138,6 +138,7 @@ func InstalledWidgets() (ret []*Widget) { widget.PreviewURL = "/widgets/" + dirName + "/preview.png" widget.PreviewURLThumb = "/widgets/" + dirName + "/preview.png" widget.IconURL = "/widgets/" + dirName + "/icon.png" + widget.Funding = parseFunding(widgetConf) info, statErr := os.Stat(filepath.Join(installPath, "README.md")) if nil != statErr { logging.LogWarnf("stat install theme README.md failed: %s", statErr)