| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
| |
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.
|
| |
|
|
|
| |
* Changed the header format to include an icon for better visual appeal.
* Ensures consistency with the overall project branding.
|
| | |
|
| |
|
|
|
| |
* Updated the requirements section to include support for Python 3.13.
* Clarified compatibility for users regarding Python versions.
|
| |
|
|
|
|
| |
* 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.
|
| |
|
|
|
| |
* Adjusted the pattern for including icon files to ensure proper matching.
* This change enhances the flexibility of file inclusion during the build process.
|
| |
|
|
|
| |
* Replaced multiple icon files in the UI.
* Ensured all icon sizes are updated to maintain a cohesive look across the application.
|
| |
|
|
|
|
| |
* 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.
|
| |\
| |
| | |
Fix/rate limiting playlist downloads
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| | |
| |
| |
| |
| |
| |
| | |
- 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
|
| | |\
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
- 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)
|
| | | |
| | |
| | |
| | | |
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
|
| | | |
| | |
| | |
| | | |
album folder (primary artist)' preference
|
| |\ \ \
| | | |
| | | | |
Implement Dolby Atmos Support & API Key Selection
|
| | | | |
| | | |
| | | |
| | | | |
legacy code
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | |/
| |/| |
|
| | | |
| | |
| | |
| | |
| | | |
* Updated the `classifiers` section to include support for Python 3.13.
* Ensures compatibility with the latest Python version.
|
| |\ \ \
| |/ /
|/| | |
Py313
|
| | | |
| | |
| | |
| | |
| | |
| | | |
* 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.
|
| | | |
| | |
| | |
| | |
| | | |
* Added support for Python 3.13 in the `tox` configuration.
* Updated `envlist` to include `py313` for testing.
|
| |/ / |
|
| | |
| |
| |
| |
| | |
* 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.
|
| |\ \
| | |
| | | |
feat: Add 'Download Full Album' from track context menu
|
| | |/ |
|
| | |
| |
| |
| |
| | |
* Set default value of `mark_explicit` to `False`.
* Update help text to clarify that marking explicit tracks applies only to metadata.
|
| |\ \
| | |
| | | |
feat(metadata): Toggle explicit symbol in track titles
|
| | | | |
|
| | |/ |
|
| | |
| |
| |
| |
| | |
* 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.
|
| |\ \
| |/
|/| |
fix(download): 🐛 update sorting method for track paths
|
| |/
|
|
|
| |
* 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.
|
| | |
|
| |
|
|
|
| |
* Added `license` and `license-files` fields to ensure proper licensing information is included.
* Removed outdated classifier for license to maintain accuracy.
|
| |\
| |
| | |
feat(metadata): ✨ add explicit track metadata handling
|
| | |
| |
| |
| |
| | |
* Introduced `METADATA_EXPLICIT` constant for explicit track indication.
* Updated `Download` class to append explicit metadata to track titles.
|
| |/
|
|
|
|
| |
* 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.
|
| |
|
|
|
| |
* 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.
|
| |\
| |
| |
| |
| | |
exislow:483-possibility-to-add-lrc-into-unsyncedlyrics-tag
feat(metadata): ✨ add support for synced and unsynced lyrics
|
| |/
|
|
|
|
| |
* Introduced `lyrics_synced` and `lyrics_unsynced` fields in the `Metadata` class.
* Updated the `Download` class to handle both synced and unsynced lyrics from the track.
* Enhanced metadata writing to include `UNSYNCEDLYRICS` in the tags.
|
| |\
| |
| | |
feat(metadata): ✨ add UPC metadata handling and configuration
|
| |/
|
|
|
|
|
| |
* Introduced `MetadataTargetUPC` enum for target metadata tags.
* Added `METADATA_LOOKUP_UPC` dictionary for mapping file formats to UPC tags.
* Updated `Metadata` class to include `target_upc` for dynamic UPC tag assignment.
* Enhanced `Settings` class to allow configuration of `metadata_target_upc`.
|
| |\
| |
| | |
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.
|
| |\
| |
| |
| |
| | |
exislow:568-delimiter-to-semicolon-pls-add-option-to-change-to-whatever-the-user-wants
feat(metadata): ✨ add customizable metadata delimiters for artists
|