feat: add type to fs read api
This commit is contained in:
@ -21,7 +21,7 @@ func InitConfig() {
|
||||
log.Fatalf("failed to create config file: %+v", err)
|
||||
}
|
||||
conf.Conf = conf.DefaultConfig()
|
||||
if !utils.WriteToJson(flags.Config, conf.Conf) {
|
||||
if !utils.WriteJsonToFile(flags.Config, conf.Conf) {
|
||||
log.Fatalf("failed to create default config file")
|
||||
}
|
||||
} else {
|
||||
|
@ -47,6 +47,7 @@ func initSettings() {
|
||||
log.Fatalf("failed get setting: %+v", err)
|
||||
}
|
||||
}
|
||||
db.ResetTypeMap()
|
||||
}
|
||||
|
||||
func isActive(key string) bool {
|
||||
@ -80,6 +81,8 @@ func initialSettings() {
|
||||
{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.AudioTypes, Value: "mp3,flac,ogg,m4a,wav,opus", Type: conf.TypeText, Group: model.PREVIEW, Flag: model.PRIVATE},
|
||||
{Key: conf.VideoTypes, Value: "mp4,mkv,avi,mov,rmvb,webm,flv", Type: conf.TypeText, Group: model.PREVIEW, Flag: model.PRIVATE},
|
||||
{Key: conf.ImageTypes, Value: "jpg,tiff,jpeg,png,gif,bmp,svg,ico,swf,webp", Type: conf.TypeText, Group: model.PREVIEW, Flag: model.PRIVATE},
|
||||
{Key: conf.OfficeTypes, Value: "doc,docx,xls,xlsx,ppt,pptx,pdf", Type: conf.TypeText, Group: model.PREVIEW, Flag: model.PRIVATE},
|
||||
{Key: conf.ProxyTypes, Value: "m3u8", Type: conf.TypeText, Group: model.PREVIEW, Flag: model.PRIVATE},
|
||||
{Key: conf.PdfViewerUrl, Value: "https://alist-org.github.io/pdf.js/web/viewer.html?file=$url", Type: conf.TypeString, Group: model.PREVIEW},
|
||||
{Key: conf.AudioAutoplay, Value: "true", Type: conf.TypeBool, Group: model.PREVIEW},
|
||||
|
@ -21,6 +21,8 @@ const (
|
||||
TextTypes = "text_types"
|
||||
AudioTypes = "audio_types"
|
||||
VideoTypes = "video_types"
|
||||
ImageTypes = "image_types"
|
||||
OfficeTypes = "office_types"
|
||||
ProxyTypes = "proxy_types"
|
||||
PdfViewerUrl = "pdf_viewer_url"
|
||||
AudioAutoplay = "audio_autoplay"
|
||||
@ -37,3 +39,13 @@ const (
|
||||
|
||||
Token = "token"
|
||||
)
|
||||
|
||||
const (
|
||||
UNKNOWN = iota
|
||||
FOLDER
|
||||
OFFICE
|
||||
VIDEO
|
||||
AUDIO
|
||||
TEXT
|
||||
IMAGE
|
||||
)
|
||||
|
@ -12,3 +12,5 @@ var (
|
||||
var (
|
||||
Conf *Config
|
||||
)
|
||||
|
||||
var TypesMap = make(map[string][]string)
|
||||
|
@ -2,7 +2,9 @@ package db
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"github.com/alist-org/alist/v3/internal/conf"
|
||||
"github.com/alist-org/alist/v3/internal/model"
|
||||
"github.com/pkg/errors"
|
||||
log "github.com/sirupsen/logrus"
|
||||
@ -11,8 +13,23 @@ import (
|
||||
var settingsMap map[string]string
|
||||
var publicSettingsMap map[string]string
|
||||
|
||||
func ResetTypeMap() {
|
||||
settingsMap := GetSettingsMap()
|
||||
conf.TypesMap[conf.AudioTypes] = strings.Split(settingsMap[conf.AudioTypes], ",")
|
||||
conf.TypesMap[conf.VideoTypes] = strings.Split(settingsMap[conf.VideoTypes], ",")
|
||||
conf.TypesMap[conf.ImageTypes] = strings.Split(settingsMap[conf.ImageTypes], ",")
|
||||
conf.TypesMap[conf.TextTypes] = strings.Split(settingsMap[conf.TextTypes], ",")
|
||||
conf.TypesMap[conf.OfficeTypes] = strings.Split(settingsMap[conf.OfficeTypes], ",")
|
||||
}
|
||||
|
||||
func settingsUpdate() {
|
||||
settingsMap = nil
|
||||
publicSettingsMap = nil
|
||||
ResetTypeMap()
|
||||
}
|
||||
|
||||
func GetPublicSettingsMap() map[string]string {
|
||||
if settingsMap == nil || publicSettingsMap == nil {
|
||||
if publicSettingsMap == nil {
|
||||
publicSettingsMap = make(map[string]string)
|
||||
settingItems, err := GetPublicSettingItems()
|
||||
if err != nil {
|
||||
@ -88,12 +105,12 @@ func GetSettingItemsInGroups(groups []int) ([]model.SettingItem, error) {
|
||||
}
|
||||
|
||||
func SaveSettingItems(items []model.SettingItem) error {
|
||||
settingsMap = nil
|
||||
settingsUpdate()
|
||||
return errors.WithStack(db.Save(items).Error)
|
||||
}
|
||||
|
||||
func SaveSettingItem(item model.SettingItem) error {
|
||||
settingsMap = nil
|
||||
settingsUpdate()
|
||||
return errors.WithStack(db.Save(item).Error)
|
||||
}
|
||||
|
||||
@ -108,6 +125,6 @@ func DeleteSettingItemByKey(key string) error {
|
||||
if !old.IsDeprecated() {
|
||||
return errors.Errorf("setting [%s] is not deprecated", key)
|
||||
}
|
||||
settingsMap = nil
|
||||
settingsUpdate()
|
||||
return errors.WithStack(db.Delete(&settingItem).Error)
|
||||
}
|
||||
|
Reference in New Issue
Block a user