Three parts:
(1) The monkey patching of EncodedTextSpec to ignore encoding errors
when using latin1 as encoding.
This gets replaced with a new id3text function which makes sure
that any value passed to mutagen can be encoded with the selected
encoding
(2) MultiSpec monkey patch to not null terminate a list of strings.
While this is valid according to the spec mutagen decided to terminate
all strings (not only the text lists handled here). If this is a
problem it should be discussed upstream (mutagen).
(3) compatid3 which implemented id3v2.3 support and added some
additional frames.
This gets replaced with the id3v2.3 support implemented upstream.
The additional frames still get passed to mutagen and, to match
the previous implementation, update_to_v23() gets wrapped to
allow some v2.4 only frames.
The newly added id3v2.3 code depends on mutagen 1.22+
The unit tests only consider the string and whether any path component starts with a ".". On Windows the dotfiles are not used for hidden files so the tests fail. To have proper tests on Windows would require to have an actual folder structure with hidden files and folders.
* Distingiush between WM/OriginalReleaseTime and WM/OriginalReleaseYear
* Save encodersettings to WM/EncodingSettings
* Save website to WM/AuthorURL
* Support WM/PartOfSet possibly containing totaldiscs
This will allow explicit loading of hidden files, but still will ignore hidden files and folders on deeper levels if the "show_hidden_files" option is disabled.
This fixes PICARD-589 and improves PICARD-528.
- it does what mimetypes.get_from_data()
- .tiff is unused (afaik), so don't bother with it
- it is safer to analyze data for mime type (as data may not match provided mime type)
- when images are loaded from audio file tags, a check is done on valid format
- Info dialog Artwork tab now displays types and comment for cover art images
- a tooltip gives info about the source (url, caa url, local file, tag, ...)
======================================================================
ERROR: test_display_tag_name (test.test_utils.TagsTest)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/travis/build/musicbrainz/picard/test/test_utils.py", line 89, in test_display_tag_name
self.assertEqual(dtn('tag'), 'tag')
File "/home/travis/build/musicbrainz/picard/picard/util/tags.py", line 106, in display_tag_name
return _(name)
NameError: global name '_' is not defined