@@ -20,6 +20,7 @@ import (
2020 "github.com/OpenListTeam/OpenList/v4/pkg/utils"
2121 "github.com/avast/retry-go"
2222 weiyunsdkgo "github.com/foxxorcat/weiyun-sdk-go"
23+ "github.com/go-resty/resty/v2"
2324)
2425
2526type WeiYun struct {
@@ -67,7 +68,7 @@ func (d *WeiYun) Init(ctx context.Context) error {
6768 })
6869
6970 // qqCookie保活
70- if d .client .LoginType () == 1 {
71+ if d .client .LoginType () == weiyunsdkgo . AccountTypeQQ || d . client . LoginType () == weiyunsdkgo . AccountTypeQQOpenID {
7172 d .cron = cron .NewCron (time .Minute * 5 )
7273 d .cron .Do (func () {
7374 _ = d .client .KeepAlive ()
@@ -391,6 +392,19 @@ func (d *WeiYun) Put(ctx context.Context, dstDir model.Obj, stream model.FileStr
391392 }, nil
392393}
393394
395+ func (d * WeiYun ) GetDetails (ctx context.Context ) (* model.StorageDetails , error ) {
396+ info , err := d .client .DiskUserInfoGet (func (request * resty.Request ) {
397+ request .SetContext (ctx )
398+ })
399+ if err != nil {
400+ return nil , err
401+ }
402+
403+ return & model.StorageDetails {
404+ DiskUsage : driver .DiskUsageFromUsedAndTotal (uint64 (info .UsedSpace ), uint64 (info .TotalSpace )),
405+ }, nil
406+ }
407+
394408// func (d *WeiYun) Other(ctx context.Context, args model.OtherArgs) (interface{}, error) {
395409// return nil, errs.NotSupport
396410// }
@@ -405,3 +419,4 @@ var _ driver.Remove = (*WeiYun)(nil)
405419
406420var _ driver.PutResult = (* WeiYun )(nil )
407421var _ driver.RenameResult = (* WeiYun )(nil )
422+ var _ driver.WithDetails = (* WeiYun )(nil )
0 commit comments