Commit Graph
353 Commits
Author SHA1 Message Date
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
Robert Honz 5b110638e0 refactor(cli): 🔧 Update context handling in download functions
* Refactored `_handle_track_or_video` and `_handle_album_playlist_mix_artist` to use `typer.Context` instead of `Settings` directly.
* Improved clarity by centralizing settings retrieval through context.
* Adjusted `_process_url` and `_download` functions to align with the new context-based approach.
2025-07-03 08:57:46 +02:00
Robert Honz a96d44170b refactor(download): 🔧 Improve media validation and preparation logic
* Enhanced `_validate_and_prepare_media` method to support additional media types: `Album`, `Playlist`, `UserPlaylist`, and `Mix`.
* Updated media validation checks to ensure proper handling of unavailable media.
* Refactored `_validate_media_instance` to streamline media instance creation and validation.
* Removed redundant `_validate_and_prepare_media_collection` method for cleaner code.
2025-07-03 08:53:44 +02:00
Robert Honz 3085cd67a1 refactor(download): ✨ Enhance media collection handling and download execution
* Improved validation and preparation of media collections for downloads.
* Refactored download context setup and execution logic for better clarity and maintainability.
* Added progress tracking for download tasks and improved handling of download futures.
2025-07-02 15:11:19 +02:00
Robert Honz 33f5fcbda8 refactor(download): 🔧 Improve media validation and download process
* Reordered parameters in `item` method for clarity.
* Added `_validate_media_instance` method to streamline media validation.
* Enhanced `_prepare_file_paths_and_skip_logic` for better file handling.
* Introduced `_perform_actual_download` to encapsulate download logic.
* Improved error handling and logging throughout the download process.
2025-07-02 14:52:31 +02:00
Robert Honz 37f9250cdf refactor(download): ✨ Refactor media download logic for clarity and efficiency
* Renamed `_download` to `_get_media_urls` for better clarity on its purpose.
* Simplified URL extraction logic for `Track` and `Video` media types.
* Improved progress setup and error handling in the download process.
* Enhanced `_download_segments` and `_download_postprocess` methods for better readability and maintainability.
2025-07-02 10:29:54 +02:00
Robert Honz 35d4ff9229 refactor(download): ✨ Enhance docstrings for RequestsClient and Download classes
* Improved documentation for methods in the `RequestsClient` and `Download` classes.
* Added detailed descriptions, parameters, and return types to enhance code readability and maintainability.
2025-07-02 08:55:56 +02:00
Robert Honz fd16a620f2 refactor(gui): ✨ Enhance type annotations and improve method signatures
* Updated type hints for various methods in  and  classes.
* Changed list types from  to  for better clarity and consistency.
* Improved function signatures to include return types for better type safety.
2025-07-02 08:47:59 +02:00
Robert Honz 99b4347b9a refactor(gui): ✨ Improve filter handling in MainWindow
* Refactored the filter extraction logic to directly use `header.filter_text(i)` for better clarity.
* Updated the filters list to store tuples of index and text, enhancing the data structure used.
* Ensured that the `proxy_model.filters` is set directly, simplifying the code.
2025-07-01 15:58:51 +02:00
Robert Honz 76f6010a12 refactor(gui): ✨ Enhance type annotations and improve method signatures
* Updated type hints for several methods in `MainWindow` class to improve code clarity and type safety.
* Changed return types to `None` where applicable.
* Refined parameter types for better type checking and consistency.
2025-07-01 15:52:30 +02:00
Robert Honz d8a6c26d65 refactor(gui): ✨ Enhance documentation for MainWindow methods
* Added detailed docstrings for methods in the `MainWindow` class.
* Improved clarity on parameters and return types for better understanding.
* Aims to facilitate future development and maintenance.
2025-07-01 14:30:10 +02:00
Robert Honz aa532f62fc refactor(gui): ✨ Improve search_result_to_model method and extract helper functions
* Refactored `search_result_to_model` to use type hints with `list` instead of `[*SearchTypes]`.
* Added detailed docstring for better understanding of parameters and return types.
* Extracted logic into helper methods for better readability and maintainability.
* Improved handling of item availability and explicit content representation.
2025-07-01 13:35:17 +02:00
Robert Honz 6b99c4ba62 fix(cli): 🐛 Correct type for item_id in _handle_album_playlist_mix_artist
* Changed `item_id` type from `int` to `str` for better consistency.
* Updated related list type from `list[int]` to `list[str]`.
* Added type checks for `media_type`, `item_id`, and `file_template` in `_process_url` for improved error handling.
2025-07-01 13:19:28 +02:00
Robert Honz 38a97357dd refactor(cli): ✨ Improve function documentation and remove unused imports
* Enhanced docstrings for clarity and consistency across functions.
* Removed unused imports to clean up the codebase.
* Improved the structure of the `_download` function for better readability.
2025-07-01 11:42:07 +02:00
Robert Honz a91a368994 feat: ✨ Enhance media formatting functions
* 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`.
2025-07-01 11:05:33 +02:00
Robert Honz f546b43101 ✨ Add docstrings for path-related functions and improve path sanitization logic. 2025-07-01 09:56:17 +02:00
Robert Honz 181daf53a4 🛠️ Windows drives won't get sanitized anymore. Fixes #474 2025-07-01 07:34:07 +02:00
Robert Honz 70e29771b9 🛠️ Directory length limit is checked and adapted correctly now. Fixes #447 & #436 2025-06-30 16:33:32 +02:00
Robert Honz 70e8b5fb13 ✨ Either date added or date released will be shown, depending if a list is selected or a search was performed. Fixes #424 2025-06-30 10:44:51 +02:00
Robert Honz 98f5230ccd 🛠️ Favorites won't getting duplicated after user hits the list reload button. Fixes #409 2025-06-30 08:39:33 +02:00
Robert Honz bbc65c8577 🛠️ Cover won't be removed, if clicked on the same item multiple times. 2025-06-29 21:53:50 +02:00
Robert Honz 5bdd48e471 ✨ Spinner will be shown, if search results are expanded. 2025-06-29 21:50:12 +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 e8ca69fefa 🛠️ GUI dos not hang if searched media is not available anymore. 2025-06-29 21:29:06 +02:00
Robert Honz a676e16367 🛠️ App does not crash anymore on not available content. Fixes #422 2025-06-29 21:23:27 +02:00
Robert Honz 039546ffe8 👷 Lists and cover will be loaded in background. Gui won't hang anymore. Fixes #423 2025-06-29 20:33:22 +02:00
Robert Honz f0412c6f96 👷 Re-arranged imports. 2025-06-29 14:24:15 +02:00
exislowandGitHub 625775106e Merge pull request #428 from JuanJesusAlejoSillero/master
Fix UnboundLocalError in GUI on_populate_tree_lists method leading to unresponsive left panel
2025-06-29 13:15:59 +02:00
Robert Honz 85ecdf866e 🛠️ Fixed wrong repo url after pyproject.toml update. Credits to @orbittwz in README. 2025-06-29 12:36:08 +02:00
Robert Honz 6f2e73baaa ✨ Empty metadata tags will be removed before written to file. Url tag for mp4 corrected. 2025-06-06 08:29:26 +02:00
Juan Jesús Alejo SilleroandGitHub cee11e6ebd Fix: Prevent UnboundLocalError in on_populate_tree_lists
- Added a safeguard to skip items in `user_lists` that do not match expected types (`UserPlaylist`, `Playlist`, or `Mix`).
- Ensured `twi_child` is only accessed when properly initialized.
- This prevents crashes during GUI interaction when unexpected data is encountered.
2025-04-26 01:15:45 +02:00
Robert Honz 819655d8b7 ✨ Implemented playlist track position naming ({list_pos}) for downloads. Fixes #165 2025-04-02 07:00:28 +02:00
Robert Honz 6ac116beed 🛠️ Fixed and simplified path_file_sanitize method. 2025-03-27 19:01:51 +01:00
Robert Honz 309ded73e4 🛠️ Fix: Only re-create media item if it is a track. Fixes #386 2025-03-25 21:22:35 +01:00
Robert Honz b50e3bd14d 👷 Code style. 2025-03-24 09:01:49 +01:00
Robert Honz efc2549ab5 👷 Check if albums and videos are available or not due to regional restrictions. Fixes #277 2025-03-24 08:57:47 +01:00
Robert Honz b3ed18acaf 🛠️ Fixed: Skip file is not ignored anymore. Filenames will not be uniquified by default. 2025-03-24 08:22:12 +01:00
Robert Honz f936a8794b 🛠️ Fixed: Wrong path build after file sanitization on Windows. Fixes #389 & #358 2025-03-24 07:34:13 +01:00
Robert Honz b25b58a03b 👷 Refactored path file split method. 2025-03-24 07:12:16 +01:00
Robert Honz 7dd94ff4a9 👷 Pass download quality settings, when using CLI. 2025-03-23 21:38:44 +01:00
Robert Honz 9a0a60d9ad Fixed: Relative import error. 2025-03-23 21:28:58 +01:00
Robert Honz cbef9fbb89 🛠️ Fixed relative import error. Fixes #387 2025-03-23 21:07:58 +01:00
Robert Honz 9b428dfa16 🛠️ Clipboard is not thread safe. Executing in a synchronous way. Fixes #382 2025-03-23 10:46:16 +01:00
Robert Honz 0684994850 ✨ Downloads can be now paused / resumed. Fixes #149 & 324
👷 Shutdown is handled more gracefully.
2025-03-03 09:31:37 +01:00