This commit is contained in:
vitiko98 2021-01-26 18:42:29 -04:00
parent e57cf32481
commit f34975e54f
4 changed files with 18 additions and 6 deletions

View File

@ -32,14 +32,14 @@ def reset_config(config_file):
password = input("Enter your password\n- ") password = input("Enter your password\n- ")
config["DEFAULT"]["password"] = hashlib.md5(password.encode("utf-8")).hexdigest() config["DEFAULT"]["password"] = hashlib.md5(password.encode("utf-8")).hexdigest()
config["DEFAULT"]["default_folder"] = ( config["DEFAULT"]["default_folder"] = (
input("Folder for downloads (leave empy for default 'Qobuz Downloads')\n- ") input("Folder for downloads (leave empty for default 'Qobuz Downloads')\n- ")
or "Qobuz Downloads" or "Qobuz Downloads"
) )
config["DEFAULT"]["default_quality"] = ( config["DEFAULT"]["default_quality"] = (
input( input(
"Download quality (5, 6, 7, 27) " "Download quality (5, 6, 7, 27) "
"[320, LOSSLESS, 24B <96KHZ, 24B >96KHZ]" "[320, LOSSLESS, 24B <96KHZ, 24B >96KHZ]"
"\n(leave empy for default '6')\n- " "\n(leave empty for default '6')\n- "
) )
or "6" or "6"
) )

View File

@ -102,13 +102,17 @@ class QobuzDL:
def download_from_id(self, item_id, album=True, alt_path=None): def download_from_id(self, item_id, album=True, alt_path=None):
if handle_download_id(self.downloads_db, item_id, add_id=False): if handle_download_id(self.downloads_db, item_id, add_id=False):
logger.info(f"{OFF}This release ID ({item_id}) was already downloaded") logger.info(
f"{OFF}This release ID ({item_id}) was already downloaded "
"according to the local database.\nUse the '--no-db' flag "
"to bypass this."
)
return return
try: try:
downloader.download_id_by_type( downloader.download_id_by_type(
self.client, self.client,
item_id, item_id,
self.directory if not alt_path else alt_path, alt_path or self.directory,
str(self.quality), str(self.quality),
album, album,
self.embed_art, self.embed_art,

View File

@ -7,6 +7,7 @@ from tqdm import tqdm
import qobuz_dl.metadata as metadata import qobuz_dl.metadata as metadata
from qobuz_dl.color import OFF, GREEN, RED, YELLOW, CYAN from qobuz_dl.color import OFF, GREEN, RED, YELLOW, CYAN
from qobuz_dl.exceptions import NonStreamable
QL_DOWNGRADE = "FormatRestrictedByFormatAvailability" QL_DOWNGRADE = "FormatRestrictedByFormatAvailability"
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@ -145,8 +146,8 @@ def download_and_tag(
if version: if version:
new_track_title = f"{new_track_title} ({version})" new_track_title = f"{new_track_title} ({version})"
track_file = f'{track_metadata["track_number"]:02}. {new_track_title}{extension}' track_file = f'{track_metadata["track_number"]:02}. {new_track_title}'
final_file = os.path.join(root_dir, sanitize_filename(track_file)) final_file = os.path.join(root_dir, sanitize_filename(track_file))[:250] + extension
if os.path.isfile(final_file): if os.path.isfile(final_file):
logger.info(f"{OFF}{new_track_title} was already downloaded") logger.info(f"{OFF}{new_track_title} was already downloaded")
@ -200,6 +201,9 @@ def download_id_by_type(
if album: if album:
meta = client.get_album_meta(item_id) meta = client.get_album_meta(item_id)
if not meta.get("streamable"):
raise NonStreamable("This release is not streamable")
if albums_only and ( if albums_only and (
meta.get("release_type") != "album" meta.get("release_type") != "album"
or meta.get("artist").get("name") == "Various Artists" or meta.get("artist").get("name") == "Various Artists"

View File

@ -16,3 +16,7 @@ class InvalidAppSecretError(Exception):
class InvalidQuality(Exception): class InvalidQuality(Exception):
pass pass
class NonStreamable(Exception):
pass