diff --git a/drivers/189/189.go b/drivers/189/189.go index 069c13cd..fe611adf 100644 --- a/drivers/189/189.go +++ b/drivers/189/189.go @@ -7,13 +7,6 @@ import ( "encoding/hex" "errors" "fmt" - "github.com/Xhofe/alist/conf" - "github.com/Xhofe/alist/drivers/base" - "github.com/Xhofe/alist/model" - "github.com/Xhofe/alist/utils" - "github.com/go-resty/resty/v2" - jsoniter "github.com/json-iterator/go" - log "github.com/sirupsen/logrus" "io" "math" "net/http" @@ -21,6 +14,14 @@ import ( "strconv" "strings" "time" + + "github.com/Xhofe/alist/conf" + "github.com/Xhofe/alist/drivers/base" + "github.com/Xhofe/alist/model" + "github.com/Xhofe/alist/utils" + "github.com/go-resty/resty/v2" + jsoniter "github.com/json-iterator/go" + log "github.com/sirupsen/logrus" ) var client189Map map[string]*resty.Client @@ -98,6 +99,7 @@ func (driver Cloud189) Login(account *model.Account) error { client.SetTimeout(base.DefaultTimeout) client.SetRetryCount(3) client.SetHeader("Referer", "https://cloud.189.cn/") + client.SetHeader("User-Agent", base.UserAgent) url := "https://cloud.189.cn/api/portal/loginUrl.action?redirectURL=https%3A%2F%2Fcloud.189.cn%2Fmain.action" b := "" lt := "" diff --git a/drivers/189/driver.go b/drivers/189/driver.go index 5cab1f76..1b9ab510 100644 --- a/drivers/189/driver.go +++ b/drivers/189/driver.go @@ -2,15 +2,16 @@ package _89 import ( "fmt" + "net/http" + "path/filepath" + "strings" + "github.com/Xhofe/alist/conf" "github.com/Xhofe/alist/drivers/base" "github.com/Xhofe/alist/model" "github.com/Xhofe/alist/utils" "github.com/go-resty/resty/v2" log "github.com/sirupsen/logrus" - "net/http" - "path/filepath" - "strings" ) type Cloud189 struct{} @@ -179,23 +180,27 @@ func (driver Cloud189) Link(args base.Args, account *model.Account) (*base.Link, resty.RedirectPolicyFunc(func(req *http.Request, via []*http.Request) error { return http.ErrUseLastResponse })) - res, err := client.R().Get("https:" + resp.FileDownloadUrl) + res, err := client.R().SetHeader("User-Agent", base.UserAgent).Get("https:" + resp.FileDownloadUrl) if err != nil { return nil, err } log.Debugln(res.Status()) + log.Debugln(res.String()) link := base.Link{ Headers: []base.Header{ {Name: "User-Agent", Value: base.UserAgent}, //{Name: "Authorization", Value: ""}, }, } + log.Debugln("first url:", resp.FileDownloadUrl) if res.StatusCode() == 302 { link.Url = res.Header().Get("location") - res, err = client.R().Get(link.Url) + log.Debugln("second url:", link.Url) + _, _ = client.R().Get(link.Url) if res.StatusCode() == 302 { link.Url = res.Header().Get("location") } + log.Debugln("third url:", link.Url) } else { link.Url = resp.FileDownloadUrl }