diff options
| author | Robert Honz <exislow+github@gmail.com> | 2025-10-17 13:13:19 +0200 |
|---|---|---|
| committer | Robert Honz <exislow+github@gmail.com> | 2025-10-17 13:13:19 +0200 |
| commit | dd5a402dcebd79e1efe1b643ec874ade42683271 (patch) | |
| tree | 175917d2cdb59385799d00f0f55e6c13a5f590d5 /tidal_dl_ng/download.py | |
| parent | feebdda62f0b64a94dfff63334ca9ee7984df453 (diff) | |
| download | tidal-dl-ng-dd5a402dcebd79e1efe1b643ec874ade42683271.tar.gz | |
feat(path): ✨ add customizable delimiters for artist names in file paths
* Updated `format_path_media` and related functions to accept customizable delimiters for artist names.
* Modified `Settings` class to include `filename_delimiter_artist` and `filename_delimiter_album_artist`.
* Enhanced `name_builder_artist` and `name_builder_album_artist` functions to utilize the new delimiters.
Diffstat (limited to 'tidal_dl_ng/download.py')
| -rw-r--r-- | tidal_dl_ng/download.py | 33 |
1 files changed, 27 insertions, 6 deletions
diff --git a/tidal_dl_ng/download.py b/tidal_dl_ng/download.py index a4e4bfc..2d6f6ed 100644 --- a/tidal_dl_ng/download.py +++ b/tidal_dl_ng/download.py @@ -653,7 +653,13 @@ class Download: ) file_name_relative: str = format_path_media( - file_template, media, self.settings.data.album_track_num_pad_min, list_position, list_total + file_template, + media, + self.settings.data.album_track_num_pad_min, + list_position, + list_total, + delimiter_artist=self.settings.data.filename_delimiter_artist, + delimiter_album_artist=self.settings.data.filename_delimiter_album_artist, ) path_media_dst: pathlib.Path = ( @@ -671,7 +677,12 @@ class Download: if self.settings.data.symlink_to_track and not isinstance(media, Video): # Compute symlink tracks path, sanitize and check if file exists - file_name_track_dir_relative: str = format_path_media(self.settings.data.format_track, media) + file_name_track_dir_relative: str = format_path_media( + self.settings.data.format_track, + media, + delimiter_artist=self.settings.data.filename_delimiter_artist, + delimiter_album_artist=self.settings.data.filename_delimiter_album_artist, + ) path_media_track_dir: pathlib.Path = ( pathlib.Path(self.path_base).expanduser() / (file_name_track_dir_relative + file_extension_dummy) ).absolute() @@ -947,7 +958,12 @@ class Download: pathlib.Path: Destination path. """ # Compute tracks path, sanitize and ensure path exists - file_name_relative: str = format_path_media(self.settings.data.format_track, media) + file_name_relative: str = format_path_media( + self.settings.data.format_track, + media, + delimiter_artist=self.settings.data.filename_delimiter_artist, + delimiter_album_artist=self.settings.data.filename_delimiter_album_artist, + ) path_media_dst: pathlib.Path = ( pathlib.Path(self.path_base).expanduser() / (file_name_relative + file_extension) ).absolute() @@ -1315,7 +1331,12 @@ class Download: tuple[str, str, str, list, bool]: (file_name_relative, list_media_name, list_media_name_short, items, progress_stdout) """ # Create file name and path - file_name_relative: str = format_path_media(file_template, media) + file_name_relative: str = format_path_media( + file_template, + media, + delimiter_artist=self.settings.data.filename_delimiter_artist, + delimiter_album_artist=self.settings.data.filename_delimiter_album_artist, + ) # Get the name of the list and check, if videos should be included. list_media_name: str = name_builder_title(media) @@ -1522,8 +1543,8 @@ class Download: if sort_alphabetically: path_tracks.sort() elif not is_album: - # If it is not an album sort by modification time - path_tracks.sort(key=lambda x: os.path.getmtime(x)) + # If it is not an album sort by creation time + path_tracks.sort(key=lambda x: os.path.getctime(x)) # Write data to m3u file with path_playlist.open(mode="w", encoding="utf-8") as f: |
