mirror of https://github.com/Xhofe/alist
chore: optimize get settings
parent
4ac312fd07
commit
fbc858b43c
|
@ -71,10 +71,10 @@ func initialSettings() {
|
||||||
{Key: conf.ApiUrl, Value: "", Type: conf.TypeString, Group: model.SITE},
|
{Key: conf.ApiUrl, Value: "", Type: conf.TypeString, Group: model.SITE},
|
||||||
{Key: conf.BasePath, Value: "", Type: conf.TypeString, Group: model.SITE},
|
{Key: conf.BasePath, Value: "", Type: conf.TypeString, Group: model.SITE},
|
||||||
{Key: conf.SiteTitle, Value: "AList", Type: conf.TypeString, Group: model.SITE},
|
{Key: conf.SiteTitle, Value: "AList", Type: conf.TypeString, Group: model.SITE},
|
||||||
{Key: conf.SiteLogo, Value: "https://cdn.jsdelivr.net/gh/alist-org/logo@main/logo.svg", Type: conf.TypeString, Group: model.SITE},
|
|
||||||
{Key: conf.Favicon, Value: "https://cdn.jsdelivr.net/gh/alist-org/logo@main/logo.svg", Type: conf.TypeString, Group: model.SITE},
|
|
||||||
{Key: conf.Announcement, Value: "https://github.com/alist-org/alist", Type: conf.TypeString, Group: model.SITE},
|
{Key: conf.Announcement, Value: "https://github.com/alist-org/alist", Type: conf.TypeString, Group: model.SITE},
|
||||||
// style settings
|
// style settings
|
||||||
|
{Key: conf.Logo, Value: "https://cdn.jsdelivr.net/gh/alist-org/logo@main/logo.svg", Type: conf.TypeString, Group: model.STYLE},
|
||||||
|
{Key: conf.Favicon, Value: "https://cdn.jsdelivr.net/gh/alist-org/logo@main/logo.svg", Type: conf.TypeString, Group: model.STYLE},
|
||||||
{Key: conf.IconColor, Value: "#1890ff", Type: conf.TypeString, Group: model.STYLE},
|
{Key: conf.IconColor, Value: "#1890ff", Type: conf.TypeString, Group: model.STYLE},
|
||||||
// preview settings
|
// preview settings
|
||||||
{Key: conf.TextTypes, Value: "txt,htm,html,xml,java,properties,sql,js,md,json,conf,ini,vue,php,py,bat,gitignore,yml,go,sh,c,cpp,h,hpp,tsx,vtt,srt,ass,rs,lrc", Type: conf.TypeText, Group: model.PREVIEW, Flag: model.PRIVATE},
|
{Key: conf.TextTypes, Value: "txt,htm,html,xml,java,properties,sql,js,md,json,conf,ini,vue,php,py,bat,gitignore,yml,go,sh,c,cpp,h,hpp,tsx,vtt,srt,ass,rs,lrc", Type: conf.TypeText, Group: model.PREVIEW, Flag: model.PRIVATE},
|
||||||
|
|
|
@ -13,7 +13,7 @@ const (
|
||||||
ApiUrl = "api_url"
|
ApiUrl = "api_url"
|
||||||
BasePath = "base_path"
|
BasePath = "base_path"
|
||||||
SiteTitle = "site_title"
|
SiteTitle = "site_title"
|
||||||
SiteLogo = "site_logo"
|
Logo = "logo"
|
||||||
Favicon = "favicon"
|
Favicon = "favicon"
|
||||||
Announcement = "announcement"
|
Announcement = "announcement"
|
||||||
IconColor = "icon_color"
|
IconColor = "icon_color"
|
||||||
|
|
|
@ -54,6 +54,14 @@ func GetSettingItemByKey(key string) (*model.SettingItem, error) {
|
||||||
return &settingItem, nil
|
return &settingItem, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func GetSettingItemInKeys(keys []string) ([]model.SettingItem, error) {
|
||||||
|
var settingItem []model.SettingItem
|
||||||
|
if err := db.Where(fmt.Sprintf("%s in ?", columnName("key")), keys).Find(&settingItem).Error; err != nil {
|
||||||
|
return nil, errors.WithStack(err)
|
||||||
|
}
|
||||||
|
return settingItem, nil
|
||||||
|
}
|
||||||
|
|
||||||
func GetPublicSettingItems() ([]model.SettingItem, error) {
|
func GetPublicSettingItems() ([]model.SettingItem, error) {
|
||||||
var settingItems []model.SettingItem
|
var settingItems []model.SettingItem
|
||||||
if err := db.Where(fmt.Sprintf("%s in ?", columnName("flag")), []int{model.PUBLIC, model.READONLY}).Find(&settingItems).Error; err != nil {
|
if err := db.Where(fmt.Sprintf("%s in ?", columnName("flag")), []int{model.PUBLIC, model.READONLY}).Find(&settingItems).Error; err != nil {
|
||||||
|
@ -70,6 +78,14 @@ func GetSettingItemsByGroup(group int) ([]model.SettingItem, error) {
|
||||||
return settingItems, nil
|
return settingItems, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func GetSettingItemsInGroups(groups []int) ([]model.SettingItem, error) {
|
||||||
|
var settingItems []model.SettingItem
|
||||||
|
if err := db.Where(fmt.Sprintf("%s in ?", columnName("group")), groups).Find(&settingItems).Error; err != nil {
|
||||||
|
return nil, errors.WithStack(err)
|
||||||
|
}
|
||||||
|
return settingItems, nil
|
||||||
|
}
|
||||||
|
|
||||||
func SaveSettingItems(items []model.SettingItem) error {
|
func SaveSettingItems(items []model.SettingItem) error {
|
||||||
settingsMap = nil
|
settingsMap = nil
|
||||||
return errors.WithStack(db.Save(items).Error)
|
return errors.WithStack(db.Save(items).Error)
|
||||||
|
|
|
@ -9,6 +9,7 @@ import (
|
||||||
"github.com/alist-org/alist/v3/server/common"
|
"github.com/alist-org/alist/v3/server/common"
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
func ResetToken(c *gin.Context) {
|
func ResetToken(c *gin.Context) {
|
||||||
|
@ -24,12 +25,22 @@ func ResetToken(c *gin.Context) {
|
||||||
|
|
||||||
func GetSetting(c *gin.Context) {
|
func GetSetting(c *gin.Context) {
|
||||||
key := c.Query("key")
|
key := c.Query("key")
|
||||||
item, err := db.GetSettingItemByKey(key)
|
keys := c.Query("keys")
|
||||||
if err != nil {
|
if key != "" {
|
||||||
common.ErrorResp(c, err, 400)
|
item, err := db.GetSettingItemByKey(key)
|
||||||
return
|
if err != nil {
|
||||||
|
common.ErrorResp(c, err, 400)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
common.SuccessResp(c, item)
|
||||||
|
} else {
|
||||||
|
items, err := db.GetSettingItemInKeys(strings.Split(keys, ","))
|
||||||
|
if err != nil {
|
||||||
|
common.ErrorResp(c, err, 400)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
common.SuccessResp(c, items)
|
||||||
}
|
}
|
||||||
common.SuccessResp(c, item)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func SaveSettings(c *gin.Context) {
|
func SaveSettings(c *gin.Context) {
|
||||||
|
@ -47,15 +58,28 @@ func SaveSettings(c *gin.Context) {
|
||||||
|
|
||||||
func ListSettings(c *gin.Context) {
|
func ListSettings(c *gin.Context) {
|
||||||
groupStr := c.Query("group")
|
groupStr := c.Query("group")
|
||||||
|
groupsStr := c.Query("groups")
|
||||||
var settings []model.SettingItem
|
var settings []model.SettingItem
|
||||||
var err error
|
var err error
|
||||||
if groupStr == "" {
|
if groupsStr == "" && groupStr == "" {
|
||||||
settings, err = db.GetSettingItems()
|
settings, err = db.GetSettingItems()
|
||||||
} else {
|
} else {
|
||||||
group, err := strconv.Atoi(groupStr)
|
var groupStrings []string
|
||||||
if err == nil {
|
if groupsStr != "" {
|
||||||
settings, err = db.GetSettingItemsByGroup(group)
|
groupStrings = strings.Split(groupsStr, ",")
|
||||||
|
} else {
|
||||||
|
groupStrings = append(groupStrings, groupStr)
|
||||||
}
|
}
|
||||||
|
var groups []int
|
||||||
|
for _, str := range groupStrings {
|
||||||
|
group, err := strconv.Atoi(str)
|
||||||
|
if err != nil {
|
||||||
|
common.ErrorResp(c, err, 400)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
groups = append(groups, group)
|
||||||
|
}
|
||||||
|
settings, err = db.GetSettingItemsInGroups(groups)
|
||||||
}
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
common.ErrorResp(c, err, 400)
|
common.ErrorResp(c, err, 400)
|
||||||
|
|
Loading…
Reference in New Issue