Commit graph

424 commits

Author SHA1 Message Date
Adrian Sampson
f06b1a5f4c give Subcommand constructor a default value for parser 2010-07-05 16:22:14 -07:00
Adrian Sampson
2ca121cb03 preliminary reorganization of CLI code; remove cmdln module dependency 2010-07-05 16:18:23 -07:00
Adrian Sampson
e50a26e8a4 correctly handle directories passed to import
When autotagging, die with an error if given a non-directory. When not
autotagging, just import the single file.
2010-07-04 00:04:28 -07:00
Adrian Sampson
4dcbb38d78 log a warning instead of silently ignoring corrupt files 2010-07-03 23:55:27 -07:00
Adrian Sampson
40a965ea18 detect unreadable files that seem to be of the correct type
In the case that Mutagen throws an exception while trying to read a file, we
throw an UnreadableFileError, which is a new superclass for FileTypeError.
2010-07-03 23:44:28 -07:00
Adrian Sampson
37da0f4d49 note about fixed -A switch; bumped version to 1.0b2 2010-07-03 23:05:12 -07:00
Adrian Sampson
e8d14e461b when importing without autotagging, don't bother identifying albums 2010-07-03 23:02:18 -07:00
Adrian Sampson
9c3db1e0b9 encode all terminal output, silently replacing unsupported characters
On terminals where the LANG environment variable didn't list UTF-8 as the
terminal's character encoding, the Python print statement throws an error when
it encounters a character that can't be encoded. So now we manually use the
"replace" policy for all output to the terminal.
2010-06-27 20:32:00 -07:00
Adrian Sampson
c76ddd7da8 fix error when no logfile is given 2010-06-27 20:04:59 -07:00
Adrian Sampson
76f52f9ea6 add a note about import log option 2010-06-27 01:38:44 -07:00
Adrian Sampson
93077c8410 added basic logging during imports
Just prints "skip" or "asis" followed by the album path for each untaggable
album.
2010-06-27 01:24:15 -07:00
Adrian Sampson
4be6edab7b read-only metadata (length & bitrate) support for ogg and ape 2010-06-26 11:01:48 -07:00
Adrian Sampson
cd9cfbe6fc refactor generated and specific mediafile tests into separate modules
--HG--
rename : test/test_mediafile.py => test/test_mediafile_basic.py
2010-06-26 10:52:39 -07:00
Adrian Sampson
ae3c42af05 note about new formats in NEWS 2010-06-26 02:27:58 -07:00
Adrian Sampson
3e23b412f4 a few more fields for Monkey's Audio support 2010-06-26 02:24:48 -07:00
Adrian Sampson
f7cdf60c53 add a couple more alternate field names while we're at it 2010-06-26 02:14:44 -07:00
Adrian Sampson
f8c8bff694 support some alternate ogg field names 2010-06-26 02:12:55 -07:00
Adrian Sampson
f944952300 preliminary support for ogg voribis
This entailed:
- changing the "flac" storage style option to "etc" to encompass both
  flac and vorbis as the tags are very similar
- permitting multiple StorageStyles per field/format, to allow a
  read-any/store-all approach to multiple field options
2010-06-26 02:07:13 -07:00
Adrian Sampson
08552e2046 remove download link for munkres (author updated pypi entry) 2010-06-10 10:25:25 -07:00
Adrian Sampson
144becf8d5 correct dependencies; add hosted munkres dist 2010-06-10 01:07:48 -07:00
Adrian Sampson
693944944f fixed manifest inclusion of text files 2010-06-09 21:43:45 -07:00
Adrian Sampson
d1b4a867f2 add readme and news files
--HG--
rename : LICENSE.txt => LICENSE
2010-06-09 12:37:26 -07:00
Adrian Sampson
bf0043e02b update setup.py description, metadata, dependencies 2010-06-09 12:25:18 -07:00
Adrian Sampson
e5f7ee67ca avoid locking the database greedily during import
Previously, the db transaction was running concurrently with the file copying
and tag writing. This meant that the transaction went needlessly long and made
other db-writing processes time out. Now the transaction is short and occurs
after all the file operations.
2010-06-08 23:34:44 -07:00
Adrian Sampson
568c44275f tagger now previews track index changes as well as title changes 2010-06-08 17:48:13 -07:00
Adrian Sampson
da69c391ec add "beet stats" command for a few entertaining statistics 2010-06-08 17:08:23 -07:00
Adrian Sampson
d422f7423b importer now walks directories in sorted order 2010-06-08 16:23:46 -07:00
Adrian Sampson
967e875d04 MPD protocol messages are now declared as strings (bytes), not unicode
arguments are still unicode-ized
2010-06-08 14:36:42 -07:00
Adrian Sampson
10b4d31784 escape url-problematic characters like # in gstplayer 2010-06-08 14:30:00 -07:00
Adrian Sampson
84d5ef9807 fix first-two-candidates-gap recommendation case 2010-06-08 13:45:09 -07:00
Adrian Sampson
2027d7f312 remove extraneous spaces from prompts 2010-06-07 23:06:23 -07:00
Adrian Sampson
c38158db39 autotag.tag_album now returns an empty list instead of raising UnknownAlbumError
This way, the client still gets current metadata information (allows duplicate
album checking in more cases).
2010-06-05 11:05:59 -07:00
Adrian Sampson
fc0c0c3e0e remove some of the convoluted control flow in tag_album 2010-06-05 10:47:32 -07:00
Adrian Sampson
a0f80f4c12 helpful message when there's nothing to delete 2010-06-05 00:11:10 -07:00
Adrian Sampson
d23565b040 replace custom _input_yn with _input_options-based version 2010-06-05 00:09:50 -07:00
Adrian Sampson
20dcbb3294 factored out "choose an option" code into _input_options 2010-06-05 00:06:39 -07:00
Adrian Sampson
4db22e3203 move thresholds to autotag module (out of ui) 2010-06-04 23:32:27 -07:00
Adrian Sampson
9c8e726e4f bypass candidate selection if second-best choice is much worse than first choice 2010-06-02 23:57:16 -07:00
Adrian Sampson
ed51369dce track ordering now always uses bipartite matching algorithm, no longer assumes
current metadata to be correct if it's complete

Previously, we were using the Munkres algorithm (minimum bipartite matching) to
order tracks intelligently only as a fallback if the current metadata was
paradoxical or incomplete. This was because of a concern about the performance
of the potentially-O(n^3) Munkres solver. However, it was found that (a) the
performance is actually not bad, taking on the order of 0.02 to perform a
matching, and (b) there was no recourse for the tagger to reorder tracks that
were legitimately in the wrong order. Now, we get intelligent reordering of
badly tagged music even when the metadata seems to be complete.

To retain some of the functionality of the old orderer, the track distance
metric was expanded to include a component reflecting the track index.

In doing this, another bug was discovered in the UI that showed the track name
differences based on an arbitrary ordering. Now, the tag_album function returns
a reordered items list with every candidate.
2010-05-30 23:52:54 -07:00
Adrian Sampson
237ad69bf1 raise auto-accept and auto-select thresholds to 0.05 (from 0.00) and 0.2 (from
0.1)
2010-05-29 14:36:18 -07:00
Adrian Sampson
a3cada9807 void divide-by-zero when comparing two zero-length strings (!!! problem) 2010-05-28 19:17:47 -07:00
Adrian Sampson
0b2f203654 make "1" the default candidate selection 2010-05-28 18:20:45 -07:00
Adrian Sampson
53b8ae60db allow selection of [U]se as-is from "no match found" state 2010-05-28 18:16:54 -07:00
Adrian Sampson
e94e996bfa skip the "candidates" selection if there's only one choice 2010-05-28 17:57:45 -07:00
Adrian Sampson
fc36443ca4 add existing metadata printout before candidates listing 2010-05-28 17:50:25 -07:00
Adrian Sampson
d1a3311fdd deal with MusicBrainz 503 (server busy) errors by retrying a few times 2010-05-28 11:20:59 -07:00
Adrian Sampson
634690a811 change name of command-line tool to "beet"
--HG--
rename : bts => beet
2010-05-28 08:37:38 -07:00
Adrian Sampson
67c4ec9507 change to MIT license
--HG--
rename : COPYING.txt => LICENSE.txt
2010-05-28 00:07:11 -07:00
Adrian Sampson
47fe87e5f0 friendly error message when gstreamer isn't installed 2010-05-27 23:57:07 -07:00
Adrian Sampson
2c218bf360 added -d flag to bpd command controlling debug output 2010-05-27 23:35:23 -07:00