From 6c1c7e5cc0637d5cbd9db87167fc411fc590d331 Mon Sep 17 00:00:00 2001 From: Andy Hsu Date: Fri, 4 Aug 2023 22:26:56 +0800 Subject: [PATCH] fix(wopan): missing `familyID` on mkdir (close #4927) --- drivers/wopan/driver.go | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/drivers/wopan/driver.go b/drivers/wopan/driver.go index 08ff9ecb443..a3f222e8ef3 100644 --- a/drivers/wopan/driver.go +++ b/drivers/wopan/driver.go @@ -3,6 +3,7 @@ package template import ( "context" "fmt" + "strconv" "github.com/Xhofe/wopan-sdk-go" "github.com/alist-org/alist/v3/internal/driver" @@ -15,7 +16,8 @@ import ( type Wopan struct { model.Storage Addition - client *wopan.WoClient + client *wopan.WoClient + defaultFamilyID string } func (d *Wopan) Config() driver.Config { @@ -34,6 +36,11 @@ func (d *Wopan) Init(ctx context.Context) error { d.RefreshToken = refreshToken op.MustSaveDriverStorage(d) }) + fml, err := d.client.FamilyUserCurrentEncode() + if err != nil { + return err + } + d.defaultFamilyID = strconv.Itoa(fml.DefaultHomeId) return d.client.InitData() } @@ -81,7 +88,11 @@ func (d *Wopan) Link(ctx context.Context, file model.Obj, args model.LinkArgs) ( } func (d *Wopan) MakeDir(ctx context.Context, parentDir model.Obj, dirName string) error { - _, err := d.client.CreateDirectory(d.getSpaceType(), parentDir.GetID(), dirName, d.FamilyID, func(req *resty.Request) { + familyID := d.FamilyID + if familyID == "" { + familyID = d.defaultFamilyID + } + _, err := d.client.CreateDirectory(d.getSpaceType(), parentDir.GetID(), dirName, familyID, func(req *resty.Request) { req.SetContext(ctx) }) return err