|
|
|
@ -1,13 +1,17 @@
|
|
|
|
|
package basic
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"github.com/cloudreve/Cloudreve/v4/application/dependency"
|
|
|
|
|
"github.com/cloudreve/Cloudreve/v4/inventory"
|
|
|
|
|
"github.com/cloudreve/Cloudreve/v4/inventory/types"
|
|
|
|
|
"github.com/cloudreve/Cloudreve/v4/pkg/setting"
|
|
|
|
|
"github.com/cloudreve/Cloudreve/v4/service/user"
|
|
|
|
|
"github.com/gin-gonic/gin"
|
|
|
|
|
"github.com/mojocn/base64Captcha"
|
|
|
|
|
"sort"
|
|
|
|
|
"strings"
|
|
|
|
|
|
|
|
|
|
"github.com/cloudreve/Cloudreve/v4/application/dependency"
|
|
|
|
|
"github.com/cloudreve/Cloudreve/v4/inventory"
|
|
|
|
|
"github.com/cloudreve/Cloudreve/v4/inventory/types"
|
|
|
|
|
"github.com/cloudreve/Cloudreve/v4/pkg/setting"
|
|
|
|
|
"github.com/cloudreve/Cloudreve/v4/pkg/thumb"
|
|
|
|
|
"github.com/cloudreve/Cloudreve/v4/service/user"
|
|
|
|
|
"github.com/gin-gonic/gin"
|
|
|
|
|
"github.com/mojocn/base64Captcha"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
// SiteConfig 站点全局设置序列
|
|
|
|
@ -47,7 +51,10 @@ type SiteConfig struct {
|
|
|
|
|
MaxBatchSize int `json:"max_batch_size,omitempty"`
|
|
|
|
|
ThumbnailWidth int `json:"thumbnail_width,omitempty"`
|
|
|
|
|
ThumbnailHeight int `json:"thumbnail_height,omitempty"`
|
|
|
|
|
CustomProps []types.CustomProps `json:"custom_props,omitempty"`
|
|
|
|
|
CustomProps []types.CustomProps `json:"custom_props,omitempty"`
|
|
|
|
|
|
|
|
|
|
// Thumbnail section
|
|
|
|
|
ThumbExts []string `json:"thumb_exts,omitempty"`
|
|
|
|
|
|
|
|
|
|
// App settings
|
|
|
|
|
AppPromotion bool `json:"app_promotion,omitempty"`
|
|
|
|
@ -71,10 +78,10 @@ type (
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
func (s *GetSettingService) GetSiteConfig(c *gin.Context) (*SiteConfig, error) {
|
|
|
|
|
dep := dependency.FromContext(c)
|
|
|
|
|
settings := dep.SettingProvider()
|
|
|
|
|
dep := dependency.FromContext(c)
|
|
|
|
|
settings := dep.SettingProvider()
|
|
|
|
|
|
|
|
|
|
switch s.Section {
|
|
|
|
|
switch s.Section {
|
|
|
|
|
case "login":
|
|
|
|
|
legalDocs := settings.LegalDocuments(c)
|
|
|
|
|
return &SiteConfig{
|
|
|
|
@ -115,12 +122,53 @@ func (s *GetSettingService) GetSiteConfig(c *gin.Context) (*SiteConfig, error) {
|
|
|
|
|
}, nil
|
|
|
|
|
case "app":
|
|
|
|
|
appSetting := settings.AppSetting(c)
|
|
|
|
|
return &SiteConfig{
|
|
|
|
|
AppPromotion: appSetting.Promotion,
|
|
|
|
|
}, nil
|
|
|
|
|
default:
|
|
|
|
|
break
|
|
|
|
|
}
|
|
|
|
|
return &SiteConfig{
|
|
|
|
|
AppPromotion: appSetting.Promotion,
|
|
|
|
|
}, nil
|
|
|
|
|
case "thumb":
|
|
|
|
|
// Return supported thumbnail extensions from enabled generators.
|
|
|
|
|
exts := map[string]bool{}
|
|
|
|
|
if settings.BuiltinThumbGeneratorEnabled(c) {
|
|
|
|
|
for _, e := range thumb.BuiltinSupportedExts {
|
|
|
|
|
exts[e] = true
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if settings.FFMpegThumbGeneratorEnabled(c) {
|
|
|
|
|
for _, e := range settings.FFMpegThumbExts(c) {
|
|
|
|
|
exts[strings.ToLower(e)] = true
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if settings.VipsThumbGeneratorEnabled(c) {
|
|
|
|
|
for _, e := range settings.VipsThumbExts(c) {
|
|
|
|
|
exts[strings.ToLower(e)] = true
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if settings.LibreOfficeThumbGeneratorEnabled(c) {
|
|
|
|
|
for _, e := range settings.LibreOfficeThumbExts(c) {
|
|
|
|
|
exts[strings.ToLower(e)] = true
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if settings.MusicCoverThumbGeneratorEnabled(c) {
|
|
|
|
|
for _, e := range settings.MusicCoverThumbExts(c) {
|
|
|
|
|
exts[strings.ToLower(e)] = true
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if settings.LibRawThumbGeneratorEnabled(c) {
|
|
|
|
|
for _, e := range settings.LibRawThumbExts(c) {
|
|
|
|
|
exts[strings.ToLower(e)] = true
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// map -> sorted slice
|
|
|
|
|
result := make([]string, 0, len(exts))
|
|
|
|
|
for e := range exts {
|
|
|
|
|
result = append(result, e)
|
|
|
|
|
}
|
|
|
|
|
sort.Strings(result)
|
|
|
|
|
return &SiteConfig{ThumbExts: result}, nil
|
|
|
|
|
default:
|
|
|
|
|
break
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
u := inventory.UserFromContext(c)
|
|
|
|
|
siteBasic := settings.SiteBasic(c)
|
|
|
|
|