mirror of
https://github.com/nathom/streamrip.git
synced 2025-05-18 00:54:50 -04:00
Misc bug fixes
This commit is contained in:
parent
629239b7af
commit
2f258865ad
3 changed files with 37 additions and 12 deletions
|
@ -177,6 +177,7 @@ class Track:
|
|||
|
||||
self.download_cover() # only downloads for playlists and singles
|
||||
self.path = os.path.join(gettempdir(), f"{hash(self.id)}_{self.quality}.tmp")
|
||||
return True
|
||||
|
||||
def download(
|
||||
self,
|
||||
|
@ -250,9 +251,10 @@ class Track:
|
|||
self.move(self.final_path)
|
||||
|
||||
try:
|
||||
database = kwargs.get("database")
|
||||
database.add(self.id)
|
||||
logger.debug(f"{self.id} added to database")
|
||||
except AttributeError:
|
||||
except AttributeError: # assume database=None was passed
|
||||
pass
|
||||
|
||||
logger.debug("Downloaded: %s -> %s", self.path, self.final_path)
|
||||
|
@ -264,8 +266,8 @@ class Track:
|
|||
|
||||
return True
|
||||
|
||||
def __validate_qobuz_dl_info(info: dict) -> bool:
|
||||
return not all(
|
||||
def __validate_qobuz_dl_info(self, info: dict) -> bool:
|
||||
return all(
|
||||
(info.get("sampling_rate"), info.get("bit_depth"), not info.get("sample"))
|
||||
)
|
||||
|
||||
|
@ -884,9 +886,11 @@ class Album(Tracklist):
|
|||
else:
|
||||
kwargs["parent_folder"] = self.folder
|
||||
|
||||
logger.debug("Downloading 2")
|
||||
if not track.download(quality=quality, database=database, **kwargs):
|
||||
return False
|
||||
|
||||
logger.debug("tagging tracks")
|
||||
# deezer tracks come tagged
|
||||
if kwargs.get("tag_tracks", True) and self.client.source != "deezer":
|
||||
track.tag(cover=self.cover_obj, embed_cover=kwargs.get("embed_cover", True))
|
||||
|
|
|
@ -107,12 +107,9 @@ class TrackMetadata:
|
|||
"""
|
||||
if self.__source == "qobuz":
|
||||
# Tags
|
||||
print(resp.keys())
|
||||
self.album = resp.get("title")
|
||||
self.tracktotal = resp.get("tracks_count", 1)
|
||||
self.genre = resp.get("genres_list") or resp.get("genre")
|
||||
print("in meta:")
|
||||
print(self.genre)
|
||||
self.date = resp.get("release_date_original") or resp.get("release_date")
|
||||
self.copyright = resp.get("copyright")
|
||||
self.albumartist = safe_get(resp, "artist", "name")
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
import base64
|
||||
import contextlib
|
||||
import sys
|
||||
import logging
|
||||
import os
|
||||
from string import Formatter
|
||||
|
@ -11,6 +13,7 @@ from Crypto.Util import Counter
|
|||
from pathvalidate import sanitize_filename
|
||||
from requests.packages import urllib3
|
||||
from tqdm import tqdm
|
||||
from tqdm.contrib import DummyTqdmFile
|
||||
|
||||
from .constants import LOG_DIR, TIDAL_COVER_URL
|
||||
from .exceptions import InvalidSourceError, NonStreamable
|
||||
|
@ -98,6 +101,20 @@ def get_quality_id(bit_depth: Optional[int], sampling_rate: Optional[int]):
|
|||
return 4
|
||||
|
||||
|
||||
@contextlib.contextmanager
|
||||
def std_out_err_redirect_tqdm():
|
||||
orig_out_err = sys.stdout, sys.stderr
|
||||
try:
|
||||
sys.stdout, sys.stderr = map(DummyTqdmFile, orig_out_err)
|
||||
yield orig_out_err[0]
|
||||
# Relay exceptions
|
||||
except Exception as exc:
|
||||
raise exc
|
||||
# Always restore sys.stdout/err if necessary
|
||||
finally:
|
||||
sys.stdout, sys.stderr = orig_out_err
|
||||
|
||||
|
||||
def tqdm_download(url: str, filepath: str, params: dict = None, desc: str = None):
|
||||
"""Downloads a file with a progress bar.
|
||||
|
||||
|
@ -118,8 +135,15 @@ def tqdm_download(url: str, filepath: str, params: dict = None, desc: str = None
|
|||
raise NonStreamable(url)
|
||||
|
||||
try:
|
||||
with std_out_err_redirect_tqdm() as orig_stdout:
|
||||
with open(filepath, "wb") as file, tqdm(
|
||||
total=total, unit="iB", unit_scale=True, unit_divisor=1024, desc=desc
|
||||
file=orig_stdout,
|
||||
total=total,
|
||||
unit="iB",
|
||||
unit_scale=True,
|
||||
unit_divisor=1024,
|
||||
desc=desc,
|
||||
dynamic_ncols=True,
|
||||
) as bar:
|
||||
for data in r.iter_content(chunk_size=1024):
|
||||
size = file.write(data)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue