From 2a8bb7cf28ffe9053c75287ab6f01b149e15484f Mon Sep 17 00:00:00 2001 From: Nathan Thomas Date: Sat, 13 Jan 2024 21:57:22 -0800 Subject: [PATCH] Implement source_subdirectories feature (#557) --- streamrip/media/album.py | 8 +++++--- streamrip/media/track.py | 3 +++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/streamrip/media/album.py b/streamrip/media/album.py index 48cea13..40f3f2f 100644 --- a/streamrip/media/album.py +++ b/streamrip/media/album.py @@ -85,10 +85,12 @@ class PendingAlbum(Pending): return Album(meta, pending_tracks, self.config, album_folder, self.db) def _album_folder(self, parent: str, meta: AlbumMetadata) -> str: - conf = self.config.session.filepaths - formatter = conf.folder_format + config = self.config.session + if config.downloads.source_subdirectories: + parent = os.path.join(parent, self.client.source.capitalize()) + formatter = config.filepaths.folder_format folder = clean_filename( - meta.format_folder_path(formatter), conf.restrict_characters + meta.format_folder_path(formatter), config.filepaths.restrict_characters ) return os.path.join(parent, folder) diff --git a/streamrip/media/track.py b/streamrip/media/track.py index 09cf7c4..6e2d88b 100644 --- a/streamrip/media/track.py +++ b/streamrip/media/track.py @@ -200,6 +200,9 @@ class PendingSingle(Pending): c = self.config.session parent = c.downloads.folder formatter = c.filepaths.folder_format + if c.downloads.source_subdirectories: + parent = os.path.join(parent, self.client.source.capitalize()) + return os.path.join(parent, meta.format_folder_path(formatter)) async def _download_cover(self, covers: Covers, folder: str) -> str | None: