summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tidal_dl_ng/dialog.py1
-rw-r--r--tidal_dl_ng/download.py6
-rw-r--r--tidal_dl_ng/model/cfg.py2
-rw-r--r--tidal_dl_ng/ui/dialog_settings.py13
-rw-r--r--tidal_dl_ng/ui/dialog_settings.ui10
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>