Commit Graph
36 Commits
Author SHA1 Message Date
Warry d2c3e8ab8f feat(hover): add track details preview on hover + fix all ruff violations
Implement comprehensive track information display on hover and resolve all
code quality issues to achieve complete ruff compliance.

MAJOR FEATURES:
- Track details preview on hover with rich metadata display
- Async BPM fetching with loading indicator
- Enhanced metadata utilities with fuzzy matching
- TIDAL API extras integration

FILES MODIFIED: 15+ files (core, UI, tests, docs)

RUFF COMPLIANCE: 0 errors (89+ violations resolved)
- Fixed E999 syntax error in metadata_utils.py
- Refactored 10+ complex functions (C901)
- Updated error handling (S110, S112, SIM105)
- Modernized type hints (UP038)
- Fixed naming conflicts (A001, F811)

BUG FIXES:
- Added missing _on_update_cover() method (11 test failures)
- Fixed BPM display and async loading
- Improved thread safety

TESTING: 30 passed, 1 skipped
DOCUMENTATION: Windows PowerShell support, tox troubleshooting
2025-11-29 12:10:06 +01:00
Robert Honz 9baea9b82c feat(gui): ✨ enhance user media handling with folder support
* Updated `user_media_lists` to return a dictionary containing both `playlists` and `mixes`, including `Folder` objects.
* Modified `on_populate_tree_lists` to handle `Folder` items and display their contents.
* Introduced new methods for loading and displaying folder contents in the user interface.
2025-11-12 15:05:20 +01:00
Jeff BrowerandGitHub be43c3f616 Fix album_artist substitution
For albums that are listed with a non-"main" artist first (ex: 37691520), the album artist replacement was returning an empty string. This isn't a problem with the default settings, but if you format albums into `{album_artist}/...`, the path becomes `/...` in this case, and is interpreted as an absolute path instead of a relative one, causing the download to fail.

This changes the logic so that if the `first_only` flag is passed, it will return after the first artist is actually added to the list, no longer returning an empty string.
2025-10-26 10:33:07 -04:00
Robert Honz dd5a402dce 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.
2025-10-17 13:13:19 +02:00
Robert Honz 5da1855028 feat(metadata): ✨ add customizable metadata delimiters for artists
* Introduced `metadata_delimiter_artist` and `metadata_delimiter_album_artist` settings.
* Updated `name_builder_artist` and `name_builder_album_artist` functions to utilize the new delimiters.
* This allows users to specify their preferred delimiter for artist names in metadata.
2025-10-17 12:06:25 +02:00
Maya Doshi 59ee4cd272 change artist delimiter to semicolon 2025-09-29 11:49:39 -04:00
Robert Honz 541527be32 feat(tidal): ✨ add url_ending_clean function and refactor URL handling. Fixes #523
* Introduced `url_ending_clean` to sanitize URLs by removing trailing "/u" or "?u".
* Updated `_process_url` and GUI search logic to utilize cleaned URLs for better validation and processing.
2025-09-07 18:27:30 +02:00
Robert Honz db5c5eac97 ✨ will only return the first artists. will return all album artists. Fixes #439 2025-06-29 21:42:39 +02:00
Robert Honz 5e91194bd1 ✨ Replay gain information can be disabled in settings. Fixes #176
🛠️ Fixed some warnings
2025-02-28 10:55:41 +01:00
Robert Honz 037e6f14a2 ✨ Finished items will be written to log output. Minor refactoring. 2024-11-15 09:57:01 +01:00
Robert Honz 7134e0e51b ✨ tidalapi and dependent code was updated. 2024-11-13 13:09:58 +01:00
Robert Honz 4012edfed3 Bug fix: Pagination for user playlists loading more than 50 items now. Fixes #131 2024-11-09 08:54:59 +01:00
Robert Honz f41d65d7d3 Since TIDAL has remove MQA (HI_RES), all traces of MQA have been removed here. 2024-11-06 15:01:18 +01:00
Robert Honz e9af97ef91 👷 Pagination enabled for playlists. Fixes #131 2024-06-16 14:21:46 +02:00
Robert Honz e61d68200a 🛠️ Fixed import error. 2024-05-24 10:01:01 +02:00
Robert Honz 182e531798 🛠️ Fixed crash on right click -> download a favorite list. 2024-05-24 09:31:37 +02:00
Robert Honz 5b04063e83 ✨ User favorites (hearted items) are now selectable from the left pane's list. Fixes #99 2024-05-24 07:23:10 +02:00
Robert Honz 776542de5c ✨ Can download artists. Fixes #102 2024-05-22 06:33:40 +02:00
Robert Honz 3a6bf023d7 ✨ Can search for artists using an artist link. 2024-05-21 15:51:26 +02:00
Robert Honz f9862e0646 ✨ PKCE / OAuth login will be chosen on the fly, depending on the desired audio quality of the track to speed up non HIRES_LOSSLESS downloads. Quality for tracks in download queue can be chosen individually. Fixes #73 2024-04-21 15:58:31 +02:00
Robert Honz b57d36ac80 ✨ Explicit versions will be shown. Audio quality is shown in results and download table. Fixes #58 2024-04-20 11:28:38 +02:00
Robert Honz 84c8036bdd ✨ List EPs and singles while expanding artists in result pane. 2024-03-23 12:29:14 +01:00
Robert Honz 48fd379eba ✨ Search for artists is possible. 2024-03-22 17:31:33 +01:00
Robert Honz 12d3360c12 🧑‍🔧️ GUI buttons correctly prefixed with pb. 2024-03-22 15:02:26 +01:00
Robert Honz e1dfc9ae0b ✨ Adds 'album_artist' to the folder names. Fixes #51 2024-03-19 14:53:09 +01:00
Robert Honz bc88b6fcac 🛠 Album Artist ID3 tag only shows the main album artists. Fixes #51 2024-03-19 07:23:35 +01:00
Robert Honz 5c5aac11f1 ✨ The full track name will be used as file title. 2024-03-14 06:36:48 +01:00
Robert Honz e3a8588324 Merge branch '41-request-song-organization'
* 41-request-song-organization:
  ✨ Track media items will be re-created with album information. Path format refactored.
  ♻️ Refactored format_str method to one `format_str_media` method.

# Conflicts:
#	tidal_dl_ng/download.py
#	tidal_dl_ng/gui.py
2024-03-13 06:48:11 +01:00
Robert Honz 3c57db9e82 ✨ Direct link search can handle invalid links. 2024-02-26 07:34:07 +01:00
Robert Honz d845f40e54 ✨ Direct search for links in GUI is possible. ♻️ Instantiate media method was moved to helper. 2024-02-26 07:27:53 +01:00
Robert Honz 53c8db80f8 ♻️ Refactoring of tidal related function. Cleaned up TODOs. 2024-01-19 07:34:32 +01:00
Robert Honz 12362983d6 ✨ Result pagination implement for Downloader. 2024-01-18 22:14:46 +01:00
Robert Honz 922b3d2655 ✨ Result pagination implement for GUI. 2024-01-18 21:57:35 +01:00
Robert Honz e3d780e36d ♻️ Capitalized enum names.. 2024-01-16 06:33:23 +01:00
Robert Honz ec728d4dcd ♻️ Refactored download for CLI. 2024-01-14 23:09:43 +01:00
Robert Honz 14483a1629 ♻️ Some refactoring started within download.py.
✨ Track extension can be ignored while skipping files. Closes #11.
✨ Started to implement MPEG DASH download support.
2024-01-13 11:57:11 +01:00