mirror of https://github.com/Xhofe/alist
fix: multilevel virtual path (close #904)
parent
dfcf66b43e
commit
c5d707cf0a
|
@ -9,9 +9,9 @@ import (
|
||||||
|
|
||||||
func Path(rawPath string) (*model.File, []model.File, *model.Account, base.Driver, string, error) {
|
func Path(rawPath string) (*model.File, []model.File, *model.Account, base.Driver, string, error) {
|
||||||
account, path, driver, err := ParsePath(rawPath)
|
account, path, driver, err := ParsePath(rawPath)
|
||||||
|
accountFiles := model.GetAccountFilesByPath(rawPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if err.Error() == "path not found" {
|
if err.Error() == "path not found" {
|
||||||
accountFiles := model.GetAccountFilesByPath(rawPath)
|
|
||||||
if len(accountFiles) != 0 {
|
if len(accountFiles) != 0 {
|
||||||
return nil, accountFiles, nil, nil, path, nil
|
return nil, accountFiles, nil, nil, path, nil
|
||||||
}
|
}
|
||||||
|
@ -21,6 +21,11 @@ func Path(rawPath string) (*model.File, []model.File, *model.Account, base.Drive
|
||||||
log.Debugln("use account: ", account.Name)
|
log.Debugln("use account: ", account.Name)
|
||||||
file, files, err := operate.Path(driver, account, path)
|
file, files, err := operate.Path(driver, account, path)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
if err.Error() == "path not found" {
|
||||||
|
if len(accountFiles) != 0 {
|
||||||
|
return nil, accountFiles, nil, nil, path, nil
|
||||||
|
}
|
||||||
|
}
|
||||||
return nil, nil, nil, nil, "", err
|
return nil, nil, nil, nil, "", err
|
||||||
}
|
}
|
||||||
if file != nil {
|
if file != nil {
|
||||||
|
|
|
@ -48,7 +48,20 @@ func (fs *FileSystem) File(rawPath string) (*model.File, error) {
|
||||||
}
|
}
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
return operate.File(driver, account, path_)
|
file, err := operate.File(driver, account, path_)
|
||||||
|
if err != nil && err.Error() == "path not found" {
|
||||||
|
accountFiles := model.GetAccountFilesByPath(rawPath)
|
||||||
|
if len(accountFiles) != 0 {
|
||||||
|
now := time.Now()
|
||||||
|
return &model.File{
|
||||||
|
Name: "root",
|
||||||
|
Size: 0,
|
||||||
|
Type: conf.FOLDER,
|
||||||
|
UpdatedAt: &now,
|
||||||
|
}, nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return file, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (fs *FileSystem) Files(ctx context.Context, rawPath string) ([]model.File, error) {
|
func (fs *FileSystem) Files(ctx context.Context, rawPath string) ([]model.File, error) {
|
||||||
|
|
Loading…
Reference in New Issue