mirror of
https://github.com/beetbox/beets.git
synced 2026-01-03 22:42:44 +01:00
So. Apparently, os.listdir() will *try* to give you Unicode when you give it Unicode, but will occasionally give you bytestrings when it can't decode a filename. Also, I've now had two separate reports from users whose filesystems report a UTF-8 filesystem encoding but whose files contain latin1 characters. The choices were to (a) switch over to bytestrings entirely for filenames or (b) just deal with the badly-encoded filenames. Option (a) is very unattractive because it requires me to store bytestrings in sqlite (which is not only complicated but would require more code to deal with legacy databases) and complicates the construction of pathnames from (Unicode) metadata. Therefore, I've implemented a static fallback to latin1 if the default pathname decode fails. Furthermore, if that also fails, the _sorted_walk function just ignores the badly-encoded file (and logs an error).
106 lines
5.9 KiB
Text
106 lines
5.9 KiB
Text
1.0b4
|
|
-----
|
|
* Parallel tagger. The autotagger has been reimplemented to use
|
|
multiple threads. This means that it can concurrently read files
|
|
from disk, talk to the user, communicate with MusicBrainz, and
|
|
write data back to disk. Not only does this make the tagger much
|
|
faster because independent work may be performed in parallel, but it
|
|
makes the tagging process much more pleasant for large imports. The
|
|
user can let albums queue up in the background while making a
|
|
decision rather than waiting for beets between each question it asks.
|
|
The parallel tagger is on by default but a sequential (single-
|
|
threaded) version is still available by setting the "threaded"
|
|
config value to "no" (because the parallel version is still quite
|
|
experimental).
|
|
* Colorized tagger output. The autotagger interface now makes it a
|
|
little easier to see what's going on at a glance by highlighting
|
|
changes with terminal colors. This feature is on by default, but you
|
|
can turn it off by setting "color" to "no" in your .beetsconfig (if,
|
|
for example, your terminal doesn't understand colors and garbles the
|
|
output).
|
|
* Pause and resume imports. The "import" command now keeps track of its
|
|
progress, so if you're interrupted (beets crashes, you abort the
|
|
process, an alien devours your motherboard...), beets will try to
|
|
resume from the point where you left off. The next time you run
|
|
"import" on the same directory, it will ask if you want to resume. It
|
|
accomplishes this by "fast-forwarding" through the albums in the
|
|
directory until it encounters the last one it saw. (This means it
|
|
might fail if that album can't be found.) Also, you can now abort the
|
|
tagging process by entering "B" (for aBort) at any of the prompts.
|
|
* Fixed a bug where the CLI would fail completely if the LANG
|
|
environment variable was not set.
|
|
* Fixed removal of albums (beet remove -a): previously, the album
|
|
record would stay around although the items were deleted.
|
|
* The setup script now makes a beet.exe startup stub on Windows;
|
|
Windows users can now just type "beet" at the prompt to run beets.
|
|
* Fixed an occasional bug where Mutagen would complain that a tag was
|
|
already present.
|
|
* Fixed some errors with filenames that have badly encoded special
|
|
characters.
|
|
|
|
1.0b3
|
|
-----
|
|
* Album art. The tagger now, by default, downloads album art from
|
|
Amazon that is referenced in the MusicBrainz database. It places the
|
|
album art alongside the audio files in a file called (for example)
|
|
"cover.jpg". The "import_art" config option controls this behavior,
|
|
as do the -r and -R options to the import command. You can set the
|
|
name (minus extension) of the album art file with the
|
|
"art_filename" config option.
|
|
* Plugin architecture. Add-on modules can now add new commands to the
|
|
beets command-line interface. The "bpd" and "dadd" commands were
|
|
removed from the beets core and turned into plugins; BPD is loaded
|
|
by default. To load the non-default plugins, use the "plugins" config
|
|
value (a space-separated list of plugin names). You can also set the
|
|
"pluginpath" config option to a colon-separated list of directories
|
|
to search for plugins. Plugins are just Python modules under the
|
|
"beetsplug" namespace package containing subclasses of
|
|
beets.plugins.BeetsPlugin. See the "beetsplug" directory for examples.
|
|
* Support for MusicBrainz ID tags. The autotagger now keeps track of the
|
|
MusicBrainz track, album, and artist IDs it matched for each file. It
|
|
also looks for album IDs in new files it's importing and uses those to
|
|
look up data in MusicBrainz. Furthermore, track IDs are used as a
|
|
component of the tagger's distance metric now. Tangentially, change
|
|
required the database code to support a lightweight form of migrations
|
|
so that new columns could be added to old databases--this is a
|
|
delicate feature, so it would be very wise to make a backup of your
|
|
database before upgrading to this version.
|
|
* As a consequence of adding album art, the database was significantly
|
|
refactored to keep track of some information at an album (rather than
|
|
item) granularity. Databases created with earlier versions of beets
|
|
should work fine, but they won't have any "albums" in them--they'll
|
|
just be a bag of items. This means that commands like "beet ls -a"
|
|
and "beet rm -a" won't match anything. To "upgrade" your database,
|
|
you can use the included "albumify" plugin. Running "beets albumify"
|
|
with the plugin activated will group all your items into albums,
|
|
making beets behave more or less as it did before.
|
|
* Fixed some bugs with encoding paths on Windows. Also, : is now
|
|
replaced with - in path names (instead of _) for readability.
|
|
* MediaFiles now have a "format" attribute, so you can use $format in
|
|
your library path format strings like "$artist - $album ($format)"
|
|
to get directories with names like "Paul Simon - Graceland (FLAC)".
|
|
|
|
1.0b2
|
|
-----
|
|
* Support for Ogg Vorbis and Monkey's Audio files and their tags.
|
|
(This support should be considered preliminary: I haven't tested it
|
|
heavily because I don't use either of these formats regularly.)
|
|
* An option to the "beet import" command for logging albums that
|
|
are untaggable (i.e., are skipped or taken "as-is"). Use
|
|
"beet import -l LOGFILE PATHS". The log format is very simple: it's
|
|
just a status (either "skip" or "asis") followed by the path to the
|
|
album in question. The idea is that you can tag a large collection
|
|
and automatically keep track of the albums that weren't found in
|
|
MusicBrainz so you can come back and look at them later.
|
|
* Fixed UnicodeEncodeError on terminals that don't (or don't claim to)
|
|
support UTF-8.
|
|
* Importing without autotagging ("beet import -A") is now faster and
|
|
doesn't print out a bunch of whitespace. It also lets you specify
|
|
single files on the command line (rather than just directories).
|
|
* Fixed importer crash when attempting to read a corrupt file.
|
|
* Reorganized code for CLI in preparation for adding pluggable
|
|
subcommands. Also removed dependency on the aging "cmdln" module.
|
|
|
|
1.0b1
|
|
-----
|
|
First public release.
|