Commit Graph
446 Commits
Author SHA1 Message Date
Rikrdoga 2c2cc0283a Refactor Dolby Atmos feature to be internal and seamless 2025-10-20 10:47:43 -06:00
Rikrdoga ec4502ad00 Disable Load from gist and fix JSON in api.py (remove // Invalid) 2025-10-20 10:33:13 -06:00
Rikrdoga 302b552ed7 Add support for Dolby Atmos 2025-10-20 10:33:01 -06:00
Robert Honz aaca12cacc fix(gui): 🐛 improve album download action and update docstring
* 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.
2025-10-20 09:37:01 +02:00
exislowandGitHub 51556f1d80 Merge pull request #590 from Rikrdoga/feature/download-album-from-track
feat: Add 'Download Full Album' from track context menu
2025-10-20 09:26:22 +02:00
Robert Honz 8c361249ed fix(cfg): 🐛 update mark_explicit default value and improve help text
* Set default value of `mark_explicit` to `False`.
* Update help text to clarify that marking explicit tracks applies only to metadata.
2025-10-20 08:20:20 +02:00
exislowandGitHub 307ea1bd6d Merge pull request #600 from truubo/597-optional-explicit-symbol-in-track-title
feat(metadata): Toggle explicit symbol in track titles
2025-10-20 08:17:52 +02:00
Robert Honz ffbd7849a1 fix(download): 🐛 handle missing st_birthtime attribute in track sorting
* 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.
2025-10-20 08:12:34 +02:00
Robert Honz 2b932e84b4 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.
2025-10-20 08:06:25 +02:00
Trubo 0176892a3b Quick help text change 2025-10-19 18:28:18 -05:00
Trubo 2402550884 Add a checkbox to settings that toggles the explicit symbol in track titles 2025-10-19 18:16:19 -05:00
Winman486 90ff7ea52e feat(gui): add rate limiting to Download All Albums feature - Process 20 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 2025-10-17 23:40:31 -05:00
Winman486 ac3bf51c56 feat(gui): add 'Download Full Album', 'Download All Albums', and 'Single album folder (primary artist)' preference 2025-10-17 15:17:02 -05:00
Rikrdoga 9321ac03da feat: Add 'Download Full Album' from track context menu 2025-10-17 14:05:48 -06:00
Robert Honz c8cb43adf7 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.
2025-10-17 15:40:28 +02:00
Robert Honz 07494eddf3 feat(metadata): ✨ add support for explicit track metadata
* 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.
2025-10-17 15:26:48 +02:00
Robert Honz 3d5b52209e fix(path): 🐛 add **kwargs support to formatting functions
* 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.
2025-10-17 15:05:19 +02:00
Robert Honz 676569e511 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.
2025-10-17 14:41:23 +02:00
Robert Honz a2e637e89c 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`.
2025-10-17 13:46:47 +02: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
Robert Honz 2594232cb9 Queue button should indicate the action that will occur when clicked — currently it shows present state
Fixes #561
2025-10-17 11:55:39 +02:00
Robert Honz 2f77ff59fa fix(Tidal): 🐛 handle all exceptions during token login
* Updated exception handling in the `login` method to catch all exceptions instead of just `HTTPError` and `JSONDecodeError`.
* This change ensures that any unexpected errors during the login process are handled gracefully, improving the robustness of the application.
2025-10-17 11:01:23 +02:00
Robert Honz 6337b75e4b fix(dependencies): 🐛 update tidalapi version to 0.8.8
* Updated `tidalapi` from version `0.8.7` to `0.8.8` in `pyproject.toml`.
* Updated package version in `poetry.lock` to reflect the change.
* Added new file hashes for the updated version.
2025-10-15 23:07:14 +02:00
exislowandGitHub 3c9ba3fc30 Merge pull request #563 from exislow/437-album-with-zero-tracks-causes-hang
fix(download): 🐛 handle empty items list in download process
2025-10-06 13:37:14 +02:00
Robert Honz 768ca6db9c fix(download): 🐛 handle empty items list in download process
* Added a check for empty `items` list to mark progress as complete.
* Ensured GUI updates correctly reflect progress for empty downloads.
2025-10-06 13:36:29 +02:00
Robert Honz de8076594c fix(cfg): 🐛 set metadata_replay_gain to false
* Updated the `metadata_replay_gain` setting in `Settings` class to `False`.
* This change disables replay gain metadata processing by default.
2025-10-06 12:37:12 +02:00
Robert Honz 49fd7a100f fix(gui): 🐛 adjust MainWindow initialization and clean up close event method
* Added a missing line in the `MainWindow` constructor to ensure proper settings initialization.
* Removed unnecessary blank line in the `closeEvent` method for cleaner code.
2025-09-30 22:43:22 +02:00
exislowandGitHub 0d6381ab6e Merge pull request #517 from joshuacant/master
Adds: window size/position saving, dynamic column widths, double-click row action
2025-09-30 22:40:54 +02:00
Robert Honz 099d1ee91d fix(metadata): 🐛 improve metadata retrieval and error handling
* Changed type hint for `paths` from `[Path]` to `list[Path]`.
* Simplified the check for `pyproject.toml` existence.
* Enhanced error handling in metadata retrieval with specific exceptions.
* Updated the `update_available` function signature for clarity.
2025-09-30 22:34:53 +02:00
exislowandGitHub 723417b9bb Merge pull request #537 from iCrazeiOS/master
Fix edge case with repository_url parsing
2025-09-30 22:28:32 +02:00
Maya Doshi 59ee4cd272 change artist delimiter to semicolon 2025-09-29 11:49:39 -04:00
Robert Honz dfc8968b1f fix(path): 🐛 correct filename sanitization logic
* 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.
2025-09-25 20:25:00 +02:00
iCrazeandGitHub 4ecedd2920 Fix edge case with repository_url parsing 2025-09-17 14:47:49 +01:00
Joshua Cantara 060c185920 move window size and position restore into the correct function 2025-09-08 09:59:29 -04:00
Joshua Cantara f54d3dedcf add help strings for new settings 2025-09-08 09:49:21 -04:00
Robert Honz 8f8e8e0a78 fix(download): 🐛 adjust cover image handling to prevent metadata size issues
* Prevent writing `CoverDimensions.PxORIGIN` to metadata to avoid exceeding max file size (>16Mb).
* Ensure correct cover image is used based on `cover_dimension` settings.
2025-09-07 19:37:39 +02: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
Joshua Cantara 3462f5a26a set column widths dynamically based on window width 2025-09-01 15:34:29 -04:00
Joshua Cantara 4c0d78b5ed save and restore main window position and size 2025-09-01 14:49:24 -04:00
Joshua Cantara 64597bc2f6 double click a result row to download it 2025-09-01 13:18:50 -04:00
Robert Honz 8dd75897e3 refactor(constants): streamline enums and enhance type annotations
This commit refactors the codebase to improve readability and maintainability by updating enums and type annotations:

- ✨ **Replaced `StrEnum` attributes**: Removed explicit type declarations for enum values to simplify the code.
- 🛠️ **Introduced `AudioExtensionsValid` enum**: Added a new enum for valid audio file extensions.
- 🔄 **Enhanced type annotations**: Updated `FAVORITES` dictionary to include specific type hints for clarity.
- 🧹 **Updated references**: Replaced outdated `AudioExtensions` usage with the new `AudioExtensionsValid`.

These changes improve code clarity, enforce stricter typing, and enhance extensibility.
2025-08-13 08:17:11 +02:00
Robert Honz f16165558c feat: add metadata_write_url setting for conditional URL metadata writing
Introduces a new configuration option, `metadata_write_url`, to control whether the media file URL is included in metadata. Updates logic to respect this setting.

- ✨ **Feature**: Adds `metadata_write_url` to enable/disable URL writing in metadata.
- 🔧 **Logic Update**: Adjusts URL handling to check the new setting before including it.
- 📝 **Documentation**: Updates help descriptions to explain the new option.

This change improves flexibility in metadata customization.
2025-08-12 19:36:41 +02:00
Robert Honz d481a26ccb feat: add support for original image dimension in album covers
Adds functionality to handle original image dimensions (`origin`) for album cover downloads.

- ✨ Added `PxORIGIN` option to cover dimension constants.
- 🔄 Updated cover image URL logic to support original dimensions.
- 🛠️ Improved cover data handling for more flexible metadata embedding.

This enhances customization and fidelity in cover image management.
2025-08-12 18:22:59 +02:00
Robert Honz ef507b56ed feat(gui): enhance app icons with multi-resolution support
Improves the application's icon handling by introducing multi-resolution
support, replacing a single PNG file with multiple resolution-specific icons.

- ✨ **Added** multiple resolution icons (16x16, 32x32, 48x48, 64x64, 256x256, 512x512).
- 🔄 **Updated** GUI setup to use multi-resolution icons for better scalability.
- 🗑️ **Removed** the old single-resolution `icon.png`.

This update ensures better compatibility and visual quality across
different platforms and screen resolutions.
2025-08-12 16:02:41 +02:00
Robert Honz afdb523cb5 feat: add support for formatting album release dates
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.
2025-08-12 10:52:53 +02:00
Robert Honz a0a6a8d15b refactor(helper): improve ID format handling logic
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.
2025-08-12 10:18:20 +02:00
Robert Honz bf2f5055a0 feat(metadata): add UPC support for metadata tagging
This update introduces support for handling UPCs (Universal Product Codes) in metadata processing. It ensures that UPC information is extracted, stored, and written to the appropriate metadata tags for various formats.

- ✨ **Feature**: Adds UPC field to metadata handling.
- 🛠️ **Enhancement**: Updates metadata initialization to include UPC.
- 🗂️ **Tagging**: Implements UPC writing for supported file formats.
- ✅ **Compatibility**: Ensures proper handling when UPC is absent.

This improvement enhances metadata completeness and compatibility with systems requiring UPC data.
2025-08-12 09:55:34 +02:00
Robert Honz 650e799eb6 refactor(cli): restructure callback and favorites commands
Refactors the CLI structure to improve readability and maintainability:

- ♻️ Replaces `dl_fav_group` with `app_dl_fav` for better naming consistency.
- 🛠️ Restructures the `callback_app` function, removing redundancy.
- 🚀 Adds a URL detection mechanism to streamline `dl <URL>` command simulation.
- ✨ Enhances imports by adding `urlparse`.

These updates aim to simplify the codebase and improve user experience.
2025-07-03 11:09:57 +02:00
Robert Honz 4662d18fdf refactor(decryption): ✨ Improve docstring for decrypt_security_token function
- Enhanced clarity of the function's purpose and usage.
- Added detailed descriptions for arguments and return values.
2025-07-03 09:45:18 +02:00