Skip to content

Commit

Permalink
Fix InvalidAppSecret
Browse files Browse the repository at this point in the history
  • Loading branch information
vitiko98 committed Nov 27, 2021
1 parent e586e7d commit b9b1d13
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 13 deletions.
29 changes: 17 additions & 12 deletions qobuz_dl/qopy.py
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,8 @@ def api_call(self, epoint, **kwargs):
}
elif epoint == "favorite/getUserFavorites":
unix = time.time()
r_sig = "userLibrarygetAlbumsList" + str(unix) + kwargs["sec"]
# r_sig = "userLibrarygetAlbumsList" + str(unix) + kwargs["sec"]
r_sig = "favoritegetUserFavorites" + str(unix) + kwargs["sec"]
r_sig_hashed = hashlib.md5(r_sig.encode("utf-8")).hexdigest()
params = {
"app_id": self.id,
Expand All @@ -90,7 +91,7 @@ def api_call(self, epoint, **kwargs):
if int(fmt_id) not in (5, 6, 7, 27):
raise InvalidQuality("Invalid quality id: choose between 5, 6, 7 or 27")
r_sig = "trackgetFileUrlformat_id{}intentstreamtrack_id{}{}{}".format(
fmt_id, track_id, unix, self.sec
fmt_id, track_id, unix, kwargs.get("sec", self.sec)
)
r_sig_hashed = hashlib.md5(r_sig.encode("utf-8")).hexdigest()
params = {
Expand All @@ -110,11 +111,12 @@ def api_call(self, epoint, **kwargs):
raise InvalidAppIdError("Invalid app id.\n" + RESET)
else:
logger.info(f"{GREEN}Logged: OK")
elif epoint in ["track/getFileUrl", "favorite/getUserFavorites"]:
if r.status_code == 400:
raise InvalidAppSecretError(
f"Invalid app secret: {r.json()}.\n" + RESET
)
elif (
epoint in ["track/getFileUrl", "favorite/getUserFavorites"]
and r.status_code == 400
):
raise InvalidAppSecretError(f"Invalid app secret: {r.json()}.\n" + RESET)

r.raise_for_status()
return r.json()

Expand Down Expand Up @@ -193,17 +195,20 @@ def get_user_playlists(self, limit):

def test_secret(self, sec):
try:
self.api_call("favorite/getUserFavorites", sec=sec)
self.api_call("track/getFileUrl", id=5966783, fmt_id=5, sec=sec)
return True
except InvalidAppSecretError as error:
logger.info("Invalid SECRET: %s", error)
except InvalidAppSecretError:
return False

def cfg_setup(self):
for secret in self.secrets:
if secret and self.test_secret(secret):
# Falsy secrets
if not secret:
continue

if self.test_secret(secret):
self.sec = secret
break

if self.sec is None:
raise InvalidAppSecretError("Invalid app secret.\n" + RESET)
raise InvalidAppSecretError("Can't find any valid app secret.\n" + RESET)
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ def read_file(fname):

setup(
name=pkg_name,
version="0.9.9.4",
version="0.9.9.5",
author="Vitiko",
author_email="[email protected]",
description="The complete Lossless and Hi-Res music downloader for Qobuz",
Expand Down

0 comments on commit b9b1d13

Please sign in to comment.