fix: mapping filename in `GetName`

some missed filename mapping
pull/2543/head
Noah Hsu 2022-11-30 20:46:54 +08:00
parent d94cf72da2
commit 83644dab85
11 changed files with 33 additions and 25 deletions

View File

@ -5,6 +5,7 @@ import (
"time"
"github.com/alist-org/alist/v3/internal/model"
"github.com/alist-org/alist/v3/pkg/utils"
)
//type BaseResp struct {
@ -39,7 +40,7 @@ func (f File) GetSize() int64 {
}
func (f File) GetName() string {
return f.FileName
return utils.MappingName(f.FileName)
}
func (f File) ModTime() time.Time {

View File

@ -6,6 +6,8 @@ import (
"sort"
"strings"
"time"
"github.com/alist-org/alist/v3/pkg/utils"
)
// 居然有四种返回方式
@ -134,7 +136,7 @@ type Cloud189File struct {
}
func (c *Cloud189File) GetSize() int64 { return c.Size }
func (c *Cloud189File) GetName() string { return c.Name }
func (c *Cloud189File) GetName() string { return utils.MappingName(c.Name) }
func (c *Cloud189File) ModTime() time.Time {
if c.parseTime == nil {
c.parseTime = MustParseTime(c.LastOpTime)
@ -166,7 +168,7 @@ type Cloud189Folder struct {
}
func (c *Cloud189Folder) GetSize() int64 { return 0 }
func (c *Cloud189Folder) GetName() string { return c.Name }
func (c *Cloud189Folder) GetName() string { return utils.MappingName(c.Name) }
func (c *Cloud189Folder) ModTime() time.Time {
if c.parseTime == nil {
c.parseTime = MustParseTime(c.LastOpTime)

View File

@ -3,6 +3,8 @@ package baiduphoto
import (
"fmt"
"time"
"github.com/alist-org/alist/v3/pkg/utils"
)
type TokenErrResp struct {
@ -100,7 +102,7 @@ type (
)
func (a *Album) GetSize() int64 { return 0 }
func (a *Album) GetName() string { return fmt.Sprint(a.Title) }
func (a *Album) GetName() string { return utils.MappingName(a.Title) }
func (a *Album) ModTime() time.Time {
if a.parseTime == nil {
a.parseTime = toTime(a.Mtime)

View File

@ -4,6 +4,8 @@ import (
"fmt"
"strconv"
"time"
"github.com/alist-org/alist/v3/pkg/utils"
)
type ErrResp struct {
@ -147,7 +149,7 @@ type Files struct {
}
func (c *Files) GetSize() int64 { size, _ := strconv.ParseInt(c.Size, 10, 64); return size }
func (c *Files) GetName() string { return c.Name }
func (c *Files) GetName() string { return utils.MappingName(c.Name) }
func (c *Files) ModTime() time.Time { return c.ModifiedTime }
func (c *Files) IsDir() bool { return c.Kind == FOLDER }
func (c *Files) GetID() string { return c.ID }

View File

@ -1,6 +1,10 @@
package model
import "time"
import (
"time"
"github.com/alist-org/alist/v3/pkg/utils"
)
type Object struct {
ID string
@ -12,7 +16,7 @@ type Object struct {
}
func (o *Object) GetName() string {
return o.Name
return utils.MappingName(o.Name)
}
func (o *Object) GetSize() int64 {

View File

@ -8,7 +8,6 @@ import (
"time"
"github.com/Xhofe/go-cache"
"github.com/alist-org/alist/v3/internal/conf"
"github.com/alist-org/alist/v3/internal/driver"
"github.com/alist-org/alist/v3/internal/errs"
"github.com/alist-org/alist/v3/internal/model"
@ -129,7 +128,7 @@ func Get(ctx context.Context, storage driver.Driver, path string) (model.Obj, er
}
for _, f := range files {
// TODO maybe copy obj here
if utils.MappingName(f.GetName(), conf.FilenameCharMap) == name {
if f.GetName() == name {
// use path as id, why don't set id in List function?
// because files maybe cache, set id here can reduce memory usage
if f.GetPath() == "" {

View File

@ -9,7 +9,6 @@ import (
"github.com/alist-org/alist/v3/internal/errs"
"github.com/alist-org/alist/v3/internal/model"
"github.com/alist-org/alist/v3/internal/search/searcher"
"github.com/alist-org/alist/v3/pkg/utils"
log "github.com/sirupsen/logrus"
)
@ -54,7 +53,7 @@ func Index(ctx context.Context, parent string, obj model.Obj) error {
}
return instance.Index(ctx, model.SearchNode{
Parent: parent,
Name: utils.MappingName(obj.GetName(), conf.FilenameCharMap),
Name: obj.GetName(),
IsDir: obj.IsDir(),
Size: obj.GetSize(),
})

View File

@ -1,9 +1,13 @@
package utils
import "strings"
import (
"strings"
func MappingName(name string, m map[string]string) string {
for k, v := range m {
"github.com/alist-org/alist/v3/internal/conf"
)
func MappingName(name string) string {
for k, v := range conf.FilenameCharMap {
name = strings.ReplaceAll(name, k, v)
}
return name

View File

@ -6,7 +6,6 @@ import (
"strings"
"time"
"github.com/alist-org/alist/v3/internal/conf"
"github.com/alist-org/alist/v3/internal/db"
"github.com/alist-org/alist/v3/internal/errs"
"github.com/alist-org/alist/v3/internal/fs"
@ -140,7 +139,7 @@ func filterDirs(objs []model.Obj) []DirResp {
for _, obj := range objs {
if obj.IsDir() {
dirs = append(dirs, DirResp{
Name: utils.MappingName(obj.GetName(), conf.FilenameCharMap),
Name: obj.GetName(),
Modified: obj.ModTime(),
})
}
@ -187,7 +186,7 @@ func toObjsResp(objs []model.Obj, parent string, encrypt bool) []ObjResp {
thumb = t.Thumb()
}
resp = append(resp, ObjResp{
Name: utils.MappingName(obj.GetName(), conf.FilenameCharMap),
Name: obj.GetName(),
Size: obj.GetSize(),
IsDir: obj.IsDir(),
Modified: obj.ModTime(),
@ -285,7 +284,7 @@ func FsGet(c *gin.Context) {
parentMeta, _ := db.GetNearestMeta(parentPath)
common.SuccessResp(c, FsGetResp{
ObjResp: ObjResp{
Name: utils.MappingName(obj.GetName(), conf.FilenameCharMap),
Name: obj.GetName(),
Size: obj.GetSize(),
IsDir: obj.IsDir(),
Modified: obj.ModTime(),

View File

@ -10,11 +10,9 @@ import (
"path"
"path/filepath"
"github.com/alist-org/alist/v3/internal/conf"
"github.com/alist-org/alist/v3/internal/db"
"github.com/alist-org/alist/v3/internal/fs"
"github.com/alist-org/alist/v3/internal/model"
"github.com/alist-org/alist/v3/pkg/utils"
)
// slashClean is equivalent to but slightly more efficient than
@ -101,7 +99,7 @@ func walkFS(ctx context.Context, depth int, name string, info model.Obj, walkFn
}
for _, fileInfo := range objs {
filename := path.Join(name, utils.MappingName(fileInfo.GetName(), conf.FilenameCharMap))
filename := path.Join(name, fileInfo.GetName())
if err != nil {
if err := walkFn(filename, fileInfo, err); err != nil && err != filepath.SkipDir {
return err

View File

@ -15,9 +15,7 @@ import (
"path"
"strconv"
"github.com/alist-org/alist/v3/internal/conf"
"github.com/alist-org/alist/v3/internal/model"
"github.com/alist-org/alist/v3/pkg/utils"
)
// Proppatch describes a property update instruction as defined in RFC 4918.
@ -199,7 +197,7 @@ func props(ctx context.Context, ls LockSystem, fi model.Obj, pnames []xml.Name)
}
// Otherwise, it must either be a live property or we don't know it.
if prop := liveProps[pn]; prop.findFn != nil && (prop.dir || !isDir) {
innerXML, err := prop.findFn(ctx, ls, utils.MappingName(fi.GetName(), conf.FilenameCharMap), fi)
innerXML, err := prop.findFn(ctx, ls, fi.GetName(), fi)
if err != nil {
return nil, err
}
@ -375,7 +373,7 @@ func findDisplayName(ctx context.Context, ls LockSystem, name string, fi model.O
// Hide the real name of a possibly prefixed root directory.
return "", nil
}
return escapeXML(utils.MappingName(fi.GetName(), conf.FilenameCharMap)), nil
return escapeXML(fi.GetName()), nil
}
func findContentLength(ctx context.Context, ls LockSystem, name string, fi model.Obj) (string, error) {