Commit Graph
754 Commits
Author SHA1 Message Date
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
Robert Honz 29ffd5df4b chore: 🔧 Update link format in README
- Changed the link to `cookiecutter-poetry` for consistency.
2025-07-01 11:09:27 +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 1f7d8a15e2 chore: 🔧 Update docstring guidelines for typing usage
- Added clarification to the docstring guidelines to include the use of `typing` in docstrings.
2025-07-01 11:04:58 +02:00
Robert Honz de47935f04 chore: 🔧 Update coding standards for Python
- Added a guideline to use the newest coding style supported by the used Python version.
2025-07-01 10:46:41 +02:00
Robert Honz ca927984d3 chore: 🔧 Update docstring guidelines in coding standards
* Changed "Write docstrings for all public modules, classes, functions, and methods" to "Always write doc strings for all modules, classes, functions, and methods."
* Added missing punctuation for consistency in error handling guidelines.
2025-07-01 10:34:20 +02:00
Robert Honz 6395a00ed6 chore: 🔧 Update Python version constraints in configuration files
* Adjusted `requires-python` in `pyproject.toml` to `>=3.12,<3.13`
* Modified `envlist` in `tox.ini` to remove Python 3.13
* Updated `python-versions` in `poetry.lock` to reflect the new constraints
* coloredlogs does not support py3.13, yet, see https://github.com/xolox/python-coloredlogs/issues/119
2025-07-01 10:17:56 +02:00
Robert Honz eda5ab92c0 feat: ✨ Add project coding standards for Python
* Introduced guidelines for naming conventions and error handling.
* Specified the use of `snake_case` for variables, `CamelCase` for classes, and PEP 8 compliance.
* Emphasized the importance of type hints and docstrings in code documentation.
2025-07-01 10:08:46 +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 29ea5c5182 🌟 Version bumped to v0.26.2 2025-07-01 09:11:09 +02:00
Robert Honz 5a1e3d58a1 ✨ Downgrading pyside6 to 6.8.3, since 6.9.1 is not available on all platforms, yet. 2025-07-01 08:25:56 +02:00