From 80225e22bbea3c5db7260e91ccec51a8c79d20c7 Mon Sep 17 00:00:00 2001 From: zijiren233 Date: Tue, 16 Apr 2024 19:37:37 +0800 Subject: [PATCH] Fix: alist url add sign query --- go.mod | 4 ++-- go.sum | 4 ++++ internal/cache/alist.go | 18 +++++++++++++++--- internal/cache/bilibili.go | 3 ++- internal/cache/emby.go | 3 ++- internal/provider/aggregations/rainbow.go | 5 +++-- internal/provider/providers/qq.go | 9 +++++---- server/handlers/movie.go | 2 +- 8 files changed, 34 insertions(+), 14 deletions(-) diff --git a/go.mod b/go.mod index efd85b0..b79ae71 100644 --- a/go.mod +++ b/go.mod @@ -33,12 +33,12 @@ require ( github.com/sirupsen/logrus v1.9.3 github.com/soheilhy/cmux v0.1.5 github.com/spf13/cobra v1.8.0 - github.com/synctv-org/vendors v0.3.3-0.20240415060029-ef65de81bf8a + github.com/synctv-org/vendors v0.3.3-0.20240416113343-ddc34bc4b8bb github.com/ulule/limiter/v3 v3.11.2 github.com/zencoder/go-dash/v3 v3.0.3 github.com/zijiren233/gencontainer v0.0.0-20240331174346-b5e420773df7 github.com/zijiren233/go-colorable v0.0.0-20230930131441-997304c961cb - github.com/zijiren233/go-uhc v0.2.1 + github.com/zijiren233/go-uhc v0.2.2 github.com/zijiren233/livelib v0.3.1 github.com/zijiren233/stream v0.5.2 github.com/zijiren233/yaml-comment v0.2.2 diff --git a/go.sum b/go.sum index 1876639..df73ce4 100644 --- a/go.sum +++ b/go.sum @@ -390,6 +390,8 @@ github.com/synctv-org/vendors v0.3.3-0.20240415055512-14e31052624e h1:uudJ6rI3cS github.com/synctv-org/vendors v0.3.3-0.20240415055512-14e31052624e/go.mod h1:Q8IRRiBpF8gvnZkWo4sGRANcFHICSCgQG2YIf/C0nhQ= github.com/synctv-org/vendors v0.3.3-0.20240415060029-ef65de81bf8a h1:ikBOrImiBE10DLClDx3/Ls5W4fJs+J7le5pUYoJwixA= github.com/synctv-org/vendors v0.3.3-0.20240415060029-ef65de81bf8a/go.mod h1:WlKzamZ0Nfim/8983x9EQLN1FuxbNS8+n9yTSmMIO+8= +github.com/synctv-org/vendors v0.3.3-0.20240416113343-ddc34bc4b8bb h1:PbwjtwbhlaGBtbu4fFtnLB1FsAv5sDqeZ7k6szQ0TIA= +github.com/synctv-org/vendors v0.3.3-0.20240416113343-ddc34bc4b8bb/go.mod h1:ysM3NZawuFF+zTwc1Qz70UcHA0b5uE0aIsrSvHybowE= github.com/tetratelabs/wazero v1.7.0 h1:jg5qPydno59wqjpGrHph81lbtHzTrWzwwtD4cD88+hQ= github.com/tetratelabs/wazero v1.7.0/go.mod h1:ytl6Zuh20R/eROuyDaGPkp82O9C/DJfXAwJfQ3X6/7Y= github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= @@ -414,6 +416,8 @@ github.com/zijiren233/go-uhc v0.2.0 h1:bB+7Bqiuglds0BjZ3P14kiiAk0NVC5WvH2R1Luk3y github.com/zijiren233/go-uhc v0.2.0/go.mod h1:bOwLWM4v3PL9DsqKOq5pc5XyLDAqxJFxHECZFeI00fM= github.com/zijiren233/go-uhc v0.2.1 h1:XRxghWRYQpOgXExBf8dWjQHy6OHBY17tUzrzi0KegN8= github.com/zijiren233/go-uhc v0.2.1/go.mod h1:bOwLWM4v3PL9DsqKOq5pc5XyLDAqxJFxHECZFeI00fM= +github.com/zijiren233/go-uhc v0.2.2 h1:EVJeWKTwS1il1qlAQPmV4fPqhPr9JvFmQcCfx5Fcuwk= +github.com/zijiren233/go-uhc v0.2.2/go.mod h1:bOwLWM4v3PL9DsqKOq5pc5XyLDAqxJFxHECZFeI00fM= github.com/zijiren233/livelib v0.3.1 h1:vNGQFeVyk1qrXTO/lqyRs0oC6cLzMD6yo2Jdym3XNpI= github.com/zijiren233/livelib v0.3.1/go.mod h1:2wrAAqNIdMZjQrdbO7ERQfqK4VS5fzgUj2xXwrJ8/uo= github.com/zijiren233/stream v0.5.2 h1:K8xPvXtETH7qo9P99xdvi7q0MXALfxb1XBtzpz/Zn0A= diff --git a/internal/cache/alist.go b/internal/cache/alist.go index cb7db1f..bdbc313 100644 --- a/internal/cache/alist.go +++ b/internal/cache/alist.go @@ -7,6 +7,7 @@ import ( "fmt" "io" "net/http" + "net/url" "time" "github.com/synctv-org/synctv/internal/db" @@ -14,6 +15,7 @@ import ( "github.com/synctv-org/synctv/internal/vendor" "github.com/synctv-org/vendors/api/alist" "github.com/zijiren233/gencontainer/refreshcache" + "github.com/zijiren233/go-uhc" ) type AlistUserCache = MapCache[*AlistUserCacheData, struct{}] @@ -111,7 +113,7 @@ func newAliSubtitlesCacheInitFunc(list []*alist.FsOtherResp_VideoPreviewPlayInfo if err != nil { return nil, err } - resp, err := http.DefaultClient.Do(r) + resp, err := uhc.Do(r) if err != nil { return nil, err } @@ -174,11 +176,21 @@ func NewAlistMovieCacheInitFunc(movie *model.Movie) func(ctx context.Context, ar } if fg.IsDir { - return nil, errors.New("path is dir") + return nil, fmt.Errorf("path is dir: %s", truePath) + } + + u, err := url.Parse(fg.RawUrl) + if err != nil { + return nil, fmt.Errorf("parse url error: %s", fg.RawUrl) + } + if fg.Sign != "" { + query := url.Values{} + query.Set("sign", fg.Sign) + u.RawQuery = query.Encode() } cache := &AlistMovieCacheData{ - URL: fg.RawUrl, + URL: u.String(), } if fg.Provider == "AliyundriveOpen" { fo, err := cli.FsOther(ctx, &alist.FsOtherReq{ diff --git a/internal/cache/bilibili.go b/internal/cache/bilibili.go index b53e2e4..d20c53e 100644 --- a/internal/cache/bilibili.go +++ b/internal/cache/bilibili.go @@ -17,6 +17,7 @@ import ( "github.com/synctv-org/vendors/api/bilibili" "github.com/zencoder/go-dash/v3/mpd" "github.com/zijiren233/gencontainer/refreshcache" + "github.com/zijiren233/go-uhc" ) type BilibiliMpdCache struct { @@ -283,7 +284,7 @@ func translateBilibiliSubtitleToSrt(ctx context.Context, url string) ([]byte, er } r.Header.Set("User-Agent", utils.UA) r.Header.Set("Referer", "https://www.bilibili.com") - resp, err := http.DefaultClient.Do(r) + resp, err := uhc.Do(r) if err != nil { return nil, err } diff --git a/internal/cache/emby.go b/internal/cache/emby.go index 47d9fba..1a13dc0 100644 --- a/internal/cache/emby.go +++ b/internal/cache/emby.go @@ -14,6 +14,7 @@ import ( "github.com/synctv-org/synctv/utils" "github.com/synctv-org/vendors/api/emby" "github.com/zijiren233/gencontainer/refreshcache" + "github.com/zijiren233/go-uhc" ) type EmbyUserCache = MapCache[*EmbyUserCacheData, struct{}] @@ -181,7 +182,7 @@ func newEmbySubtitleCacheInitFunc(url string) func(ctx context.Context, args ... } req.Header.Set("User-Agent", utils.UA) req.Header.Set("Referer", req.URL.Host) - resp, err := http.DefaultClient.Do(req) + resp, err := uhc.Do(req) if err != nil { return nil, err } diff --git a/internal/provider/aggregations/rainbow.go b/internal/provider/aggregations/rainbow.go index 8630f87..5f77751 100644 --- a/internal/provider/aggregations/rainbow.go +++ b/internal/provider/aggregations/rainbow.go @@ -8,6 +8,7 @@ import ( json "github.com/json-iterator/go" "github.com/synctv-org/synctv/internal/provider" + "github.com/zijiren233/go-uhc" ) var _ provider.AggregationProviderInterface = (*Rainbow)(nil) @@ -84,7 +85,7 @@ func (p *rainbowGenericProvider) NewAuthURL(ctx context.Context, state string) ( if err != nil { return "", err } - resp, err := http.DefaultClient.Do(req) + resp, err := uhc.Do(req) if err != nil { return "", err } @@ -129,7 +130,7 @@ func (p *rainbowGenericProvider) GetUserInfo(ctx context.Context, code string) ( if err != nil { return nil, err } - resp, err := http.DefaultClient.Do(req) + resp, err := uhc.Do(req) if err != nil { return nil, err } diff --git a/internal/provider/providers/qq.go b/internal/provider/providers/qq.go index 5a85c40..7dde0bb 100644 --- a/internal/provider/providers/qq.go +++ b/internal/provider/providers/qq.go @@ -8,6 +8,7 @@ import ( json "github.com/json-iterator/go" "github.com/synctv-org/synctv/internal/provider" + "github.com/zijiren233/go-uhc" "golang.org/x/oauth2" ) @@ -53,7 +54,7 @@ func (p *QQProvider) GetToken(ctx context.Context, code string) (*oauth2.Token, if err != nil { return nil, err } - resp, err := http.DefaultClient.Do(req) + resp, err := uhc.Do(req) if err != nil { return nil, err } @@ -73,7 +74,7 @@ func (p *QQProvider) RefreshToken(ctx context.Context, tk string) (*oauth2.Token if err != nil { return nil, err } - resp, err := http.DefaultClient.Do(req) + resp, err := uhc.Do(req) if err != nil { return nil, err } @@ -91,7 +92,7 @@ func (p *QQProvider) GetUserInfo(ctx context.Context, code string) (*provider.Us if err != nil { return nil, err } - resp, err := http.DefaultClient.Do(req) + resp, err := uhc.Do(req) if err != nil { return nil, err } @@ -105,7 +106,7 @@ func (p *QQProvider) GetUserInfo(ctx context.Context, code string) (*provider.Us if err != nil { return nil, err } - resp2, err := http.DefaultClient.Do(req) + resp2, err := uhc.Do(req) if err != nil { return nil, err } diff --git a/server/handlers/movie.go b/server/handlers/movie.go index f8023e1..fdd151b 100644 --- a/server/handlers/movie.go +++ b/server/handlers/movie.go @@ -520,7 +520,7 @@ func ProxyMovie(ctx *gin.Context) { // req.Header.Set(k, v) // } // req.Header.Set("User-Agent", utils.UA) -// resp, err := http.DefaultClient.Do(req) +// resp, err := uhc.Do(req) // if err != nil { // return nil, err // }