Skip to content

Commit 7131c49

Browse files
authored
fix(123&&123_share): fix link request header referer (#915)
1 parent 6e8a146 commit 7131c49

File tree

2 files changed

+16
-28
lines changed

2 files changed

+16
-28
lines changed

drivers/123/driver.go

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -64,14 +64,6 @@ func (d *Pan123) List(ctx context.Context, dir model.Obj, args model.ListArgs) (
6464

6565
func (d *Pan123) Link(ctx context.Context, file model.Obj, args model.LinkArgs) (*model.Link, error) {
6666
if f, ok := file.(File); ok {
67-
//var resp DownResp
68-
var headers map[string]string
69-
if !utils.IsLocalIPAddr(args.IP) {
70-
headers = map[string]string{
71-
//"X-Real-IP": "1.1.1.1",
72-
"X-Forwarded-For": args.IP,
73-
}
74-
}
7567
data := base.Json{
7668
"driveId": 0,
7769
"etag": f.Etag,
@@ -83,25 +75,27 @@ func (d *Pan123) Link(ctx context.Context, file model.Obj, args model.LinkArgs)
8375
}
8476
resp, err := d.Request(DownloadInfo, http.MethodPost, func(req *resty.Request) {
8577

86-
req.SetBody(data).SetHeaders(headers)
78+
req.SetBody(data)
8779
}, nil)
8880
if err != nil {
8981
return nil, err
9082
}
9183
downloadUrl := utils.Json.Get(resp, "data", "DownloadUrl").ToString()
92-
u, err := url.Parse(downloadUrl)
84+
ou, err := url.Parse(downloadUrl)
9385
if err != nil {
9486
return nil, err
9587
}
96-
nu := u.Query().Get("params")
88+
u_ := ou.String()
89+
nu := ou.Query().Get("params")
9790
if nu != "" {
9891
du, _ := base64.StdEncoding.DecodeString(nu)
99-
u, err = url.Parse(string(du))
92+
u, err := url.Parse(string(du))
10093
if err != nil {
10194
return nil, err
10295
}
96+
u_ = u.String()
10397
}
104-
u_ := u.String()
98+
10599
log.Debug("download url: ", u_)
106100
res, err := base.NoRedirectClient.R().SetHeader("Referer", "https://www.123pan.com/").Get(u_)
107101
if err != nil {
@@ -118,7 +112,7 @@ func (d *Pan123) Link(ctx context.Context, file model.Obj, args model.LinkArgs)
118112
link.URL = utils.Json.Get(res.Body(), "data", "redirect_url").ToString()
119113
}
120114
link.Header = http.Header{
121-
"Referer": []string{"https://www.123pan.com/"},
115+
"Referer": []string{fmt.Sprintf("%s://%s/", ou.Scheme, ou.Host)},
122116
}
123117
return &link, nil
124118
} else {

drivers/123_share/driver.go

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -70,14 +70,6 @@ func (d *Pan123Share) List(ctx context.Context, dir model.Obj, args model.ListAr
7070
func (d *Pan123Share) Link(ctx context.Context, file model.Obj, args model.LinkArgs) (*model.Link, error) {
7171
// TODO return link of file, required
7272
if f, ok := file.(File); ok {
73-
//var resp DownResp
74-
var headers map[string]string
75-
if !utils.IsLocalIPAddr(args.IP) {
76-
headers = map[string]string{
77-
//"X-Real-IP": "1.1.1.1",
78-
"X-Forwarded-For": args.IP,
79-
}
80-
}
8173
data := base.Json{
8274
"shareKey": d.ShareKey,
8375
"SharePwd": d.SharePwd,
@@ -87,25 +79,27 @@ func (d *Pan123Share) Link(ctx context.Context, file model.Obj, args model.LinkA
8779
"size": f.Size,
8880
}
8981
resp, err := d.request(DownloadInfo, http.MethodPost, func(req *resty.Request) {
90-
req.SetBody(data).SetHeaders(headers)
82+
req.SetBody(data)
9183
}, nil)
9284
if err != nil {
9385
return nil, err
9486
}
9587
downloadUrl := utils.Json.Get(resp, "data", "DownloadURL").ToString()
96-
u, err := url.Parse(downloadUrl)
88+
ou, err := url.Parse(downloadUrl)
9789
if err != nil {
9890
return nil, err
9991
}
100-
nu := u.Query().Get("params")
92+
u_ := ou.String()
93+
nu := ou.Query().Get("params")
10194
if nu != "" {
10295
du, _ := base64.StdEncoding.DecodeString(nu)
103-
u, err = url.Parse(string(du))
96+
u, err := url.Parse(string(du))
10497
if err != nil {
10598
return nil, err
10699
}
100+
u_ = u.String()
107101
}
108-
u_ := u.String()
102+
109103
log.Debug("download url: ", u_)
110104
res, err := base.NoRedirectClient.R().SetHeader("Referer", "https://www.123pan.com/").Get(u_)
111105
if err != nil {
@@ -122,7 +116,7 @@ func (d *Pan123Share) Link(ctx context.Context, file model.Obj, args model.LinkA
122116
link.URL = utils.Json.Get(res.Body(), "data", "redirect_url").ToString()
123117
}
124118
link.Header = http.Header{
125-
"Referer": []string{"https://www.123pan.com/"},
119+
"Referer": []string{fmt.Sprintf("%s://%s/", ou.Scheme, ou.Host)},
126120
}
127121
return &link, nil
128122
}

0 commit comments

Comments
 (0)