Commit Graph

4723 Commits

Author SHA1 Message Date
Šarūnas Nejus
3e9ea8ebe8 Refactor template evaluation to handle format strings ONLY
- Handle formats as strings ONLY and evaluate them through a shared
  cached template helper.
- This removes the need for conditional logic that acts on Template
  objects or strings.
2026-07-03 09:56:39 +01:00
Sebastian Mohr
54a2bd20e1 Removed This file is part of beets... headers. 2026-06-29 11:20:15 +02:00
Alok Saboo
60d60eacfb Merge branch 'master' into tidal-coverart 2026-06-27 10:11:11 -04:00
Šarūnas Nejus
609f83e338 tidal: Add missing return types in TidalPlugin 2026-06-27 09:20:38 +01:00
Šarūnas Nejus
3171334f4d Add docs 2026-06-27 09:03:36 +01:00
Šarūnas Nejus
ccccdef8b8 Extract shared Tidal attributes type
- Factor common album and track Tidal fields into a shared
  MediaAttributes TypedDict.
- Use the shared type in parser helpers that only need common Tidal
  metadata.
2026-06-27 09:03:36 +01:00
Sebastian Mohr
4e6e49d9c2 Removed a return. Still a bit complicated but
I don't think there is a way to further optimize.
2026-06-24 14:13:57 -04:00
Alok Saboo
01b12dca3b rename CoverArt types to Artwork to match Tidal API 2026-06-24 14:10:11 -04:00
Alok Saboo
26d90bbcfa make cover_art_by_id required and remove broken fallback URL 2026-06-24 14:10:10 -04:00
Alok Saboo
d26cfdedbc fix cover art types and parsing to match API response 2026-06-24 14:03:58 -04:00
Alok Saboo
28fa210422 tidal: fix mypy docref and dict access
- Fix mypy: avoid {} default in relationships.get() that creates Never type

- Fix doc build: use :doc:\etchart\ instead of :doc:\plugins/fetchart\ from within plugins/ directory
2026-06-24 14:03:58 -04:00
Alok Saboo
23d4edc4d7 tidal: fix mypy errors in cover art parsing
- Make CoverArtAttributes.url NotRequired

- Use direct index access on TypedDict instead of .get() to avoid mypy Never-type inference
2026-06-24 14:03:58 -04:00
Alok Saboo
659ee7df0b add cover art support 2026-06-24 14:03:56 -04:00
Šarūnas Nejus
f0105bef73 Add missing types to beets.util.pipeline 2026-06-24 16:53:34 +01:00
Šarūnas Nejus
8fe9c2e576 Set albumtypes instead of albumtype 2026-06-24 16:44:10 +01:00
Šarūnas Nejus
368d2c0a6d Normalize albumtype 2026-06-24 16:44:10 +01:00
Pierre Ayoub
c941a6b5c9 refactor(convert): Use cached_property for refresh option
- Fix snejus comment from 2026-06-23
2026-06-24 13:01:00 +02:00
Pierre Ayoub
1cc28d21fe refactor(convert): Merge redundant checks 2026-06-24 13:00:59 +02:00
Pierre Ayoub
9afdda5774 style(convert): Simplify logic
This is a suggestion from ruff linting: get rid of the redundant `else`
after the `return`.
2026-06-24 13:00:59 +02:00
Pierre Ayoub
f7e8dcc25e chore(convert): Format 2026-06-24 13:00:59 +02:00
Pierre Ayoub
7d178f7d48 fix(convert): Get default value for refresh from config 2026-06-24 13:00:59 +02:00
Pierre Ayoub
a4d1bbd705 fix(convert): continue -> return
This continue comes from a rebase, when the convert_item were using a
while loop. Now we just have to go out of the function!
2026-06-24 13:00:59 +02:00
Pierre Ayoub
baac0cb503 chore(convert): Poe format 2026-06-24 13:00:58 +02:00
Pierre Ayoub
2d8af30455 style(convert): Consistent usage of original vs. item.path variables
Except for the `keep_new` mechanism, it is not useful to use the `original`
variable which is equal to the `item.path` variable. Since refresh only
makes sense when `keep_new` is false, only use for the pair of `item.path`
and `dest` variables for clarity (and not `original` and `converted`
variables).
2026-06-24 13:00:58 +02:00
Pierre Ayoub
a0f144d49c refactor(convert): Better logic to handle both refresh and keep_new features
- Implement @snejus comment from the 2026-04-19
- This change the silent no-op when both refresh and keep_new are used
to proper logging messages depending on what combination of option is
used
- Also harmonize the usage of terms "target" and "destination" between
  logging messages
2026-06-24 13:00:58 +02:00
Pierre Ayoub
89cbb19662 style(convert): Harmonize logging message when using pretend for refresh feature
- Also hamonize the logging message about moving files from `keep_new`
when using `pretend`
- According to snejus comment from 2025-07-06
2026-06-24 13:00:58 +02:00
Pierre Ayoub
03f56ea889 style(convert.py): fix ruff complain 2026-06-24 13:00:58 +02:00
Pierre Ayoub
a4eaec7445 fix(convert.py): fix missing syntax + format using ruff 2026-06-24 13:00:58 +02:00
Pierre Ayoub
4cac4e5031 refactor(convert): factorize multiple logic tests
Nest and combine some logic tests by:
1. Only check for destination file existence once.
2. Use `original` instead of `item.path` in the `refresh` conditional
   such that this option will be compatible with `keep_new`.
2026-06-24 13:00:57 +02:00
Pierre Ayoub
baefd71981 refactor(convert.py): remove uneeded util.syspath() calls
- `util.syspath` is redundant because already called in `util.normpath`
  itself called in Item class
Co-authored-by: Šarūnas Nejus <snejus@protonmail.com>
2026-06-24 13:00:57 +02:00
Pierre Ayoub
17957337d2 refactor(convert.py): simplify logic and redundant function
- Logic refactoring
- `util.syspath` is redundant because already called in `util.remove`

Co-authored-by: Šarūnas Nejus <snejus@protonmail.com>
2026-06-24 13:00:57 +02:00
Pierre Ayoub
e7e07e290f style(convert.py): no newline
Co-authored-by: Šarūnas Nejus <snejus@protonmail.com>
2026-06-24 13:00:57 +02:00
Pierre Ayoub
3e9fb4ead8 [beetsplug/convert] Run ruff format 2026-06-24 13:00:57 +02:00
Pierre Ayoub
aa1e4c7ba2 [beetsplug/convert] Fix linting error trailing whitespace 2026-06-24 13:00:57 +02:00
Pierre Ayoub
04f90cd9f1 [beetsplug/convert] Fix linting error Ruff (E501) 2026-06-24 13:00:56 +02:00
Pierre Ayoub
072f469028 Implement the convert.refresh configuration option 2026-06-24 13:00:56 +02:00
Pierre Ayoub
93e3bd17ca Implement the --refresh/-r command line option for convert's new feature 2026-06-24 13:00:56 +02:00
Pierre Ayoub
e06161ffd8 Implement the refresh behavior for convert command 2026-06-24 13:00:56 +02:00
Sebastian Cao
755ca6f139 convert: skip missing album art instead of crashing 2026-06-24 16:45:23 +08:00
Blake Hakkila
ecad4811c6 Merge branch 'master' into rest-directory-config 2026-06-20 17:20:18 -07:00
Sebastian Mohr
c71ac00f00 Fix auth URL not printed in environments without a
configured browser
2026-06-20 14:01:44 +02:00
Sebastian Mohr
a9f715a19a Seems like the spotify query format does not accept double quotes (") for
escaping but needs single quotes (').
2026-06-20 13:21:35 +02:00
Blake Hakkila
05ecfc8bc6 Merge branch 'master' into rest-directory-config 2026-06-19 15:18:28 -07:00
Alok Saboo
4e60f86dae Merge branch 'master' into tidal 2026-06-19 09:42:54 -04:00
Sebastian Mohr
379bbebbf1 Reverted attributes change. Not really in scope here and needs a bit more
refactoring to be consistent.
2026-06-19 10:39:14 +02:00
Šarūnas Nejus
cf73922cc6 Undo unrelated changes 2026-06-19 10:36:31 +02:00
Trey Turner
c1de81d59c fix(ftintitle): parenthetical features 2026-06-18 19:47:43 -05:00
Blake Hakkila
6080faf5dc Merge branch 'master' into rest-directory-config 2026-06-17 16:07:18 -07:00
Šarūnas Nejus
e4baceae1f Add missing types to importer 2026-06-17 21:42:42 +01:00
Alok Saboo
81ce9b4481 simplify shared attribute typing 2026-06-17 14:03:53 -04:00