Compare commits

..

4 Commits

Author SHA1 Message Date
afkarxyz 3ac4c34d73 v3.0 2025-05-31 19:33:16 +07:00
afkarxyz 88e303cbe4 v2.9 2025-05-30 22:28:24 +07:00
afkarxyz c13855fadd v2.9 2025-05-30 22:22:14 +07:00
afkarxyz 2b12684960 v2.8 2025-05-23 16:47:38 +07:00
4 changed files with 22 additions and 10 deletions
+1 -1
View File
@@ -6,7 +6,7 @@
<b>SpotiFLAC</b> allows you to download Spotify tracks in true FLAC format through services like Tidal, Amazon Music, and Deezer <code>(via Lucida)</code>, as well as Qobuz <code>(via SquidWTF)</code>. <b>SpotiFLAC</b> allows you to download Spotify tracks in true FLAC format through services like Tidal, Amazon Music, and Deezer <code>(via Lucida)</code>, as well as Qobuz <code>(via SquidWTF)</code>.
</div> </div>
### [Download](https://github.com/afkarxyz/SpotiFLAC/releases/download/v2.7/SpotiFLAC.exe) ### [Download](https://github.com/afkarxyz/SpotiFLAC/releases/download/v2.9/SpotiFLAC.exe)
# #
+7 -5
View File
@@ -550,7 +550,7 @@ class QobuzRegionComboBox(QComboBox):
class SpotiFLACGUI(QWidget): class SpotiFLACGUI(QWidget):
def __init__(self): def __init__(self):
super().__init__() super().__init__()
self.current_version = "2.8" self.current_version = "3.0"
self.tracks = [] self.tracks = []
self.reset_state() self.reset_state()
@@ -954,7 +954,7 @@ class SpotiFLACGUI(QWidget):
sections = [ sections = [
("Check for Updates", "https://github.com/afkarxyz/SpotiFLAC/releases"), ("Check for Updates", "https://github.com/afkarxyz/SpotiFLAC/releases"),
("Report an Issue", "https://github.com/afkarxyz/SpotiFLAC/issues"), ("Report an Issue", "https://github.com/afkarxyz/SpotiFLAC/issues"),
("Lucida Site", "https://lucida.to/stats") ("Lucida Status", "https://status.lucida.to")
] ]
for title, url in sections: for title, url in sections:
@@ -995,7 +995,7 @@ class SpotiFLACGUI(QWidget):
spacer = QSpacerItem(20, 6, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Fixed) spacer = QSpacerItem(20, 6, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Fixed)
about_layout.addItem(spacer) about_layout.addItem(spacer)
footer_label = QLabel("v2.8 | May 2025") footer_label = QLabel("v3.0 | May 2025")
footer_label.setStyleSheet("font-size: 12px; margin-top: 10px;") footer_label.setStyleSheet("font-size: 12px; margin-top: 10px;")
about_layout.addWidget(footer_label, alignment=Qt.AlignmentFlag.AlignCenter) about_layout.addWidget(footer_label, alignment=Qt.AlignmentFlag.AlignCenter)
@@ -1355,7 +1355,8 @@ class SpotiFLACGUI(QWidget):
def download_tracks(self, indices): def download_tracks(self, indices):
self.log_output.clear() self.log_output.clear()
outpath = self.output_dir.text() raw_outpath = self.output_dir.text().strip()
outpath = os.path.normpath(raw_outpath)
if not os.path.exists(outpath): if not os.path.exists(outpath):
self.log_output.append('Warning: Invalid output directory.') self.log_output.append('Warning: Invalid output directory.')
return return
@@ -1363,7 +1364,8 @@ class SpotiFLACGUI(QWidget):
tracks_to_download = self.tracks if self.is_single_track else [self.tracks[i] for i in indices] tracks_to_download = self.tracks if self.is_single_track else [self.tracks[i] for i in indices]
if self.is_album or self.is_playlist: if self.is_album or self.is_playlist:
folder_name = re.sub(r'[<>:"/\\|?*]', '_', self.album_or_playlist_name) name = self.album_or_playlist_name.strip()
folder_name = re.sub(r'[<>:"/\\|?*]', '_', name)
outpath = os.path.join(outpath, folder_name) outpath = os.path.join(outpath, folder_name)
os.makedirs(outpath, exist_ok=True) os.makedirs(outpath, exist_ok=True)
+13 -3
View File
@@ -764,8 +764,18 @@ class TidalDownloader:
if copyright_info: if copyright_info:
audio["COPYRIGHT"] = copyright_info audio["COPYRIGHT"] = copyright_info
if album_info.get("releaseDate"): release_date = None
audio["DATE"] = album_info["releaseDate"][:4] if search_info and search_info.get("streamStartDate"):
release_date = search_info["streamStartDate"]
elif track_info.get("streamStartDate"):
release_date = track_info["streamStartDate"]
if release_date:
if "T" in release_date:
date_part = release_date.split("T")[0]
audio["DATE"] = date_part
else:
audio["DATE"] = release_date
if track_info.get("genre"): if track_info.get("genre"):
audio["GENRE"] = track_info["genre"] audio["GENRE"] = track_info["genre"]
@@ -1014,7 +1024,7 @@ async def main():
print("\n\n=== SquidWTFDownloader ===") print("\n\n=== SquidWTFDownloader ===")
squid = SquidWTFDownloader(region="us") squid = SquidWTFDownloader(region="us")
isrc = "USUM72409273" isrc = "USAT22409172"
output_dir = "." output_dir = "."
try: try:
+1 -1
View File
@@ -1,3 +1,3 @@
{ {
"version": "2.7" "version": "2.9"
} }