diff options
| -rw-r--r-- | tidal_dl_ng/dialog.py | 1 | ||||
| -rw-r--r-- | tidal_dl_ng/download.py | 6 | ||||
| -rw-r--r-- | tidal_dl_ng/model/cfg.py | 2 | ||||
| -rw-r--r-- | tidal_dl_ng/ui/dialog_settings.py | 13 | ||||
| -rw-r--r-- | tidal_dl_ng/ui/dialog_settings.ui | 10 |
5 files changed, 25 insertions, 7 deletions
diff --git a/tidal_dl_ng/dialog.py b/tidal_dl_ng/dialog.py index b17c151..dcedf2e 100644 --- a/tidal_dl_ng/dialog.py +++ b/tidal_dl_ng/dialog.py @@ -180,6 +180,7 @@ class DialogPreferences(QtWidgets.QDialog): "video_convert_mp4", "extract_flac", "metadata_cover_embed", + "mark_explicit", "cover_album_file", "skip_existing", "symlink_to_track", diff --git a/tidal_dl_ng/download.py b/tidal_dl_ng/download.py index 4ac2b14..1735793 100644 --- a/tidal_dl_ng/download.py +++ b/tidal_dl_ng/download.py @@ -1229,7 +1229,7 @@ class Download: target_upc: dict[str, str] = METADATA_LOOKUP_UPC[metadata_target_upc] explicit: bool = track.explicit if hasattr(track, "explicit") else False title = name_builder_title(track) - title += METADATA_EXPLICIT if explicit else "" + title += METADATA_EXPLICIT if explicit and self.settings.data.mark_explicit else "" # `None` values are not allowed. m: Metadata = Metadata( @@ -1560,7 +1560,9 @@ class Download: path_tracks.sort() elif not is_album: # If it is not an album sort by creation time - path_tracks.sort(key=lambda x: os.path.getctime(x)) + path_tracks.sort( + key=lambda x: x.stat().st_birthtime if hasattr(x.stat(), "st_birthtime") else x.stat().st_ctime + ) # Write data to m3u file with path_playlist.open(mode="w", encoding="utf-8") as f: diff --git a/tidal_dl_ng/model/cfg.py b/tidal_dl_ng/model/cfg.py index bee2876..44db92f 100644 --- a/tidal_dl_ng/model/cfg.py +++ b/tidal_dl_ng/model/cfg.py @@ -35,6 +35,7 @@ class Settings: path_binary_ffmpeg: str = "" metadata_cover_dimension: CoverDimensions = CoverDimensions.Px320 metadata_cover_embed: bool = True + mark_explicit: bool = False cover_album_file: bool = True extract_flac: bool = True downloads_simultaneous_per_track_max: int = 20 @@ -94,6 +95,7 @@ class HelpSettings: "The dimensions of the cover image embedded into the track. Possible values: 320x320, 640x640x 1280x1280." ) metadata_cover_embed: str = "Embed album cover into file." + mark_explicit: str = "Mark explicit tracks with '🅴' in track title (only applies to metadata)." cover_album_file: str = "Save cover to 'cover.jpg', if an album is downloaded." extract_flac: str = "Extract FLAC audio tracks from MP4 containers and save them as `*.flac` (uses FFmpeg)." downloads_simultaneous_per_track_max: str = "Maximum number of simultaneous chunk downloads per track." diff --git a/tidal_dl_ng/ui/dialog_settings.py b/tidal_dl_ng/ui/dialog_settings.py index 3098817..9ec2738 100644 --- a/tidal_dl_ng/ui/dialog_settings.py +++ b/tidal_dl_ng/ui/dialog_settings.py @@ -1,7 +1,7 @@ ################################################################################ ## Form generated from reading UI file 'dialog_settings.ui' ## -## Created by: Qt User Interface Compiler version 6.8.1 +## Created by: Qt User Interface Compiler version 6.10.0 ## ## WARNING! All changes made in this file will be lost when recompiling UI file! ################################################################################ @@ -187,10 +187,14 @@ class Ui_DialogSettings: self.horizontalLayout_12.addLayout(self.lv_playlist_create) - self.verticalLayout_4 = QVBoxLayout() - self.verticalLayout_4.setObjectName("verticalLayout_4") + self.lv_mark_explicit = QVBoxLayout() + self.lv_mark_explicit.setObjectName("lv_mark_explicit") + self.cb_mark_explicit = QCheckBox(self.gb_flags) + self.cb_mark_explicit.setObjectName("cb_mark_explicit") - self.horizontalLayout_12.addLayout(self.verticalLayout_4) + self.lv_mark_explicit.addWidget(self.cb_mark_explicit) + + self.horizontalLayout_12.addLayout(self.lv_mark_explicit) self.lv_flags.addLayout(self.horizontalLayout_12) @@ -598,6 +602,7 @@ class Ui_DialogSettings: self.cb_skip_existing.setText(QCoreApplication.translate("DialogSettings", "CheckBox", None)) self.cb_symlink_to_track.setText(QCoreApplication.translate("DialogSettings", "CheckBox", None)) self.cb_playlist_create.setText(QCoreApplication.translate("DialogSettings", "CheckBox", None)) + self.cb_mark_explicit.setText(QCoreApplication.translate("DialogSettings", "CheckBox", None)) self.gb_choices.setTitle(QCoreApplication.translate("DialogSettings", "Choices", None)) self.l_icon_quality_audio.setText(QCoreApplication.translate("DialogSettings", "TextLabel", None)) self.l_quality_audio.setText(QCoreApplication.translate("DialogSettings", "TextLabel", None)) diff --git a/tidal_dl_ng/ui/dialog_settings.ui b/tidal_dl_ng/ui/dialog_settings.ui index 5287e38..95c6b52 100644 --- a/tidal_dl_ng/ui/dialog_settings.ui +++ b/tidal_dl_ng/ui/dialog_settings.ui @@ -250,7 +250,15 @@ </layout> </item> <item> - <layout class="QVBoxLayout" name="verticalLayout_4"/> + <layout class="QVBoxLayout" name="lv_mark_explicit"> + <item> + <widget class="QCheckBox" name="cb_mark_explicit"> + <property name="text"> + <string>CheckBox</string> + </property> + </widget> + </item> + </layout> </item> </layout> </item> |
