New names for embedded cover and downloaded cover

This commit is contained in:
nathom 2021-04-07 16:38:18 -07:00
parent 117fadb7e5
commit 5ce8ee1e65
3 changed files with 32 additions and 33 deletions

View file

@ -77,7 +77,8 @@ class Config:
"embed": True, "embed": True,
"embed_size": "large", "embed_size": "large",
"download_size": "original", "download_size": "original",
"keep_image": True, "keep_embedded_cover": False,
"keep_downloaded_cover": True,
}, },
"path_format": {"folder": FOLDER_FORMAT, "track": TRACK_FORMAT}, "path_format": {"folder": FOLDER_FORMAT, "track": TRACK_FORMAT},
} }

View file

@ -147,7 +147,8 @@ class MusicDL(list):
"parent_folder": self.config.session["downloads"]["folder"], "parent_folder": self.config.session["downloads"]["folder"],
"folder_format": self.config.session["path_format"]["folder"], "folder_format": self.config.session["path_format"]["folder"],
"track_format": self.config.session["path_format"]["track"], "track_format": self.config.session["path_format"]["track"],
"keep_cover": self.config.session["artwork"]["keep_image"], "keep_downloaded_cover": self.config.session["artwork"]["keep_downloaded_cover"],
"keep_embedded_cover": self.config.session["artwork"]["keep_embedded_cover"],
"embed_cover": self.config.session["artwork"]["embed"], "embed_cover": self.config.session["artwork"]["embed"],
"embed_cover_size": self.config.session["artwork"]["embed_size"], "embed_cover_size": self.config.session["artwork"]["embed_size"],
"download_cover_size": self.config.session["artwork"]["download_size"], "download_cover_size": self.config.session["artwork"]["download_size"],

View file

@ -810,7 +810,7 @@ class Album(Tracklist):
"bit_depth": 16, "bit_depth": 16,
"sampling_rate": 44100, "sampling_rate": 44100,
"tracktotal": resp.get("track_total") or resp.get("nb_tracks"), "tracktotal": resp.get("track_total") or resp.get("nb_tracks"),
"disctotal": max(track['disk_number'] for track in resp['tracks']), "disctotal": max(track["disk_number"] for track in resp["tracks"]),
} }
raise InvalidSourceError(client.source) raise InvalidSourceError(client.source)
@ -886,59 +886,56 @@ class Album(Tracklist):
self.download_message() self.download_message()
downloaded_cover_size = kwargs.get("download_cover_size", "original") click.secho("Downloading cover art", fg="magenta")
download_cover_size = kwargs.get("download_cover_size", "original")
embed_cover_size = kwargs.get("embed_cover_size", "large") embed_cover_size = kwargs.get("embed_cover_size", "large")
if os.path.isfile(cover_path): if not os.path.isfile(cover_path):
logger.debug("Cover already downloaded: %s. Skipping", cover_path) if embed_cover_size not in self.cover_urls:
else: embed_cover_size = "large"
click.secho("Downloading cover art", fg="magenta")
if downloaded_cover_size in self.cover_urls:
tqdm_download(self.cover_urls[downloaded_cover_size], cover_path)
else:
logger.debug(
f"Cover size {downloaded_cover_size} not available, defaulting to large"
)
tqdm_download(self.cover_urls["large"], cover_path)
tqdm_download(self.cover_urls[embed_cover_size], cover_path)
if ( if (
downloaded_cover_size != embed_cover_size self.cover_urls.get(download_cover_size, embed_cover_size)
or os.path.size(cover_path) > FLAC_MAX_BLOCKSIZE != embed_cover_size
): ):
dl_cover_path = cover_path.replace( embed_cover_path = cover_path.replace('.jpg', "_embed.jpg")
".jpg", f"_{downloaded_cover_size}.jpg" shutil.move(cover_path, embed_cover_path)
) tqdm_download(self.cover_urls[download_cover_size], cover_path)
shutil.move(cover_path, dl_cover_path)
tqdm_download(self.cover_urls[embed_cover_size], cover_path)
embed_cover = kwargs.get("embed_cover", True) # embed by default embed_cover = kwargs.get("embed_cover", True) # embed by default
if self.client.source != "deezer" and embed_cover: if self.client.source != "deezer" and embed_cover:
cover = self.get_cover_obj(cover_path, quality) cover = self.get_cover_obj(cover_path, quality)
download_args = { download_args = {
'quality': quality, "quality": quality,
'parent_folder': folder, "parent_folder": folder,
'progress_bar': kwargs.get("progress_bar", True), "progress_bar": kwargs.get("progress_bar", True),
'database': database, "database": database,
'track_format': kwargs.get("track_format", TRACK_FORMAT), "track_format": kwargs.get("track_format", TRACK_FORMAT),
} }
for track in self: for track in self:
logger.debug("Downloading track to %s", folder) logger.debug("Downloading track to %s", folder)
if self.disctotal > 1: if self.disctotal > 1:
disc_folder = os.path.join(folder, f"Disc {track.meta.discnumber}") disc_folder = os.path.join(folder, f"Disc {track.meta.discnumber}")
download_args['parent_folder'] = disc_folder download_args["parent_folder"] = disc_folder
track.download(**download_args) track.download(**download_args)
if kwargs.get("tag_tracks", True) and self.client.source != "deezer": if kwargs.get("tag_tracks", True) and self.client.source != "deezer":
track.tag(cover=cover, embed_cover=embed_cover) track.tag(cover=cover, embed_cover=embed_cover)
if not kwargs.get("keep_cover", True): if not kwargs.get("keep_embedded_cover", True):
logger.debug(f"Removing cover at {cover_path}") try:
os.remove(embed_cover_path)
except NameError:
pass
# TODO: fix this, bad solution
if not kwargs.get("keep_downloaded_cover", True):
try: try:
os.remove(cover_path) os.remove(cover_path)
os.remove(dl_cover_path) except NameError:
except Exception as e: pass
logger.debug(e)
self.downloaded = True self.downloaded = True