Commit Graph
664 Commits
Author SHA1 Message Date
exislowandGitHub 1b534dc37a Merge pull request #505 from exislow/playlist-create-file-type-fix
refactor(constants): streamline enums and enhance type annotations
2025-08-13 08:17:55 +02: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
exislowandGitHub 0d8bc88f96 Merge pull request #502 from exislow/484-url-metadata-still-corrupting-downloaded-files-0262-gui-x64
feat: add metadata_write_url setting for conditional URL metadata wri…
2025-08-12 19:37:25 +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 d6b1cae1ff 🌟 Version bumped to v0.26.4 2025-08-12 18:30:55 +02:00
exislowandGitHub 93f64eab02 Merge pull request #500 from exislow/425-download-original-cover
feat: add support for original image dimension in album covers
2025-08-12 18:23:28 +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 8b8cc9c2fe 🌟 Version bumped to v0.26.3 2025-08-12 18:03:57 +02:00
exislowandGitHub 9c7656f1d8 Merge pull request #499 from exislow/487-icon-is-misaligned
feat(gui): enhance app icons with multi-resolution support
2025-08-12 16:03:21 +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
exislowandGitHub e8db68992f Merge pull request #498 from exislow/490-add-album_date-placeholder-for-full-iso-release-date-yyyy-mm-dd
feat: add support for formatting album release dates
2025-08-12 10:55:48 +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
exislowandGitHub 23fda8ed33 Merge pull request #497 from exislow/add-video-id
refactor(helper): improve ID format handling logic
2025-08-12 10:18:48 +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
exislowandGitHub c825cc2587 Merge pull request #496 from exislow/469-add-upc-when-available
feat(metadata): add UPC support for metadata tagging
2025-08-12 09:57:02 +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
exislowandGitHub 6596bca703 Merge pull request #493 from exislow/dependency-update
Update dependencies in pyproject.toml
2025-08-11 13:09:32 +02:00
Robert Honz 5375850f98 Update dependencies in pyproject.toml
- Bump rich from 14.0.0 to 14.1.0
- Update tidalapi from 0.8.3 to 0.8.5
- Upgrade dev dependencies:
  - deptry from 0.23.0 to 0.23.1
  - mypy from 1.16.1 to 1.17.1
  - pre-commit from 4.2.0 to 4.3.0
  - tox from 4.27.0 to 4.28.4
  - bandit from 1.8.5 to 1.8.6
  - pylint from 3.3.7 to 3.3.8
  - pillow from 11.2.1 to 11.3.0
2025-08-11 13:06:16 +02:00
exislowandGitHub 460312dbd7 Merge pull request #480 from Jasperhino/patch-1
Update README.md to work with zsh
2025-07-08 10:16:42 +02:00
Robert Honz d6bb9d51d2 chore(workflow): 🚀 Update build matrix for GUI packaging across multiple OS
* Added support for building GUI on macOS ARM64, Ubuntu, and Windows platforms.
* Restored previously commented-out build commands for better cross-platform compatibility.
2025-07-08 09:58:30 +02:00
Robert Honz 7d60950613 fix(makefile): 🐛 Remove gui-macos-dmg-intel target and related commands
* Eliminated the `gui-macos-dmg-intel` target from the Makefile.
* This target was a workaround for Intel Macs and is no longer necessary.
* Streamlined the `gui-macos-dmg` process for better clarity and maintenance.
2025-07-08 09:57:33 +02:00
Robert Honz b3c53ab396 fix(makefile): 🐛 Update gui-macos-dmg command to use sudo for create-dmg
* Changed the command to run `create-dmg` with `sudo` to ensure proper permissions on macOS.
* Added a sleep delay of 60 seconds to allow for any necessary processing time.
2025-07-08 09:38:06 +02:00
Jasper BlumandGitHub bc6d2b9a76 Update README.md to work with zsh
The brackets are interpreted by zsh making the command fail with a not useful error message. By putting it in quotes this does not happen.
2025-07-04 17:50:29 +02:00
Robert Honz f0bbbc0108 fix(gui): 🐛 Correct make gui-macos-dmg command and add delay
* Updated the command to `make gui-macos-dmg` for proper packaging.
* Introduced a 60-second delay before creating the DMG to ensure all processes are completed.
2025-07-04 00:02:41 +02:00
Robert Honz ae17fab057 chore(workflow): 🚀 Update GUI packaging process for macOS
* Added a sleep command before creating the `.dmg` file to ensure proper execution.
* Modified the `hdiutil create` command to include `-debug` for troubleshooting.
2025-07-03 23:45:21 +02:00
Robert Honz 0e7dda5622 Bump pyside6 version from 6.8.1 to 6.9.0 in pyproject.toml 2025-07-03 15:41:55 +02:00
Robert Honz 6f499057aa chore(workflow): 🚀 Add release and test build GitHub Actions workflow
- Introduced a new workflow for managing releases and test builds.
- Configured jobs for publishing, deploying documentation, and building GUI assets for multiple platforms.
- Set up environment variables and matrix strategy for cross-platform builds.
2025-07-03 11:32:28 +02:00
Robert Honz fa1ea1fc87 refactor(tox): 🔧 Remove Python 3.13 from testing matrix
* Updated the Python version matrix in the tox job to only include 3.12.
* This change simplifies the testing process and focuses on the currently supported version.
2025-07-03 11:24:50 +02:00
exislowandGitHub de64d3e94b Merge pull request #479 from exislow/457-cli-ux-enhancement-assume-dl-command-when-a-link-is-specified-as-the-first-argument 2025-07-03 11:20:11 +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
exislowandGitHub 7da0d4c41e Merge pull request #478 from exislow/ai-refactoring 2025-07-03 09:57:26 +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 bfc0c92d69 fix: downgrade pyside6 version from 6.8.3 to 6.8.1 for compatibility 2025-07-03 08:52:04 +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 6d7f4f1625 refactor(guidelines): ✨ Improve clarity in coding standards
* Enhanced wording for better understanding of blank line usage.
* Clarified instructions on updating docstrings during refactoring.
* Specified the use of line comments for complex logic explanations.
2025-07-02 09:56:57 +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 6d62a3b5c0 refactor(guidelines): ✨ Update coding standards for type annotations
* Added a guideline to use modern built-in generics from the `typing` module.
* This change aligns with PEP 484 and promotes better coding practices.
2025-07-02 08:49:32 +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 395771a939 refactor(guidelines): ✨ Update coding standards for type annotations and add PEP references
* Clarified type annotations usage for function parameters, return types, and variables.
* Added guidelines for using blank lines, coroutines, and string interpolation as per PEP standards.
2025-07-01 14:36:37 +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 4dde8c819a chore: 🔧 Update coding standards and documentation guidelines
* Refined coding guidelines for clarity and structure.
* Added sections for type annotations and docstring requirements.
* Ensured consistency in documentation practices across the project.
2025-07-01 11:33:04 +02:00