fix: allow downloads without premium account
This commit is contained in:
@@ -29,6 +29,7 @@ type Session struct {
|
||||
APIToken string
|
||||
LicenseToken string
|
||||
HttpClient *http.Client
|
||||
Premium bool
|
||||
}
|
||||
|
||||
func Authenticate(ctx context.Context, arlCookie string) (*Session, error) {
|
||||
@@ -75,14 +76,14 @@ func Authenticate(ctx context.Context, arlCookie string) (*Session, error) {
|
||||
if res.Results.User.Id == 0 {
|
||||
return nil, fmt.Errorf("invalid arl cookie")
|
||||
}
|
||||
if !res.Results.User.Options.MobileOffline && !res.Results.User.Options.WebOffline {
|
||||
return nil, fmt.Errorf("premium account required")
|
||||
}
|
||||
|
||||
isPremium := res.Results.User.Options.MobileOffline || res.Results.User.Options.WebOffline
|
||||
|
||||
return &Session{
|
||||
ArlCookie: arlCookie,
|
||||
APIToken: res.Results.APIToken,
|
||||
LicenseToken: res.Results.User.Options.LicenseToken,
|
||||
HttpClient: client,
|
||||
Premium: isPremium,
|
||||
}, nil
|
||||
}
|
||||
|
||||
@@ -47,6 +47,10 @@ func (c *Client) Run(ctx context.Context, opts Options, id string) error {
|
||||
return err
|
||||
}
|
||||
|
||||
if !c.deezerClient.Session.Premium && (opts.Quality == "mp3_320" || opts.Quality == "flac") {
|
||||
return fmt.Errorf("premium account required for %s quality", opts.Quality)
|
||||
}
|
||||
|
||||
var resource deezer.Resource
|
||||
switch c.resourceType {
|
||||
case "album":
|
||||
|
||||
Reference in New Issue
Block a user