Forces a write of tags to file even if the file's tags match the database.
This is useful to force plugins that respond to write (e.g., Scrub and Zero) to run on those tags.
This may also make the TODO comment in zero.py less important since creates a way to manually run the zero plugin on a file imported as-is.
This changes the flag from --show_failures to --show-failures, which is more
standard among Unixy CLIs. It also reduces some space and line noise in the
output.
Added a one-line summary of each album (in lib, and import target) so
you can easily tell if (for example) you are about to overwrite your
FLAC copy with a low-bitrate mp3 from somewhere else.
For #899, we need to change MediaFile's behavior (pre-write) based on whether
we're doing ID3v2.3 or not. So we need a field on the object, not a parameter
to `save()`.
Due to the new exception nesting stuff, we were catching and emitting
exceptions where none was necessary: specifically, when the file was non-music
(which is expected, especially when there are images).
There were a number of problems with the changes to the util melange:
- It used print rather than logging, and its string formatting was probably
not Unicode-ready.
- The shell-command-like print lines were not quite compatible, which makes
their general usefulness questionable.
- Used an unsafe/leaky global variable for mkdirall.
- Used deprecated sets.Set.
Seemed better just to add this to the plugin where we need it so it's easier
to see where this goes.
It also seems unnecessary to me to print `mkdir -p` commands. They just
clutter up the output for me when I really just want to see the transcoding
commands.
This option allows the user to specify the format on the command line
instead of editing the configuration.
The commit also includes some refactoring. In particular adding
arguments to functions to avoid dependence on global state.
Doc and Changelog in next commit
Partially resolves#877 showing:
- Directory creation
- Copies
- Deletes
- Moves
- Encodings
Information about tagging and plugins on _after_convert_ is not
currently shown. That requires changing the plugins to support the
pretend option, so a lot of work may be needed and it doesn't seem to be
helpful enough for me.