Repository: AlistGo/alist (language: go)

Issue:
迅雷云盘报错
### Please make sure of the following things

- [X] I have read the [documentation](https://alist-doc.nn.ci).
- [X] I'm sure there are no duplicate issues or discussions.
- [X] I'm sure it's due to `alist` and not something else(such as `Dependencies` or `Operational`).

### Alist Version / Alist 版本

v2.5.0

### Describe the bug / 问题描述

提示: ErrorCode: 0 ,Error: invalid_argument ,ErrorDescription: x-client-id required
我看到迅雷云盘有更新,是不是有的方式有问题,还是设置除账号密码以外的东西

### Reproduction / 复现链接

https://github.com/Xhofe/alist/commit/11830bb51c0cd4b9fb36aa7283bc0120b2ed794c

### Logs / 日志

_No response_


Discussion / hints:
Thanks for opening your first issue here! Be sure to follow the issue template!

重新创建一下账号，数据库结构调整了
@foxxorcat 我重新添加,保存的时候还是会报ErrorCode: 0 ,Error: invalid_argument ,ErrorDescription: x-client-id required
请求逻辑中没把 client-id传好，暂时用旧版本把
@foxxorcat 大佬你怎么获取client secret这个值的,我当时为了获取玩客云的这个值,用了frida这个东西,折腾好久才获取,玩客云加固了,我反编译不出来,但是因为曾经反编译过迅雷水晶的代码,知道大概逻辑就hook了一个方法获取到了client secret(好久之前折腾的了,应该就是这个东西,我看长度像,迅雷的东西都是这个逻辑)
@viqbgrg 直接用frida抓登录的包，传的参数里面就有

Fix patch:
diff --git a/drivers/baiduphoto/driver.go b/drivers/baiduphoto/driver.go
index a502eefeafb..99010ac1d95 100644
--- a/drivers/baiduphoto/driver.go
+++ b/drivers/baiduphoto/driver.go
@@ -9,7 +9,6 @@ import (
 	"math"
 	"net/http"
 	"os"
-	"path/filepath"
 
 	"github.com/Xhofe/alist/conf"
 	"github.com/Xhofe/alist/drivers/base"
@@ -81,7 +80,7 @@ func (driver Baidu) File(path string, account *model.Account) (*model.File, erro
 		}, nil
 	}
 
-	dir, name := filepath.Split(path)
+	dir, name := utils.Split(path)
 	files, err := driver.Files(dir, account)
 	if err != nil {
 		return nil, err
@@ -123,7 +122,7 @@ func (driver Baidu) Files(path string, account *model.Account) ([]model.File, er
 				Id:        joinID(file.Fsid, file.Uk, file.Tid),
 				Name:      file.Name(),
 				Size:      file.Size,
-				Type:      utils.GetFileType(filepath.Ext(file.Path)),
+				Type:      utils.GetFileType(utils.Ext(file.Path)),
 				Driver:    driver.Config().Name,
 				UpdatedAt: getTime(file.Mtime),
 				Thumbnail: thumbnail,
@@ -165,7 +164,7 @@ func (driver Baidu) Link(args base.Args, account *model.Account) (*base.Link, er
 		return nil, base.ErrNotSupport
 	}
 
-	album, err := driver.File(filepath.Dir(utils.ParsePath(args.Path)), account)
+	album, err := driver.File(utils.Dir(utils.ParsePath(args.Path)), account)
 	if err != nil {
 		return nil, err
 	}
@@ -218,13 +217,13 @@ func (driver Baidu) Rename(src string, dst string, account *model.Account) error
 	}
 
 	if IsAlbum(srcFile) {
-		return driver.SetAlbumName(srcFile.Id, filepath.Base(dst), account)
+		return driver.SetAlbumName(srcFile.Id, utils.Base(dst), account)
 	}
 	return base.ErrNotSupport
 }
 
 func (driver Baidu) MakeDir(path string, account *model.Account) error {
-	dir, name := filepath.Split(path)
+	dir, name := utils.Split(path)
 	parentFile, err := driver.File(dir, account)
 	if err != nil {
 		return err
@@ -244,7 +243,7 @@ func (driver Baidu) Move(src string, dst string, account *model.Account) error {
 
 	if IsAlbumFile(srcFile) {
 		// 移动相册文件
-		dstAlbum, err := driver.File(filepath.Dir(dst), account)
+		dstAlbum, err := driver.File(utils.Dir(dst), account)
 		if err != nil {
 			return err
 		}
@@ -252,7 +251,7 @@ func (driver Baidu) Move(src string, dst string, account *model.Account) error {
 			return base.ErrNotSupport
 		}
 
-		srcAlbum, err := driver.File(filepath.Dir(src), account)
+		srcAlbum, err := driver.File(utils.Dir(src), account)
 		if err != nil {
 			return err
 		}
@@ -282,7 +281,7 @@ func (driver Baidu) Copy(src string, dst string, account *model.Account) error {
 
 	if IsAlbumFile(srcFile) {
 		// 复制相册文件
-		dstAlbum, err := driver.File(filepath.Dir(dst), account)
+		dstAlbum, err := driver.File(utils.Dir(dst), account)
 		if err != nil {
 			return err
 		}
@@ -290,7 +289,7 @@ func (driver Baidu) Copy(src string, dst string, account *model.Account) error {
 			return base.ErrNotSupport
 		}
 
-		srcAlbum, err := driver.File(filepath.Dir(src), account)
+		srcAlbum, err := driver.File(utils.Dir(src), account)
 		if err != nil {
 			return err
 		}
@@ -322,7 +321,7 @@ func (driver Baidu) Delete(path string, account *model.Account) error {
 	// 生成相册文件
 	if IsAlbumFile(file) {
 		// 删除相册文件
-		album, err := driver.File(filepath.Dir(path), account)
+		album, err := driver.File(utils.Dir(path), account)
 		if err != nil {
 			return err
 		}
diff --git a/drivers/baiduphoto/types.go b/drivers/baiduphoto/types.go
index 9bc954b0376..734b5a538b6 100644
--- a/drivers/baiduphoto/types.go
+++ b/drivers/baiduphoto/types.go
@@ -2,7 +2,8 @@ package baiduphoto
 
 import (
 	"fmt"
-	"path/filepath"
+
+	"github.com/Xhofe/alist/utils"
 )
 
 type TokenErrResp struct {
@@ -45,7 +46,7 @@ type (
 )
 
 func (f File) Name() string {
-	return filepath.Base(f.Path)
+	return utils.Base(f.Path)
 }
 
 /*相册部分*/
diff --git a/drivers/xunlei/xunlei.go b/drivers/xunlei/xunlei.go
index d98bd4c0528..13acd20230d 100644
--- a/drivers/xunlei/xunlei.go
+++ b/drivers/xunlei/xunlei.go
@@ -211,7 +211,7 @@ func (c *Client) Request(method string, url string, callback func(*resty.Request
 			"X-Captcha-Token": c.captchaToken,
 			"User-Agent":      c.userAgent,
 			"client_id":       c.clientID,
-		})
+		}).SetQueryParam("client_id", c.clientID)
 	if callback != nil {
 		callback(req)
 	}


Test patch: