Use new format in determining destination.

When figuring out what the filepath should be for the converted file,
we temporarily change the item format to represent the format of the
converted file.  After determining what the path is, we restore the
format attribute so the rest of the codepath logic checks out.
This commit is contained in:
Ognyan Moore 2025-10-17 22:19:44 +03:00
parent 88ca0ce1fb
commit aa9574b1e5
No known key found for this signature in database
2 changed files with 7 additions and 1 deletions

View file

@ -355,8 +355,12 @@ class ConvertPlugin(BeetsPlugin):
item, original, converted = None, None, None
while True:
item = yield (item, original, converted)
# item format should represent the converted format, not the original
original_format, new_format = item.format, fmt.upper()
item.format = new_format
dest = item.destination(basedir=dest_dir, path_formats=path_formats)
# need to restore this attribute for checks further along
item.format = original_format
# Ensure that desired item is readable before processing it. Needed
# to avoid any side-effect of the conversion (linking, keep_new,
# refresh) if we already know that it will fail.

View file

@ -80,6 +80,8 @@ Bug fixes:
- |BeetsPlugin|: load the last plugin class defined in the plugin namespace.
:bug:`6093`
- Fixed convert plugin not taking into account the new format when determining
the target path. :bug:`1360`
For packagers: