Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
Vanessa 2023-10-22 11:06:19 +08:00
commit bea53f4bec
2 changed files with 185 additions and 20 deletions

View file

@ -52,9 +52,13 @@ func getBazaarPlugin(c *gin.Context) {
}
frontend := arg["frontend"].(string)
var keyword string
if keywordArg := arg["keyword"]; nil != keywordArg {
keyword = keywordArg.(string)
}
ret.Data = map[string]interface{}{
"packages": model.BazaarPlugins(frontend),
"packages": model.BazaarPlugins(frontend, keyword),
}
}
@ -97,7 +101,7 @@ func installBazaarPlugin(c *gin.Context) {
util.PushMsg(model.Conf.Language(69), 3000)
ret.Data = map[string]interface{}{
"packages": model.BazaarPlugins(frontend),
"packages": model.BazaarPlugins(frontend, ""),
}
}
@ -120,7 +124,7 @@ func uninstallBazaarPlugin(c *gin.Context) {
}
ret.Data = map[string]interface{}{
"packages": model.BazaarPlugins(frontend),
"packages": model.BazaarPlugins(frontend, ""),
}
}
@ -128,8 +132,18 @@ func getBazaarWidget(c *gin.Context) {
ret := gulu.Ret.NewResult()
defer c.JSON(http.StatusOK, ret)
arg, ok := util.JsonArg(c, ret)
if !ok {
return
}
var keyword string
if keywordArg := arg["keyword"]; nil != keywordArg {
keyword = keywordArg.(string)
}
ret.Data = map[string]interface{}{
"packages": model.BazaarWidgets(),
"packages": model.BazaarWidgets(keyword),
}
}
@ -163,7 +177,7 @@ func installBazaarWidget(c *gin.Context) {
util.PushMsg(model.Conf.Language(69), 3000)
ret.Data = map[string]interface{}{
"packages": model.BazaarWidgets(),
"packages": model.BazaarWidgets(""),
}
}
@ -185,7 +199,7 @@ func uninstallBazaarWidget(c *gin.Context) {
}
ret.Data = map[string]interface{}{
"packages": model.BazaarWidgets(),
"packages": model.BazaarWidgets(""),
}
}
@ -193,8 +207,18 @@ func getBazaarIcon(c *gin.Context) {
ret := gulu.Ret.NewResult()
defer c.JSON(http.StatusOK, ret)
arg, ok := util.JsonArg(c, ret)
if !ok {
return
}
var keyword string
if keywordArg := arg["keyword"]; nil != keywordArg {
keyword = keywordArg.(string)
}
ret.Data = map[string]interface{}{
"packages": model.BazaarIcons(),
"packages": model.BazaarIcons(keyword),
}
}
@ -228,7 +252,7 @@ func installBazaarIcon(c *gin.Context) {
util.PushMsg(model.Conf.Language(69), 3000)
ret.Data = map[string]interface{}{
"packages": model.BazaarIcons(),
"packages": model.BazaarIcons(""),
"appearance": model.Conf.Appearance,
}
}
@ -251,7 +275,7 @@ func uninstallBazaarIcon(c *gin.Context) {
}
ret.Data = map[string]interface{}{
"packages": model.BazaarIcons(),
"packages": model.BazaarIcons(""),
"appearance": model.Conf.Appearance,
}
}
@ -260,8 +284,18 @@ func getBazaarTemplate(c *gin.Context) {
ret := gulu.Ret.NewResult()
defer c.JSON(http.StatusOK, ret)
arg, ok := util.JsonArg(c, ret)
if !ok {
return
}
var keyword string
if keywordArg := arg["keyword"]; nil != keywordArg {
keyword = keywordArg.(string)
}
ret.Data = map[string]interface{}{
"packages": model.BazaarTemplates(),
"packages": model.BazaarTemplates(keyword),
}
}
@ -294,7 +328,7 @@ func installBazaarTemplate(c *gin.Context) {
}
ret.Data = map[string]interface{}{
"packages": model.BazaarTemplates(),
"packages": model.BazaarTemplates(""),
}
util.PushMsg(model.Conf.Language(69), 3000)
@ -318,7 +352,7 @@ func uninstallBazaarTemplate(c *gin.Context) {
}
ret.Data = map[string]interface{}{
"packages": model.BazaarTemplates(),
"packages": model.BazaarTemplates(""),
}
}
@ -326,8 +360,18 @@ func getBazaarTheme(c *gin.Context) {
ret := gulu.Ret.NewResult()
defer c.JSON(http.StatusOK, ret)
arg, ok := util.JsonArg(c, ret)
if !ok {
return
}
var keyword string
if keywordArg := arg["keyword"]; nil != keywordArg {
keyword = keywordArg.(string)
}
ret.Data = map[string]interface{}{
"packages": model.BazaarThemes(),
"packages": model.BazaarThemes(keyword),
}
}
@ -370,7 +414,7 @@ func installBazaarTheme(c *gin.Context) {
util.PushMsg(model.Conf.Language(69), 3000)
ret.Data = map[string]interface{}{
"packages": model.BazaarThemes(),
"packages": model.BazaarThemes(""),
"appearance": model.Conf.Appearance,
}
}
@ -393,7 +437,7 @@ func uninstallBazaarTheme(c *gin.Context) {
}
ret.Data = map[string]interface{}{
"packages": model.BazaarThemes(),
"packages": model.BazaarThemes(""),
"appearance": model.Conf.Appearance,
}
}

View file

@ -20,6 +20,7 @@ import (
"errors"
"fmt"
"path/filepath"
"strings"
"github.com/88250/gulu"
"github.com/siyuan-note/siyuan/kernel/util"
@ -32,8 +33,9 @@ func GetPackageREADME(repoURL, repoHash, packageType string) (ret string) {
return
}
func BazaarPlugins(frontend string) (plugins []*bazaar.Plugin) {
func BazaarPlugins(frontend, keyword string) (plugins []*bazaar.Plugin) {
plugins = bazaar.Plugins(frontend)
plugins = filterPlugins(plugins, keyword)
for _, plugin := range plugins {
plugin.Installed = util.IsPathRegularDirOrSymlinkDir(filepath.Join(util.DataDir, "plugins", plugin.Name))
if plugin.Installed {
@ -49,6 +51,29 @@ func BazaarPlugins(frontend string) (plugins []*bazaar.Plugin) {
return
}
func filterPlugins(packages []*bazaar.Plugin, keyword string) (ret []*bazaar.Plugin) {
ret = []*bazaar.Plugin{}
keyword = strings.TrimSpace(keyword)
if "" == keyword {
return packages
}
for _, pkg := range packages {
if strings.Contains(pkg.DisplayName.Default, keyword) ||
strings.Contains(pkg.DisplayName.ZhCN, keyword) ||
strings.Contains(pkg.DisplayName.ZhCHT, keyword) ||
strings.Contains(pkg.DisplayName.EnUS, keyword) ||
strings.Contains(pkg.Description.Default, keyword) ||
strings.Contains(pkg.Description.ZhCN, keyword) ||
strings.Contains(pkg.Description.ZhCHT, keyword) ||
strings.Contains(pkg.Description.EnUS, keyword) {
continue
}
ret = append(ret, pkg)
}
return
}
func InstalledPlugins(frontend string) (plugins []*bazaar.Plugin) {
plugins = bazaar.InstalledPlugins(frontend, true)
@ -93,8 +118,9 @@ func UninstallBazaarPlugin(pluginName, frontend string) error {
return nil
}
func BazaarWidgets() (widgets []*bazaar.Widget) {
func BazaarWidgets(keyword string) (widgets []*bazaar.Widget) {
widgets = bazaar.Widgets()
widgets = filterWidgets(widgets, keyword)
for _, widget := range widgets {
widget.Installed = util.IsPathRegularDirOrSymlinkDir(filepath.Join(util.DataDir, "widgets", widget.Name))
if widget.Installed {
@ -110,6 +136,29 @@ func BazaarWidgets() (widgets []*bazaar.Widget) {
return
}
func filterWidgets(packages []*bazaar.Widget, keyword string) (ret []*bazaar.Widget) {
ret = []*bazaar.Widget{}
keyword = strings.TrimSpace(keyword)
if "" == keyword {
return packages
}
for _, pkg := range packages {
if strings.Contains(pkg.DisplayName.Default, keyword) ||
strings.Contains(pkg.DisplayName.ZhCN, keyword) ||
strings.Contains(pkg.DisplayName.ZhCHT, keyword) ||
strings.Contains(pkg.DisplayName.EnUS, keyword) ||
strings.Contains(pkg.Description.Default, keyword) ||
strings.Contains(pkg.Description.ZhCN, keyword) ||
strings.Contains(pkg.Description.ZhCHT, keyword) ||
strings.Contains(pkg.Description.EnUS, keyword) {
continue
}
ret = append(ret, pkg)
}
return
}
func InstalledWidgets() (widgets []*bazaar.Widget) {
widgets = bazaar.InstalledWidgets()
return
@ -133,8 +182,9 @@ func UninstallBazaarWidget(widgetName string) error {
return nil
}
func BazaarIcons() (icons []*bazaar.Icon) {
func BazaarIcons(keyword string) (icons []*bazaar.Icon) {
icons = bazaar.Icons()
icons = filterIcons(icons, keyword)
for _, installed := range Conf.Appearance.Icons {
for _, icon := range icons {
if installed == icon.Name {
@ -151,6 +201,29 @@ func BazaarIcons() (icons []*bazaar.Icon) {
return
}
func filterIcons(packages []*bazaar.Icon, keyword string) (ret []*bazaar.Icon) {
ret = []*bazaar.Icon{}
keyword = strings.TrimSpace(keyword)
if "" == keyword {
return packages
}
for _, pkg := range packages {
if strings.Contains(pkg.DisplayName.Default, keyword) ||
strings.Contains(pkg.DisplayName.ZhCN, keyword) ||
strings.Contains(pkg.DisplayName.ZhCHT, keyword) ||
strings.Contains(pkg.DisplayName.EnUS, keyword) ||
strings.Contains(pkg.Description.Default, keyword) ||
strings.Contains(pkg.Description.ZhCN, keyword) ||
strings.Contains(pkg.Description.ZhCHT, keyword) ||
strings.Contains(pkg.Description.EnUS, keyword) {
continue
}
ret = append(ret, pkg)
}
return
}
func InstalledIcons() (icons []*bazaar.Icon) {
icons = bazaar.InstalledIcons()
for _, icon := range icons {
@ -182,8 +255,9 @@ func UninstallBazaarIcon(iconName string) error {
return nil
}
func BazaarThemes() (ret []*bazaar.Theme) {
func BazaarThemes(keyword string) (ret []*bazaar.Theme) {
ret = bazaar.Themes()
ret = filterThemes(ret, keyword)
installs := Conf.Appearance.DarkThemes
installs = append(installs, Conf.Appearance.LightThemes...)
for _, installed := range installs {
@ -200,6 +274,29 @@ func BazaarThemes() (ret []*bazaar.Theme) {
return
}
func filterThemes(packages []*bazaar.Theme, keyword string) (ret []*bazaar.Theme) {
ret = []*bazaar.Theme{}
keyword = strings.TrimSpace(keyword)
if "" == keyword {
return packages
}
for _, pkg := range packages {
if strings.Contains(pkg.DisplayName.Default, keyword) ||
strings.Contains(pkg.DisplayName.ZhCN, keyword) ||
strings.Contains(pkg.DisplayName.ZhCHT, keyword) ||
strings.Contains(pkg.DisplayName.EnUS, keyword) ||
strings.Contains(pkg.Description.Default, keyword) ||
strings.Contains(pkg.Description.ZhCN, keyword) ||
strings.Contains(pkg.Description.ZhCHT, keyword) ||
strings.Contains(pkg.Description.EnUS, keyword) {
continue
}
ret = append(ret, pkg)
}
return
}
func InstalledThemes() (ret []*bazaar.Theme) {
ret = bazaar.InstalledThemes()
for _, theme := range ret {
@ -246,8 +343,9 @@ func UninstallBazaarTheme(themeName string) error {
return nil
}
func BazaarTemplates() (templates []*bazaar.Template) {
func BazaarTemplates(keyword string) (templates []*bazaar.Template) {
templates = bazaar.Templates()
templates = filterTemplates(templates, keyword)
for _, template := range templates {
template.Installed = util.IsPathRegularDirOrSymlinkDir(filepath.Join(util.DataDir, "templates", template.Name))
if template.Installed {
@ -261,6 +359,29 @@ func BazaarTemplates() (templates []*bazaar.Template) {
return
}
func filterTemplates(packages []*bazaar.Template, keyword string) (ret []*bazaar.Template) {
ret = []*bazaar.Template{}
keyword = strings.TrimSpace(keyword)
if "" == keyword {
return packages
}
for _, pkg := range packages {
if strings.Contains(pkg.DisplayName.Default, keyword) ||
strings.Contains(pkg.DisplayName.ZhCN, keyword) ||
strings.Contains(pkg.DisplayName.ZhCHT, keyword) ||
strings.Contains(pkg.DisplayName.EnUS, keyword) ||
strings.Contains(pkg.Description.Default, keyword) ||
strings.Contains(pkg.Description.ZhCN, keyword) ||
strings.Contains(pkg.Description.ZhCHT, keyword) ||
strings.Contains(pkg.Description.EnUS, keyword) {
continue
}
ret = append(ret, pkg)
}
return
}
func InstalledTemplates() (templates []*bazaar.Template) {
templates = bazaar.InstalledTemplates()
return