summaryrefslogtreecommitdiff
path: root/tidal_dl_ng/helper
Commit message (Collapse)AuthorAgeFilesLines
* refactor: Refactor mpegdash patch logic and update import orderingWarry2026-01-231-32/+35
|
* Add patchmusicalmusicalmusical2026-01-161-0/+88
|
* feat: Refactor playlist management, error handling, and testing infrastructureWarry2025-12-291-87/+129
| | | | | | | | | | | - Improved playlist item handling with pagination, error logging, and dedicated request hooks. - Consolidated reusable helpers for track ID normalization, playlist validation, and removal logic. - Enhanced error handling by introducing `PlaylistNotFound` and `UserNotAuthenticated` exceptions. - Refined Pytest `qapp` fixture for headless CI compatibility and session-scoped reuse. - Replaced redundant fixtures in multiple test files for consistency. - Improved playlist management GUI with detailed debug logging for notifications and operations. - Added `deptry` configuration to handle transitive dependencies and ignored exclusions. - Updated Pytest and Tox configurations for consistent environment setup during CI/CD runs.
* feat: Enhance playlist management and GUI logicWarry2025-12-292-4/+26
| | | | | | | | | | - Improved playlist item fetching by adding robust pagination and low-level request hooks for better testing and flexibility. - Refactored track ID extraction logic into reusable helpers for clarity. - Improved initialization for dialog components to avoid circular dependencies in the GUI. - Added new unit tests to validate playlist operations, including track addition/removal and API integration. - Updated metadata functions to simplify dictionary access using `.get` for better readability. - Ensured PySide6 system dependencies are installed in GitHub Actions to address CI compatibility issues. - Streamlined UI package initialization to improve modularity and robustness of imports.
* feat: Add playlist management functionality and compliance checksWarry2025-12-291-0/+191
| | | | | | | | | | - Introduced a new "Playlists" column in results view with visual indicators for membership. - Added `playlist_api.py` to handle playlist-related operations (fetch, add, remove tracks). - Implemented `PlaylistManagerDialog` for seamless playlist addition/removal with caching. - Integrated compliance check script (`check_agents_compliance.py`) for ensuring coding standards. - Added extensive documentation (`playlist_membership_manager.md`) covering architecture and flow. - Updated GUI logic and QStandardItemModel setup to include playlist data. - Included unit tests for playlist management components and API.
* refactor: Improve hover manager cleanup and event filtering logicWarry2025-12-031-19/+26
|
* feat(hover): add track details preview on hover + fix all ruff violationsWarry2025-11-293-5/+749
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* feat(media): ✨ add support for retrieving album and track artist IDsRobert Honz2025-11-131-0/+4
| | | | | * Implemented logic to return `album_artist_id` for `Album` instances. * Added functionality to retrieve `track_artist_id` for `Track` instances.
* feat(gui): ✨ enhance user media handling with folder supportRobert Honz2025-11-122-9/+43
| | | | | | * 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.
* Merge pull request #625 from talios/feature/klrrwxuwvrtyexislow2025-11-121-0/+5
|\ | | | | Add format place holder for album_type
| * Add format place holder for album_typeMark Derricutt2025-11-051-0/+5
| | | | | | | | | | | | | | | | This commit exposes the album type as a configuration placeholder. Fixes #595 Change-Id: Ife8832534861fc01da5d68c37be6c7476a6a6964
* | Fix album_artist substitutionJeff Brower2025-10-261-2/+2
|/ | | | | 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.
* Merge upstream/master and resolve conflictsWinman4862025-10-201-1/+1
|\ | | | | | | | | | | | | | | | | | | - Resolved conflict in dialog_settings.py (kept both cb_use_primary_album_artist and cb_mark_explicit checkboxes) - Fixed code quality issues found by make check: * Removed duplicate on_download_album_from_track function (F811) * Updated isinstance calls to use X | Y syntax instead of (X, Y) (UP038) * Fixed unused loop variable album_stub (B007) * Applied automatic formatting fixes (black, prettier, trailing whitespace) - Only remaining issue is C901 complexity warning in on_download_all_albums_from_playlist (expected per maintainer feedback)
* | feat(gui): add 'Download Full Album', 'Download All Albums', and 'Single ↵Winman4862025-10-171-1/+21
|/ | | | album folder (primary artist)' preference
* fix(path): 🐛 add **kwargs support to formatting functionsRobert Honz2025-10-171-18/+9
| | | | | * Updated multiple formatting functions to accept **kwargs for better flexibility. * Ensures consistent handling of additional parameters across artist, title, name, number, date, metadata, and volume formatting.
* feat(path): ✨ add customizable delimiters for artist names in file pathsRobert Honz2025-10-172-17/+90
| | | | | | * 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.
* feat(metadata): ✨ add customizable metadata delimiters for artistsRobert Honz2025-10-171-4/+4
| | | | | | * 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.
* change artist delimiter to semicolonMaya Doshi2025-09-291-2/+2
|
* fix(path): 🐛 correct filename sanitization logicRobert Honz2025-09-251-1/+3
| | | | | * Adjusted the logic in `path_file_sanitize` to ensure the sanitized filename correctly appends the file suffix after the placeholder. * This change prevents potential filename issues when handling file paths.
* feat(tidal): ✨ add url_ending_clean function and refactor URL handling. ↵Robert Honz2025-09-071-0/+13
| | | | | | | 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.
* feat: add support for formatting album release datesRobert Honz2025-08-121-2/+26
| | | | | | | | | | This update introduces support for handling date-related format strings, improving the flexibility of media metadata formatting. - ✨ **Feature**: Adds `_format_dates` function to handle date-related strings like `album_date`. - 🛠️ **Enhancement**: Refactors `_format_durations` by isolating date-related logic into a new function. - 📅 **Improvement**: Supports formatting `album_year` and `album_date` with proper checks for `Album` and `Track` types. This improvement enhances media metadata formatting capabilities for more detailed date information.
* refactor(helper): improve ID format handling logicRobert Honz2025-08-121-2/+4
| | | | | | | | | | Refactors the ID formatting logic to extend support for `video_id` and improve clarity. - ✨ **Feature:** Adds support for `video_id` in ID formatting logic. - ♻️ **Refactor:** Updates conditional checks for better readability. - 🔧 **Metadata:** Updates `poetry.lock` content hash. These changes enhance functionality and maintainability by accommodating additional media types.
* refactor(decryption): ✨ Improve docstring for `decrypt_security_token` ↵Robert Honz2025-07-031-2/+10
| | | | | | | function - Enhanced clarity of the function's purpose and usage. - Added detailed descriptions for arguments and return values.
* feat: ✨ Enhance media formatting functionsRobert Honz2025-07-011-123/+281
| | | | | | | * Added detailed docstrings for `format_str_media` and related helper functions. * Refactored media formatting logic to utilize dedicated functions for better readability and maintainability. * Improved error handling in media formatting. * Updated `file_unique_suffix` function to correct the spelling of `separator`.
* ✨ Add docstrings for path-related functions and improve path sanitization ↵Robert Honz2025-07-011-72/+117
| | | | logic.
* 🛠️ Windows drives won't get sanitized anymore. Fixes #474Robert Honz2025-07-011-1/+2
|
* 🛠️ Directory length limit is checked and adapted correctly now. Fixes ↵Robert Honz2025-06-301-4/+27
| | | | #447 & #436
* ✨ will only return the first artists. will return all album artists. ↵Robert Honz2025-06-292-1/+6
| | | | Fixes #439
* ✨ Implemented playlist track position naming (`{list_pos}`) for downloads. ↵Robert Honz2025-04-021-8/+32
| | | | Fixes #165
* 🛠️ Fixed and simplified path_file_sanitize method.Robert Honz2025-03-271-50/+35
|
* 👷 Code style.Robert Honz2025-03-241-2/+1
|
* 🛠️ Fixed: Skip file is not ignored anymore. Filenames will not be ↵Robert Honz2025-03-241-12/+25
| | | | uniquified by default.
* 🛠️ Fixed: Wrong path build after file sanitization on Windows. Fixes ↵Robert Honz2025-03-241-1/+1
| | | | #389 & #358
* 👷 Refactored path file split method.Robert Honz2025-03-241-20/+13
|
* 🛠️ Fixed path length sanitation. Also refactored the path helper to use ↵Robert Honz2025-02-281-53/+77
| | | | `pathlib.Path` instead of str. Fixed #358
* Merge pull request #369 from flesnuk/masterexislow2025-02-281-0/+3
|\ | | | | Add isrc to path formatting
| * Add isrc to path formattingflesnuk2025-02-191-0/+3
| |
* | ✨ Replay gain information can be disabled in settings. Fixes #176Robert Honz2025-02-281-1/+1
|/ | | | 🛠️ Fixed some warnings
* 👷 File extension guesser improved. Fixes #322Robert Honz2025-01-121-1/+21
|
* ✨ Album track number padding can be set. Fixes #142Robert Honz2024-12-151-6/+13
|
* 🛠️ Fixed track volume number gets omitted on CDn-1. Fixes #151Robert Honz2024-12-131-2/+2
|
* 🛠️ Fixed `{album_artist}` tag replacement on track level. Fixes #239Robert Honz2024-11-171-2/+1
|
* ✨ Finished items will be written to log output. Minor refactoring.Robert Honz2024-11-151-2/+4
|
* ✨ `tidalapi` and dependent code was updated.Robert Honz2024-11-131-1/+1
|
* ✨ Do not process tracks with missing segments. Refactored some method to ↵Robert Honz2024-11-131-6/+6
| | | | `pathlib.Path`.
* ✨ Removed complex skipping options in favor of a faster duplicates check / ↵Robert Honz2024-11-131-0/+3
| | | | skipping of already present items without download delay.
* ✨ Track segments are downloaded simultaneously, which results in a huge ↵Robert Honz2024-11-122-3/+25
| | | | speed increase. Some refactoring work has been done.
* Fix: `{album_artist}` is now emitting only the album artist is only replaced ↵Robert Honz2024-11-101-1/+2
| | | | on an Album level. Fixes #200
* `{track_volume_num_optional}` and `{track_volume_num_optional_CD}` added for ↵Robert Honz2024-11-101-0/+8
| | | | an optional sub CD folder structure. Fixes #151
* Fix: Replace `{artist_name}` only on Track / Video basis. Fixes #171Robert Honz2024-11-101-4/+5
|