67 Commits
Author SHA1 Message Date
Robert Honz 017aa17155 feat(media): ✨ add support for retrieving album and track artist IDs
* Implemented logic to return `album_artist_id` for `Album` instances.
* Added functionality to retrieve `track_artist_id` for `Track` instances.
2025-11-13 08:52:58 +01:00
Mark Derricutt 5d573c57c9 Add format place holder for album_type
This commit exposes the album type as a configuration placeholder.

Fixes #595

Change-Id: Ife8832534861fc01da5d68c37be6c7476a6a6964
2025-11-05 09:21:00 +13:00
Winman486 3c835c2d19 Merge upstream/master and resolve conflicts
- 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)
2025-10-20 16:12:46 -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
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 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 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
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 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 db5c5eac97 ✨ will only return the first artists. will return all album artists. Fixes #439 2025-06-29 21:42:39 +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 b50e3bd14d 👷 Code style. 2025-03-24 09:01:49 +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 7a4d6ceae7 🛠️ Fixed path length sanitation. Also refactored the path helper to use pathlib.Path instead of str. Fixed #358 2025-02-28 16:57:18 +01:00
flesnukandGitHub 456266ba0b Add isrc to path formatting 2025-02-19 19:07:31 +01:00
Robert Honz b8091e233b ✨ Album track number padding can be set. Fixes #142 2024-12-15 20:37:06 +01:00
Robert Honz ccbb1f246c 🛠️ Fixed track volume number gets omitted on CDn-1. Fixes #151 2024-12-13 10:33:35 +01:00
Robert Honz 56f4522f2b 🛠️ Fixed {album_artist} tag replacement on track level. Fixes #239 2024-11-17 23:06:36 +01:00
Robert Honz 3171b1570b ✨ Do not process tracks with missing segments. Refactored some method to pathlib.Path. 2024-11-13 09:49:33 +01:00
Robert Honz 78a48348a8 ✨ Track segments are downloaded simultaneously, which results in a huge speed increase. Some refactoring work has been done. 2024-11-12 22:15:11 +01:00
Robert Honz 02de0c8108 Fix: {album_artist} is now emitting only the album artist is only replaced on an Album level. Fixes #200 2024-11-10 14:30:02 +01:00
Robert Honz ce02215d7c {track_volume_num_optional} and {track_volume_num_optional_CD} added for an optional sub CD folder structure. Fixes #151 2024-11-10 14:21:10 +01:00
Robert Honz cee7696cfb Fix: Replace {artist_name} only on Track / Video basis. Fixes #171 2024-11-10 13:56:27 +01:00
Robert Honz 43fabacd95 Respect user specified config directory. Fixes #141 2024-11-09 13:51:39 +01:00
Robert Honz 558dfa65cc Respect user specified config directory. Fixes #141 2024-11-09 13:45:43 +01:00
Robert Honz 1e9b24e282 ✨ {album_id} can be used for track naming. Fixes #123 2024-06-16 16:18:22 +02:00
Robert Honz 776542de5c ✨ Can download artists. Fixes #102 2024-05-22 06:33:40 +02:00
Robert Honz 840f23d252 ✨ Exception logging on filename sanitization and download watcher. 2024-04-22 07:58:32 +02:00
Robert Honz 78670a38ba 👷 Hacky workaround marked with TODO. 2024-04-21 19:16:13 +02:00
Robert Honz 67166861e9 ✨ pathvalidate library is currently not able to shorten filenames. Implemented a hacky workaround for now. Fixes #91 2024-04-21 17:35:22 +02:00
Robert Honz 68ad21276b 👷 Migrated media constants to tidalpi. 2024-04-20 16:02:29 +02:00
Robert Honz 81e04f4529 🛠️ Naming placeholder to str conversion fix. 2024-04-20 14:54:03 +02:00
Robert Honz 9cfdbc1d9f ✨ For albums you can now use album_num_volumes as a placeholder and for tracks track_volume_num. Fixes #90 2024-04-20 14:01:17 +02:00
Robert Honz b972ec01b6 ✨ album_id can be used as a placeholder for album namings. album_year can also be used within track namings. Fixes #85 2024-04-20 11:54:46 +02:00
Robert Honz a3ef1b8cba ✨ Explicit versions can be tagged with filename placeholder track_explicit and album_explicit. Fixes #82 2024-04-20 11:38:21 +02:00
Robert Honz a9b0b285d1 👷 Switch to match function for placeholder replacement. 2024-04-05 09:39:47 +02:00
Robert Honz fe5d9880cb 👷 Cleanup of . value usage for Enum access. 2024-04-02 16:26:57 +02:00
Robert Honz 5014f510c9 🛠️ Duplicates check now detects all files correct. 2024-04-02 15:21:57 +02:00
Robert Honz 1dcfd98a75 ✨ Include dafault album image in build. 2024-04-01 19:54:11 +02:00
Robert Honz a53f63fbe9 ♻️ ffmpeg will be checked against the path in config. 2024-03-29 11:17:30 +01:00
Robert Honz 58d97afbc2 ✨ Removed deprecated code. 2024-03-29 11:17:30 +01:00
Robert Honz d331f93c91 ✨ Downloader will check for FFmpeg before converting video files. 2024-03-22 15:50:06 +01:00
Robert Honz 12d3360c12 🧑‍🔧️ GUI buttons correctly prefixed with pb. 2024-03-22 15:02:26 +01:00