summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* | Merge pull request #644 from exislow:foldersexislow2025-11-123-53/+255
|\ \ | | | | | | feat(gui): ✨ enhance user media handling with folder support
| * | feat(gui): ✨ enhance user media handling with folder supportRobert Honz2025-11-123-53/+255
|/ / | | | | | | | | | | * 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.
* | chore: 📝 add comprehensive coding standards and guidelinesRobert Honz2025-11-122-36/+208
| | | | | | | | | | | | * Introduced a new `AGENTS.md` file containing detailed coding standards for the project. * Covers topics such as Python version support, naming conventions, type annotations, error handling, and best practices. * Aims to improve code quality, maintainability, and team consistency.
* | Merge pull request #643 from exislow/paginationexislow2025-11-121-3/+3
|\ \ | | | | | | chore: 🔧 update function names in FAVORITES for consistency
| * | chore: 🔧 update function names in FAVORITES for consistencyRobert Honz2025-11-121-3/+3
|/ / | | | | | | | | * Changed `function_name` for `fav_tracks`, `fav_artists`, and `fav_albums` to use paginated versions. * Ensures uniformity in function naming across favorites.
* | 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
* | Merge pull request #613 from jbrower2/patch-1exislow2025-10-261-2/+2
|\ \ | | | | | | Fix album_artist substitution
| * | 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.
* | chore: ✨ update header in README for improved brandingRobert Honz2025-10-261-1/+1
| | | | | | | | | | * Changed the header format to include an icon for better visual appeal. * Ensures consistency with the overall project branding.
* | 🌟 Version bumped to v0.31.3Robert Honz2025-10-261-1/+1
| |
* | chore: 🔧 update Python version requirements in READMERobert Honz2025-10-261-1/+1
|/ | | | | * Updated the requirements section to include support for Python 3.13. * Clarified compatibility for users regarding Python versions.
* docs: 📚 update README for Dolby Atmos support and build instructionsRobert Honz2025-10-221-3/+11
| | | | | | * Added information on downloading Dolby Atmos files. * Updated build instructions for macOS and added options for Windows and Linux. * Corrected the build status badge link in the README.
* chore(gui): 🎨 update data file inclusion pattern for iconsRobert Honz2025-10-221-1/+1
| | | | | * Adjusted the pattern for including icon files to ensure proper matching. * This change enhances the flexibility of file inclusion during the build process.
* chore(ui): 🎨 update application icons for improved visual consistencyRobert Honz2025-10-228-0/+0
| | | | | * Replaced multiple icon files in the UI. * Ensured all icon sizes are updated to maintain a cohesive look across the application.
* refactor(gui): ✨ update album download options and improve session validationRobert Honz2025-10-224-39/+51
| | | | | | * Added a new action to download all albums in a playlist. * Removed the deprecated `validate_session` method and replaced it with a direct call to `self.tidal.session.check_login()`. * Adjusted the UI layout in `dialog_settings` to accommodate new options and improved sizing.
* Merge pull request #596 from Winman486/fix/rate-limiting-playlist-downloadsexislow2025-10-227-6/+279
|\ | | | | Fix/rate limiting playlist downloads
| * refactor: Make rate limiting configurable and move session validation to ↵Winman4862025-10-213-21/+37
| | | | | | | | | | | | | | | | | | | | | | Tidal class - Add api_rate_limit_batch_size and api_rate_limit_delay_sec to Settings (cfg.py) - Move validate_session() and is_authentication_error() to Tidal class (config.py) - Update _load_albums_with_rate_limiting() to use config values instead of hardcoded 20/3 - Update _handle_album_load_error() to use Tidal.is_authentication_error() - Remove _validate_session() from gui.py (now uses Tidal.validate_session()) - Addresses maintainer feedback: configurable tweaking variables and proper separation of concerns
| * fix: Remove duplicate menu entry and reduce code complexityWinman4862025-10-201-69/+131
| | | | | | | | | | | | | | - Removed duplicate 'Download Full Album' context menu entry - Refactored on_download_all_albums_from_playlist to reduce C901 complexity - Extracted helper methods: _extract_album_ids_from_tracks, _load_albums_with_rate_limiting, _validate_session, _handle_album_load_error, _queue_loaded_albums - All make check errors and warnings now resolved
| * Merge upstream/master and resolve conflictsWinman4862025-10-208-97/+112
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | - 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 rate limiting to Download All Albums feature - Process 20 ↵Winman4862025-10-171-5/+47
| | | | | | | | | | | | albums at a time with 3-second delays - Add session validity checks to prevent OAuth errors - Handle unavailable albums gracefully - Add informative logging for rate limiting progress
| * | feat(gui): add 'Download Full Album', 'Download All Albums', and 'Single ↵Winman4862025-10-176-5/+204
| | | | | | | | | | | | album folder (primary artist)' preference
* | | Merge pull request #573 from Rikrdoga/Dolby_Atmosexislow2025-10-228-11/+107
|\ \ \ | | | | | | | | Implement Dolby Atmos Support & API Key Selection
| * | | Move credentials to constants, improve docs (tidal_obj), and clean up Atmos ↵Rikrdoga2025-10-215-22/+23
| | | | | | | | | | | | | | | | legacy code
| * | | minor fix: Respect audio quality selectedRikrdoga2025-10-201-1/+0
| | | |
| * | | Apply formatter and fix TRY003Rikrdoga2025-10-203-9/+7
| | | |
| * | | Refactor Dolby Atmos ImplementationRikrdoga2025-10-206-71/+83
| | | |
| * | | Refactor Dolby Atmos feature to be internal and seamlessRikrdoga2025-10-207-109/+346
| | | |
| * | | Disable Load from gist and fix JSON in api.py (remove // Invalid)Rikrdoga2025-10-201-16/+16
| | | |
| * | | Add support for Dolby AtmosRikrdoga2025-10-205-244/+93
| | |/ | |/|
* | | fix(pyproject): 🐛 add support for Python 3.13 in classifiersRobert Honz2025-10-211-0/+1
| | | | | | | | | | | | | | | * Updated the `classifiers` section to include support for Python 3.13. * Ensures compatibility with the latest Python version.
* | | Merge pull request #603 from exislow:py313exislow2025-10-215-59/+84
|\ \ \ | |/ / |/| | Py313
| * | fix(gui): 🐛 integrate `ansi2html` for improved log message formattingRobert Honz2025-10-213-24/+47
| | | | | | | | | | | | | | | | | | * Added `Ansi2HTMLConverter` to convert ANSI color codes in log messages to HTML. * Updated the `MainWindow` class to utilize the new converter for displaying logs. * Removed dependency on `coloredlogs.converter` for log message display.
| * | fix(tox): 🐛 update Python version support in configurationRobert Honz2025-10-204-40/+42
| | | | | | | | | | | | | | | * Added support for Python 3.13 in the `tox` configuration. * Updated `envlist` to include `py313` for testing.
* | | 🌟 Version bumped to v0.30.0Robert Honz2025-10-201-1/+1
|/ /
* | fix(gui): 🐛 improve album download action and update docstringRobert Honz2025-10-201-5/+10
| | | | | | | | | | * Refactored the menu action for downloading the full album from a track. * Enhanced the docstring for `on_download_album_from_track` to clarify its functionality and error handling.
* | Merge pull request #590 from Rikrdoga/feature/download-album-from-trackexislow2025-10-201-0/+38
|\ \ | | | | | | feat: Add 'Download Full Album' from track context menu
| * | feat: Add 'Download Full Album' from track context menuRikrdoga2025-10-171-0/+38
| |/
* | fix(cfg): 🐛 update `mark_explicit` default value and improve help textRobert Honz2025-10-202-205/+168
| | | | | | | | | | * Set default value of `mark_explicit` to `False`. * Update help text to clarify that marking explicit tracks applies only to metadata.
* | Merge pull request #600 from truubo/597-optional-explicit-symbol-in-track-titleexislow2025-10-205-169/+222
|\ \ | | | | | | feat(metadata): Toggle explicit symbol in track titles
| * | Quick help text changeTrubo2025-10-191-1/+1
| | |
| * | Add a checkbox to settings that toggles the explicit symbol in track titlesTrubo2025-10-195-169/+222
| |/
* | fix(download): 🐛 handle missing `st_birthtime` attribute in track sortingRobert Honz2025-10-201-1/+3
| | | | | | | | | | * Updated the sorting method for track paths to check for the presence of `st_birthtime`. * If `st_birthtime` is not available, fallback to using `st_ctime` for sorting.
* | Merge pull request #601 from exislow:sort-by-birthtimeexislow2025-10-201-1/+1
|\ \ | |/ |/| fix(download): 🐛 update sorting method for track paths
| * fix(download): 🐛 update sorting method for track pathsRobert Honz2025-10-201-1/+1
|/ | | | | * Changed sorting method from `os.path.getctime` to `x.stat().st_birthtime` for better accuracy in track creation time. * This improves the reliability of track order when not dealing with albums.
* 🌟 Version bumped to v0.29.0Robert Honz2025-10-171-1/+1
|
* fix(metadata): 🐛 update license information in `pyproject.toml`Robert Honz2025-10-171-1/+2
| | | | | * Added `license` and `license-files` fields to ensure proper licensing information is included. * Removed outdated classifier for license to maintain accuracy.
* Merge pull request #589 from exislow:486-explicit-taggingexislow2025-10-173-1/+11
|\ | | | | feat(metadata): ✨ add explicit track metadata handling
| * feat(metadata): ✨ add explicit track metadata handlingRobert Honz2025-10-172-2/+7
| | | | | | | | | | * Introduced `METADATA_EXPLICIT` constant for explicit track indication. * Updated `Download` class to append explicit metadata to track titles.
| * feat(metadata): ✨ add support for explicit track metadataRobert Honz2025-10-172-0/+5
|/ | | | | | * Added `explicit` attribute to the `Metadata` class. * Updated the constructor to initialize `explicit` with a default value of `False`. * Modified the metadata saving process to include explicit rating in tags.