mirror of
https://github.com/nathom/streamrip.git
synced 2024-09-19 11:18:45 -04:00
Allow folder formats to specify a subfolder (#581)
* Fix Tidal master quality (#571) * Allow folder formats to specify a subfolder --------- Co-authored-by: Jordan Pinnick <46541297+Geometryse@users.noreply.github.com>
This commit is contained in:
parent
669ceee48a
commit
2175231bc1
4 changed files with 13 additions and 6 deletions
|
@ -200,7 +200,7 @@ class TidalDownloadable(Downloadable):
|
||||||
):
|
):
|
||||||
self.session = session
|
self.session = session
|
||||||
codec = codec.lower()
|
codec = codec.lower()
|
||||||
if codec == "flac":
|
if codec in ("flac", "mqa"):
|
||||||
self.extension = "flac"
|
self.extension = "flac"
|
||||||
else:
|
else:
|
||||||
self.extension = "m4a"
|
self.extension = "m4a"
|
||||||
|
|
|
@ -11,3 +11,10 @@ def clean_filename(fn: str, restrict: bool = False) -> str:
|
||||||
path = "".join(c for c in path if c in ALLOWED_CHARS)
|
path = "".join(c for c in path if c in ALLOWED_CHARS)
|
||||||
|
|
||||||
return path
|
return path
|
||||||
|
|
||||||
|
def clean_filepath(fn: str, restrict: bool = False) -> str:
|
||||||
|
path = str(sanitize_filepath(fn))
|
||||||
|
if restrict:
|
||||||
|
path = "".join(c for c in path if c in ALLOWED_CHARS)
|
||||||
|
|
||||||
|
return path
|
||||||
|
|
|
@ -7,7 +7,7 @@ from .. import progress
|
||||||
from ..client import Client
|
from ..client import Client
|
||||||
from ..config import Config
|
from ..config import Config
|
||||||
from ..db import Database
|
from ..db import Database
|
||||||
from ..filepath_utils import clean_filename
|
from ..filepath_utils import clean_filepath
|
||||||
from ..metadata import AlbumMetadata
|
from ..metadata import AlbumMetadata
|
||||||
from ..metadata.util import get_album_track_ids
|
from ..metadata.util import get_album_track_ids
|
||||||
from .artwork import download_artwork
|
from .artwork import download_artwork
|
||||||
|
@ -89,7 +89,7 @@ class PendingAlbum(Pending):
|
||||||
if config.downloads.source_subdirectories:
|
if config.downloads.source_subdirectories:
|
||||||
parent = os.path.join(parent, self.client.source.capitalize())
|
parent = os.path.join(parent, self.client.source.capitalize())
|
||||||
formatter = config.filepaths.folder_format
|
formatter = config.filepaths.folder_format
|
||||||
folder = clean_filename(
|
folder = clean_filepath(
|
||||||
meta.format_folder_path(formatter), config.filepaths.restrict_characters
|
meta.format_folder_path(formatter), config.filepaths.restrict_characters
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -16,7 +16,7 @@ from ..config import Config
|
||||||
from ..console import console
|
from ..console import console
|
||||||
from ..db import Database
|
from ..db import Database
|
||||||
from ..exceptions import NonStreamableError
|
from ..exceptions import NonStreamableError
|
||||||
from ..filepath_utils import clean_filename
|
from ..filepath_utils import clean_filepath
|
||||||
from ..metadata import (
|
from ..metadata import (
|
||||||
AlbumMetadata,
|
AlbumMetadata,
|
||||||
Covers,
|
Covers,
|
||||||
|
@ -151,7 +151,7 @@ class PendingPlaylist(Pending):
|
||||||
meta = PlaylistMetadata.from_resp(resp, self.client.source)
|
meta = PlaylistMetadata.from_resp(resp, self.client.source)
|
||||||
name = meta.name
|
name = meta.name
|
||||||
parent = self.config.session.downloads.folder
|
parent = self.config.session.downloads.folder
|
||||||
folder = os.path.join(parent, clean_filename(name))
|
folder = os.path.join(parent, clean_filepath(name))
|
||||||
tracks = [
|
tracks = [
|
||||||
PendingPlaylistTrack(
|
PendingPlaylistTrack(
|
||||||
id,
|
id,
|
||||||
|
@ -223,7 +223,7 @@ class PendingLastfmPlaylist(Pending):
|
||||||
results: list[tuple[str | None, bool]] = await asyncio.gather(*requests)
|
results: list[tuple[str | None, bool]] = await asyncio.gather(*requests)
|
||||||
|
|
||||||
parent = self.config.session.downloads.folder
|
parent = self.config.session.downloads.folder
|
||||||
folder = os.path.join(parent, clean_filename(playlist_title))
|
folder = os.path.join(parent, clean_filepath(playlist_title))
|
||||||
|
|
||||||
pending_tracks = []
|
pending_tracks = []
|
||||||
for pos, (id, from_fallback) in enumerate(results, start=1):
|
for pos, (id, from_fallback) in enumerate(results, start=1):
|
||||||
|
|
Loading…
Reference in a new issue