mirror of
https://github.com/OpenListTeam/OpenList.git
synced 2025-07-19 01:48:42 +08:00
chore
This commit is contained in:
@ -139,7 +139,7 @@ func (d *Pan123) newUpload(ctx context.Context, upReq *UploadResp, file model.Fi
|
|||||||
return fmt.Errorf("upload url is empty, s3PreSignedUrls: %+v", s3PreSignedUrls)
|
return fmt.Errorf("upload url is empty, s3PreSignedUrls: %+v", s3PreSignedUrls)
|
||||||
}
|
}
|
||||||
reader.Seek(0, io.SeekStart)
|
reader.Seek(0, io.SeekStart)
|
||||||
req, err := http.NewRequestWithContext(ctx, http.MethodPost, uploadUrl, rateLimitedRd)
|
req, err := http.NewRequestWithContext(ctx, http.MethodPut, uploadUrl, rateLimitedRd)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -38,14 +38,14 @@ func (d *OnedriveSharelink) Init(ctx context.Context) error {
|
|||||||
d.cron = cron.NewCron(time.Hour * 1)
|
d.cron = cron.NewCron(time.Hour * 1)
|
||||||
d.cron.Do(func() {
|
d.cron.Do(func() {
|
||||||
var err error
|
var err error
|
||||||
d.Headers, err = d.getHeaders()
|
d.Headers, err = d.getHeaders(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Errorf("%+v", err)
|
log.Errorf("%+v", err)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
// Get initial headers
|
// Get initial headers
|
||||||
d.Headers, err = d.getHeaders()
|
d.Headers, err = d.getHeaders(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -59,7 +59,7 @@ func (d *OnedriveSharelink) Drop(ctx context.Context) error {
|
|||||||
|
|
||||||
func (d *OnedriveSharelink) List(ctx context.Context, dir model.Obj, args model.ListArgs) ([]model.Obj, error) {
|
func (d *OnedriveSharelink) List(ctx context.Context, dir model.Obj, args model.ListArgs) ([]model.Obj, error) {
|
||||||
path := dir.GetPath()
|
path := dir.GetPath()
|
||||||
files, err := d.getFiles(path)
|
files, err := d.getFiles(ctx, path)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -82,7 +82,7 @@ func (d *OnedriveSharelink) Link(ctx context.Context, file model.Obj, args model
|
|||||||
if d.HeaderTime < time.Now().Unix()-1800 {
|
if d.HeaderTime < time.Now().Unix()-1800 {
|
||||||
var err error
|
var err error
|
||||||
log.Debug("headers are older than 30 minutes, get new headers")
|
log.Debug("headers are older than 30 minutes, get new headers")
|
||||||
header, err = d.getHeaders()
|
header, err = d.getHeaders(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package onedrive_sharelink
|
package onedrive_sharelink
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"context"
|
||||||
"crypto/tls"
|
"crypto/tls"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
@ -131,7 +132,7 @@ func getAttrValue(n *html.Node, key string) string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// getHeaders constructs and returns the necessary HTTP headers for accessing the OneDrive share link
|
// getHeaders constructs and returns the necessary HTTP headers for accessing the OneDrive share link
|
||||||
func (d *OnedriveSharelink) getHeaders() (http.Header, error) {
|
func (d *OnedriveSharelink) getHeaders(ctx context.Context) (http.Header, error) {
|
||||||
header := http.Header{}
|
header := http.Header{}
|
||||||
header.Set("User-Agent", base.UserAgent)
|
header.Set("User-Agent", base.UserAgent)
|
||||||
header.Set("accept-language", "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6")
|
header.Set("accept-language", "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6")
|
||||||
@ -142,7 +143,7 @@ func (d *OnedriveSharelink) getHeaders() (http.Header, error) {
|
|||||||
if d.ShareLinkPassword == "" {
|
if d.ShareLinkPassword == "" {
|
||||||
// Create a no-redirect client
|
// Create a no-redirect client
|
||||||
clientNoDirect := NewNoRedirectCLient()
|
clientNoDirect := NewNoRedirectCLient()
|
||||||
req, err := http.NewRequest("GET", d.ShareLinkURL, nil)
|
req, err := http.NewRequestWithContext(ctx, http.MethodGet, d.ShareLinkURL, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -180,9 +181,9 @@ func (d *OnedriveSharelink) getHeaders() (http.Header, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// getFiles retrieves the files from the OneDrive share link at the specified path
|
// getFiles retrieves the files from the OneDrive share link at the specified path
|
||||||
func (d *OnedriveSharelink) getFiles(path string) ([]Item, error) {
|
func (d *OnedriveSharelink) getFiles(ctx context.Context, path string) ([]Item, error) {
|
||||||
clientNoDirect := NewNoRedirectCLient()
|
clientNoDirect := NewNoRedirectCLient()
|
||||||
req, err := http.NewRequest("GET", d.ShareLinkURL, nil)
|
req, err := http.NewRequestWithContext(ctx, http.MethodGet, d.ShareLinkURL, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -221,11 +222,11 @@ func (d *OnedriveSharelink) getFiles(path string) ([]Item, error) {
|
|||||||
// Get redirectUrl
|
// Get redirectUrl
|
||||||
answer, err := clientNoDirect.Do(req)
|
answer, err := clientNoDirect.Do(req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
d.Headers, err = d.getHeaders()
|
d.Headers, err = d.getHeaders(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
return d.getFiles(path)
|
return d.getFiles(ctx, path)
|
||||||
}
|
}
|
||||||
defer answer.Body.Close()
|
defer answer.Body.Close()
|
||||||
re := regexp.MustCompile(`templateUrl":"(.*?)"`)
|
re := regexp.MustCompile(`templateUrl":"(.*?)"`)
|
||||||
@ -298,11 +299,11 @@ func (d *OnedriveSharelink) getFiles(path string) ([]Item, error) {
|
|||||||
|
|
||||||
resp, err := client.Do(req)
|
resp, err := client.Do(req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
d.Headers, err = d.getHeaders()
|
d.Headers, err = d.getHeaders(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
return d.getFiles(path)
|
return d.getFiles(ctx, path)
|
||||||
}
|
}
|
||||||
defer resp.Body.Close()
|
defer resp.Body.Close()
|
||||||
var graphqlReq GraphQLRequest
|
var graphqlReq GraphQLRequest
|
||||||
@ -328,11 +329,11 @@ func (d *OnedriveSharelink) getFiles(path string) ([]Item, error) {
|
|||||||
|
|
||||||
resp, err := client.Do(req)
|
resp, err := client.Do(req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
d.Headers, err = d.getHeaders()
|
d.Headers, err = d.getHeaders(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
return d.getFiles(path)
|
return d.getFiles(ctx, path)
|
||||||
}
|
}
|
||||||
defer resp.Body.Close()
|
defer resp.Body.Close()
|
||||||
json.NewDecoder(resp.Body).Decode(&graphqlReqNEW)
|
json.NewDecoder(resp.Body).Decode(&graphqlReqNEW)
|
||||||
@ -343,11 +344,11 @@ func (d *OnedriveSharelink) getFiles(path string) ([]Item, error) {
|
|||||||
req.Header = tempHeader
|
req.Header = tempHeader
|
||||||
resp, err := client.Do(req)
|
resp, err := client.Do(req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
d.Headers, err = d.getHeaders()
|
d.Headers, err = d.getHeaders(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
return d.getFiles(path)
|
return d.getFiles(ctx, path)
|
||||||
}
|
}
|
||||||
defer resp.Body.Close()
|
defer resp.Body.Close()
|
||||||
json.NewDecoder(resp.Body).Decode(&graphqlReqNEW)
|
json.NewDecoder(resp.Body).Decode(&graphqlReqNEW)
|
||||||
|
@ -3,6 +3,7 @@ package quark_uc_tv
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"net/http"
|
||||||
"strconv"
|
"strconv"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@ -96,7 +97,7 @@ func (d *QuarkUCTV) List(ctx context.Context, dir model.Obj, args model.ListArgs
|
|||||||
pageSize := int64(100)
|
pageSize := int64(100)
|
||||||
for {
|
for {
|
||||||
var filesData FilesData
|
var filesData FilesData
|
||||||
_, err := d.request(ctx, "/file", "GET", func(req *resty.Request) {
|
_, err := d.request(ctx, "/file", http.MethodGet, func(req *resty.Request) {
|
||||||
req.SetQueryParams(map[string]string{
|
req.SetQueryParams(map[string]string{
|
||||||
"method": "list",
|
"method": "list",
|
||||||
"parent_fid": dir.GetID(),
|
"parent_fid": dir.GetID(),
|
||||||
@ -127,7 +128,7 @@ func (d *QuarkUCTV) List(ctx context.Context, dir model.Obj, args model.ListArgs
|
|||||||
|
|
||||||
func (d *QuarkUCTV) Link(ctx context.Context, file model.Obj, args model.LinkArgs) (*model.Link, error) {
|
func (d *QuarkUCTV) Link(ctx context.Context, file model.Obj, args model.LinkArgs) (*model.Link, error) {
|
||||||
var fileLink FileLink
|
var fileLink FileLink
|
||||||
_, err := d.request(ctx, "/file", "GET", func(req *resty.Request) {
|
_, err := d.request(ctx, "/file", http.MethodGet, func(req *resty.Request) {
|
||||||
req.SetQueryParams(map[string]string{
|
req.SetQueryParams(map[string]string{
|
||||||
"method": "download",
|
"method": "download",
|
||||||
"group_by": "source",
|
"group_by": "source",
|
||||||
|
@ -93,7 +93,7 @@ func (d *QuarkUCTV) getLoginCode(ctx context.Context) (string, error) {
|
|||||||
QrData string `json:"qr_data"`
|
QrData string `json:"qr_data"`
|
||||||
QueryToken string `json:"query_token"`
|
QueryToken string `json:"query_token"`
|
||||||
}
|
}
|
||||||
_, err := d.request(ctx, pathname, "GET", func(req *resty.Request) {
|
_, err := d.request(ctx, pathname, http.MethodGet, func(req *resty.Request) {
|
||||||
req.SetQueryParams(map[string]string{
|
req.SetQueryParams(map[string]string{
|
||||||
"auth_type": "code",
|
"auth_type": "code",
|
||||||
"client_id": d.conf.clientID,
|
"client_id": d.conf.clientID,
|
||||||
@ -121,7 +121,7 @@ func (d *QuarkUCTV) getCode(ctx context.Context) (string, error) {
|
|||||||
CommonRsp
|
CommonRsp
|
||||||
Code string `json:"code"`
|
Code string `json:"code"`
|
||||||
}
|
}
|
||||||
_, err := d.request(ctx, pathname, "GET", func(req *resty.Request) {
|
_, err := d.request(ctx, pathname, http.MethodGet, func(req *resty.Request) {
|
||||||
req.SetQueryParams(map[string]string{
|
req.SetQueryParams(map[string]string{
|
||||||
"client_id": d.conf.clientID,
|
"client_id": d.conf.clientID,
|
||||||
"scope": "netdisk",
|
"scope": "netdisk",
|
||||||
|
@ -557,7 +557,7 @@ type chunk struct {
|
|||||||
func DefaultHttpRequestFunc(ctx context.Context, params *HttpRequestParams) (*http.Response, error) {
|
func DefaultHttpRequestFunc(ctx context.Context, params *HttpRequestParams) (*http.Response, error) {
|
||||||
header := http_range.ApplyRangeToHttpHeader(params.Range, params.HeaderRef)
|
header := http_range.ApplyRangeToHttpHeader(params.Range, params.HeaderRef)
|
||||||
|
|
||||||
res, err := RequestHttp(ctx, "GET", header, params.URL)
|
res, err := RequestHttp(ctx, http.MethodGet, header, params.URL)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return res, err
|
return res, err
|
||||||
}
|
}
|
||||||
|
@ -67,7 +67,7 @@ func RequestRangedHttp(ctx context.Context, link *model.Link, offset, length int
|
|||||||
header := net.ProcessHeader(nil, link.Header)
|
header := net.ProcessHeader(nil, link.Header)
|
||||||
header = http_range.ApplyRangeToHttpHeader(http_range.Range{Start: offset, Length: length}, header)
|
header = http_range.ApplyRangeToHttpHeader(http_range.Range{Start: offset, Length: length}, header)
|
||||||
|
|
||||||
return net.RequestHttp(ctx, "GET", header, link.URL)
|
return net.RequestHttp(ctx, http.MethodGet, header, link.URL)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 139 cloud does not properly return 206 http status code, add a hack here
|
// 139 cloud does not properly return 206 http status code, add a hack here
|
||||||
|
@ -383,7 +383,7 @@ func (c *Client) Link(path string) (string, http.Header, error) {
|
|||||||
|
|
||||||
// ReadStream reads the stream for a given path
|
// ReadStream reads the stream for a given path
|
||||||
func (c *Client) ReadStream(path string, callback func(rq *http.Request)) (io.ReadCloser, http.Header, error) {
|
func (c *Client) ReadStream(path string, callback func(rq *http.Request)) (io.ReadCloser, http.Header, error) {
|
||||||
rs, err := c.req("GET", path, nil, callback)
|
rs, err := c.req(http.MethodGet, path, nil, callback)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, nil, newPathErrorErr("ReadStream", path, err)
|
return nil, nil, newPathErrorErr("ReadStream", path, err)
|
||||||
}
|
}
|
||||||
@ -405,7 +405,7 @@ func (c *Client) ReadStream(path string, callback func(rq *http.Request)) (io.Re
|
|||||||
// this function will emulate the behavior by skipping `offset` bytes and limiting the result
|
// this function will emulate the behavior by skipping `offset` bytes and limiting the result
|
||||||
// to `length`.
|
// to `length`.
|
||||||
func (c *Client) ReadStreamRange(path string, offset, length int64) (io.ReadCloser, error) {
|
func (c *Client) ReadStreamRange(path string, offset, length int64) (io.ReadCloser, error) {
|
||||||
rs, err := c.req("GET", path, nil, func(r *http.Request) {
|
rs, err := c.req(http.MethodGet, path, nil, func(r *http.Request) {
|
||||||
r.Header.Add("Range", fmt.Sprintf("bytes=%v-%v", offset, offset+length-1))
|
r.Header.Add("Range", fmt.Sprintf("bytes=%v-%v", offset, offset+length-1))
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
Reference in New Issue
Block a user