Commit graph

1776 commits

Author SHA1 Message Date
Adrian Sampson
71a5a5b02f only load plugins from specified modules
Eliminate the __subclasses__ trick for finding all plugins. Now we explicitly
look in each plugin module for a plugin class. This allows us to import plugin
modules with unintentionally loading them. This lets us reuse the image
embedding machinery without copypasta.
2012-10-12 21:55:54 -07:00
Jakob Schnitzer
e316d0ea30 convert: PEP8, changelog note and license 2012-10-11 17:10:28 +02:00
Adrian Sampson
cb93900888 changelog & docs for "beet stats --exact" 2012-10-07 15:13:49 -07:00
Adrian Sampson
114cea0da6 changelog: ihate plugin 2012-10-06 18:42:38 -07:00
Adrian Sampson
56958d175b docs + changelog for GH-50 (lastgenre command) 2012-10-04 09:47:59 -07:00
Adrian Sampson
5f7d280987 changelog note about @KraYmer's lastgenre feature 2012-09-30 14:06:21 -07:00
Adrian Sampson
4aac7f5324 zero: changelog note & doc improvements 2012-09-25 14:15:33 -07:00
Adrian Sampson
e092af2b2f changelog note: fuzzy_search plugin 2012-09-18 10:33:58 -07:00
Adrian Sampson
201571bf93 changelog note &c. for "the" plugin (GH-47) 2012-09-17 11:11:22 -07:00
Adrian Sampson
c056467c5d friendly error message in Item.write (GC-437) 2012-09-17 10:36:48 -07:00
Adrian Sampson
ef248576f0 bpd: fix crash w/ unicode extensions (GC-439) 2012-09-17 10:24:34 -07:00
Adrian Sampson
a9fc483a36 importfeed: fix "link" mode w/ unicode paths 2012-09-11 17:32:43 -07:00
Adrian Sampson
dc054907d5 fix non-string value matching in SubstringQuery 2012-09-09 12:17:13 -07:00
Adrian Sampson
90b3dba085 fix match() on RegexpQuery for non-string values 2012-09-08 16:24:39 -07:00
Adrian Sampson
931a6b636b fix for plugins not modifying files' tags 2012-09-02 16:00:18 -07:00
Adrian Sampson
08d8e6c55b changelog about web "attachment" change (GH-46) 2012-08-27 12:01:42 -07:00
Adrian Sampson
473fe04f91 web: add size to item JSON in API
This is to be used by the Tomahawk resolver, which wants file sizes.
2012-08-24 19:20:27 -07:00
Adrian Sampson
6200f0a4c8 scrub: remove all types of tags 2012-08-24 15:39:13 -07:00
Adrian Sampson
420c78ff1b lyrics: fix UnicodeDecodeError with non-ASCII text 2012-08-19 13:42:43 -07:00
Adrian Sampson
07d00da825 album-only field queries; ^$ match empty string 2012-08-17 10:54:30 -07:00
Adrian Sampson
30ac59f3d2 allow $path in "beet list -f" templates 2012-08-16 09:00:55 -07:00
Adrian Sampson
22836be22e fix search/DB server disagreement crash (GC-418) 2012-08-12 22:37:10 -07:00
Adrian Sampson
96de3ee400 add track mapping to album_distance plugin method 2012-08-03 18:12:58 -07:00
Adrian Sampson
701d8cf204 fetchart: fix extension-less files from CAA 2012-08-02 09:46:57 -07:00
Adrian Sampson
15ead780d3 1.0b15 release date 2012-07-26 09:35:12 -07:00
Adrian Sampson
1f5ae6600b warning when using unrecognized fields in queries 2012-07-25 15:41:22 -07:00
Adrian Sampson
24491051d1 clean up changelog for b15 release 2012-07-24 14:40:01 -07:00
Adrian Sampson
b20367dd41 import: allow relative paths on Windows 2012-07-17 12:00:27 -07:00
Adrian Sampson
44459f88d0 Windows: represent paths as UTF-8 internally
When we store paths in the database, we always use bytestrings for consistency.
But on Windows, these paths are converted back to Unicode before they reach the
FS API. This means that the codec used internally is immaterial.

However, we were naively using sys.getfilesystemencoding() for this internal
representation. On Windows, this is MBCS, a broken encoding that can't represent
all of Unicode. This change replaces that with UTF-8, a "real" codec.

The decoding bit now tries UTF-8 and falls back to MBCS for compatibility with
existing databases. The reality, however, is that existing databases may not
work with this change -- a byte string may represent something different in
UTF-8 from what it represents in MBCS. So users should recreated their DBs if
anything goes wrong.
2012-07-17 10:54:47 -07:00
Adrian Sampson
ba80e1578a revise changelog/docs mention of cover art source 2012-07-09 14:16:40 -07:00
Adrian Sampson
52aec35bf8 changelog note about unicode replacement fix 2012-07-09 10:00:20 -07:00
Adrian Sampson
883977d2e9 merge 2012-07-03 17:12:34 -07:00
Adrian Sampson
45b146ed2b changelog typos 2012-07-03 09:31:20 -07:00
Adrian Sampson
525376b4b9 docs for unmatched-tracks matches 2012-07-01 16:56:21 -07:00
Adrian Sampson
6503e85a57 fetchart: autofetch option
This necessitated a slight refactoring in the plugin event handling mechanism.
Rather than loading all handlers up front and storing them in a module-scope
structure, we now scan for event handlers at every send(). This is probably
very slightly less efficient but allows for more flexible logic.
2012-06-24 19:01:19 -07:00
Adrian Sampson
fbb5823541 fetchart: command to manually download art 2012-06-24 18:27:00 -07:00
Adrian Sampson
77cbb19564 fetchart: get local art for as-is imports (GC-339) 2012-06-24 17:41:37 -07:00
Adrian Sampson
d807b3fbf1 Cover Art Archive support (GC-71) 2012-06-24 16:57:04 -07:00
Adrian Sampson
11d4fb1abb move album art fetching to a plugin (fetchart) 2012-06-24 00:34:50 -07:00
Adrian Sampson
f5962f45d8 merge 2012-06-23 17:20:02 -07:00
Adrian Sampson
073ee14e56 fix broken matching of path format queries (#405)
A bug in the shlex module with Unicode strings made these queries unparseable
and thus match every track.
2012-06-23 17:18:28 -07:00
Adrian Sampson
7e6e5e5dca nicer error message when stdin is EOF'd 2012-06-21 17:37:45 -07:00
Adrian Sampson
ad4b7f8ff5 new plugin event: import_task_files 2012-06-14 12:41:39 -07:00
Adrian Sampson
c5424dce05 lastgenre and lyrics: use new pluggable import stages
This solves a problem where files were copied before the genre field was
updated, resulting in problems when $genre was used in a path (GC-357).
2012-06-08 15:17:49 -07:00
Adrian Sampson
48ffa08928 plugin import stages 2012-06-08 14:49:04 -07:00
Adrian Sampson
0259e7a728 changelog note about new locking (GC-399) 2012-06-08 11:44:59 -07:00
Adrian Sampson
d83c1fad6b chroma: use multiple recording candidates 2012-06-06 12:35:25 -07:00
Adrian Sampson
01fe59955e changelog note for BPD crash (GH-40) 2012-06-03 23:03:28 -07:00
Adrian Sampson
bfa3c5c806 length differences now shown as "X vs. Y"
Previously, they would be shown as "X -> Y", which made multiple users think
that beets was doing something to change the length of the track.
2012-05-30 16:44:20 -07:00
Adrian Sampson
e00f15175a prune is a no-op when file exists
i.e., when moving a file that's already at its destination.
2012-05-30 16:39:47 -07:00
Adrian Sampson
66e75c398d embedart: log & skip unreadable audio files 2012-05-21 10:47:17 -07:00
Adrian Sampson
b3e0724676 send prompts to stdout (GC-389) 2012-05-20 11:42:53 -07:00
Adrian Sampson
c0da62c2b7 multi-artist sort names 2012-05-19 16:35:52 -07:00
Adrian Sampson
711a1c1113 apply artist credits & add to database (GC-286) 2012-05-19 16:13:15 -07:00
Adrian Sampson
b04096de25 do not preserve metadata during copy-move (GC-383)
The shutil.move() function attempts to copy metadata (e.g., permissions and
mtime) when copying a file across filesystems. This always fails on Samba shares
because the utime() call is never permitted by normal users. We don't care about
preserving mtimes across moves, though, so this commit eschews shutil and
reimplements the move algorithm.
2012-05-19 11:52:53 -07:00
Adrian Sampson
395ba21013 preserve tracebacks in verbose mode (#387) 2012-05-18 15:42:20 -07:00
Adrian Sampson
13995201a1 human-readable filesystem errors (#387) 2012-05-18 15:16:38 -07:00
Adrian Sampson
90884389c5 prevent MusicBrainz exceptions from halting import
Previously, exceptions while communicating with the MusicBrainz API would bring
down the entire autotagging process. These errors are depressingly common, so we
now handle them and log errors to the console (much as we already do with any
exception raised by the Mutagen module). Fault isolation!

This has the added side-effect of giving better context for MB errors when they
do happen -- the logged errors now show the query that was running when MB
failed.
2012-05-18 12:04:44 -07:00
Adrian Sampson
face0ba323 chroma submission: fix crash; better errors 2012-05-17 14:54:58 -07:00
Adrian Sampson
2b000c47a2 per_disc_numbering config option (GC-335) 2012-05-17 12:44:48 -07:00
Adrian Sampson
0e9f296cf0 correct ID3 tag name for catalognum (GC-385) 2012-05-17 11:46:01 -07:00
Adrian Sampson
a6c1ad2235 reimporting with copying: copy external files 2012-05-17 11:42:58 -07:00
Adrian Sampson
1015eb134d changelog note about mpdupdate fix (GH-39) 2012-05-17 10:09:17 -07:00
Adrian Sampson
c1d28252be use section headings for config options
Previously, we were using a definition list. This way things are easier to link
to. It will also likely scale better as we add more config options.
2012-05-16 17:37:38 -07:00
Adrian Sampson
9979c5a826 separate config options for item and album formats
Extends GC-362 (GH-38) to use two different config options: one for albums and
one for items.
2012-05-16 17:01:14 -07:00
Adrian Sampson
dfcd47942d new plugin event: library_opened 2012-05-15 12:39:04 -07:00
Adrian Sampson
c9da7bf3f8 new plugin event: import_task_choice 2012-05-15 12:33:57 -07:00
Adrian Sampson
a9eb249a15 version bump: 1.0b15 2012-05-13 20:04:14 -07:00
Adrian Sampson
a406ae1c52 date for b14 release 2012-05-12 22:35:55 -07:00
Adrian Sampson
849d50beb9 changelog note about lastgenre fallback_str (GC-358) 2012-05-09 09:40:18 -07:00
Adrian Sampson
9dc0ac6ded changelog summary paragraph 2012-05-08 19:07:35 -07:00
Adrian Sampson
da2364a747 changelog note for unicode rewrite fix 2012-05-08 16:19:37 -07:00
Adrian Sampson
2fb3ec47c9 changelog note about BPD random/repeat 2012-05-08 14:15:23 -07:00
Adrian Sampson
a28f930c52 transaction objects to control DB access
In an attempt to finally address the longstanding SQLite locking issues, I'm
introducing a way to explicitly, lexically scope transactions. The Transaction
class is a context manager that always fully fetches after SELECTs and
automatically commits on exit. No direct access to the library is allowed, so
all changes will eventually be committed and all queries will be completed. This
will also provide a debugging mechanism to show where concurrent transactions
are beginning and ending.

To support composition (transaction reentrancy), an internal, per-Library stack
of transactions is maintained. Commits only happen when the outermost
transaction exits. This means that, while it's possible to introduce atomicity
bugs by invoking Library methods outside of a transaction, you can conveniently
call them *without* a currently-active transaction to get a single atomic
action.

Note that this "transaction stack" concepts assumes a single Library object per
thread. Because we need to duplicate Library objects for concurrent access due
to sqlite3 limitation already, this is fine for now. Later, the interface should
provide one transaction stack per thread for shared Library objects.
2012-05-06 23:24:05 -07:00
Adrian Sampson
76af1924ea fix ReST markup error in changelog 2012-05-03 17:24:33 -07:00
Adrian Sampson
104aec3c2f cleanup and docs for regular expression queries 2012-05-01 20:03:01 -07:00
Adrian Sampson
792c5b5e5d cleanup and docs for -f option flexibility 2012-04-30 21:26:49 -07:00
Adrian Sampson
fa3e41c86a BPD: print messages reflecting tree (re)build 2012-04-30 12:02:00 -07:00
Adrian Sampson
c4f9b452da docs for %aunique (#190) 2012-04-29 14:52:03 -07:00
Adrian Sampson
2087ff6e41 add items to DB before moving/copying (#190)
Previously, all files would be moved/copied/deleted before the corresponding
Items and Albums were added to the database. Now, the in-place items are added
to the database; the files are moved; and then the new paths are saved to the
DB. The apply_choices coroutine now executes two database transactions per task.
This has a couple of benefits:
- %aunique{} requires album structures to be in place before the destination()
  call, so this now works as expected.
- As an added bonus, the "in_album" parameter to move() and destination() --
  along with its associated ugly hacks -- is no longer required.
2012-04-29 14:14:11 -07:00
Adrian Sampson
9c10d8163b back out readline addition (#376) 2012-04-19 10:21:39 -07:00
Adrian Sampson
7736e279fe typo in changelog for --noincremental 2012-04-15 21:44:36 -07:00
Adrian Sampson
a64dea25b2 docs for @djrtl's changes (#30) 2012-04-15 14:24:52 -07:00
Adrian Sampson
ccaf0031cd changelog: wiki link and readline 2012-04-10 14:14:47 -07:00
Adrian Sampson
6b696c842f cleanup and docs for import_move (GH-26, GC-266)
- Copying and moving are mutually exclusive. Moving overrides copying so the
  user only has to add one line ("import_move: true") to disable copying and
  enable moving in its place.
- Deleting is only possible when copying.
- Deprecating the "delete" option (moving is almost always better).
- Removed command-line switch for moving. It's somewhat "unsafe", so this
  removes some potential for accidental irreversible changes.
- Changelog & thanks.
- Update docs to refer to import_move instead of import_delete as the
  correct solution for ending up with only one copy of the file.
2012-04-10 13:41:24 -07:00
Adrian Sampson
d8776b3ed2 doc fixes
(I obviously don't know how to use git-cherry-pick.)
2012-04-10 12:11:23 -07:00
Adrian Sampson
251026b759 add a new batch of metadata fields
The new fields are:
ALBUM: mb_releasegroupid asin catalognum script language country albumstatus
media albumdisambig
TRACK: disctitle encoder
These are not yet parsed from MusicBrainz responses (just added to MediaFile
and the database).
2012-04-04 00:52:57 -07:00
Adrian Sampson
ffa2402ff4 revamp default character substitutions
There's no longer a distinction between Unix and Windows substitutions. Enough
users reported problems with Windows-forbidden characters on Samba shares that
it seems appropriate to make all filenames Windows-safe, even on Unix. Users who
really want those additional characters (<>:"?*|\) can re-enable them via the
"replace" option. Nobody has complained about beets being *too* conservative.

This also adds sanitization of control characters, which is an all-around good
idea, and the substitution now runs in the Unicode (rather than byte) domain.
2012-04-03 14:22:38 -07:00
Adrian Sampson
44bcc5b3bd chroma: "beet submit" command (#332) 2012-04-01 20:41:27 -07:00
Adrian Sampson
01dce53212 store Acoustid data in DB & file
This is accomplished via a new event, "import_task_apply", which is called
right after metadata is applied to newly-imported items.

This change makes chroma REQUIRE a new version (0.6) of pyacoustid. Users with
older versions installed will see complaints about a missing method
"fingerprint_file".
2012-04-01 19:38:46 -07:00
Adrian Sampson
781c26ffd0 normalize to NFC on non-Mac platforms (#367) 2012-03-27 10:44:11 -07:00
Adrian Sampson
037f751e23 display track count for failed album matches 2012-03-27 10:24:27 -07:00
Adrian Sampson
823e36ad01 normalize new filenames to with NFD 2012-03-26 12:14:30 -07:00
Adrian Sampson
3c4d8500e5 sort by sort names 2012-03-25 17:35:07 -07:00
Adrian Sampson
2f1ac61d4f track and album artist sort names (GH-25, GC-77)
Previously, there was just an "artist sort name" field -- now there's a
corresponding sort name for both track artists and album artists. I also made
the names shorter (artist_sort and albumartist_sort).
2012-03-25 17:02:52 -07:00
Adrian Sampson
2466305d7e add MusicBrainz collection plugin by @jeffayle 2012-03-23 11:34:57 -07:00
Adrian Sampson
ca29bd6dd1 credit for random plugin (#24) 2012-03-23 10:36:14 -07:00
Adrian Sampson
7e6cdd75d6 docs & changelog for rdm plugin 2012-03-23 10:26:50 -07:00
Adrian Sampson
22e8695172 BPD: use playbin2 instead of playbin (#364) 2012-03-21 14:25:01 -07:00
Adrian Sampson
c7840bbbf0 docs/changelog for duplicate resolution (#164) 2012-03-20 14:36:11 -07:00
Adrian Sampson
af0da7d1b6 m3uupdate docs, changelog, and cleanup (#23) 2012-03-18 16:42:12 -07:00
Adrian Sampson
aa36fa288c version bump: b14 2012-03-17 12:03:28 -07:00
Adrian Sampson
b49beac9bb add release date to changelog 2012-03-16 09:55:30 -07:00
Adrian Sampson
1b1b8c4ae3 cleanup/docs for list formatting (#203; #22 on GH) 2012-03-14 14:51:13 -07:00
Adrian Sampson
194f224687 changelog about colorama (#21 on GitHub) 2012-03-14 14:23:31 -07:00
Adrian Sampson
2d3c9d9f9a suppress more pylast errors (#349) 2012-02-26 17:57:40 -08:00
Adrian Sampson
8fca659392 log errors when fingerprinting fails 2012-02-26 17:51:19 -08:00
Adrian Sampson
a71961d7df changelog intro for b13 2012-02-19 13:54:19 -08:00
Adrian Sampson
2f38a42fe7 deduplicate track matches (#247) 2012-02-19 13:46:34 -08:00
Adrian Sampson
982f5849e2 show track lengths in difference display (#121) 2012-02-19 13:06:36 -08:00
Adrian Sampson
531ebd19bb import log: flush on write; close on crash (#337) 2012-02-19 12:40:44 -08:00
Adrian Sampson
62cf26806c strip characters in replacement 2012-02-19 12:19:55 -08:00
Adrian Sampson
ca53bc8935 changelog for "list" fix 2012-02-17 15:45:37 -08:00
Adrian Sampson
6d2df0e4bf import_delete: delete local album art (#242) 2012-02-15 16:46:23 -08:00
Adrian Sampson
153f52a6eb import_delete prunes empty imported directories (#243) 2012-02-09 15:06:33 -08:00
Adrian Sampson
08e93a5309 plugin API to extend MediaFile (#324) 2012-02-09 14:35:47 -08:00
Adrian Sampson
72659975a2 bitrate for AAC files falls back to estimation
Apparently, info.bitrate can be zero for AAC files when the information is not
available in the header. MediaFile now falls back to estimation when this is
true.
2012-02-09 12:05:57 -08:00
Adrian Sampson
7522468f0e set disc and disctotal when autotagging (#226) 2012-02-07 18:03:31 -08:00
Adrian Sampson
74f14a7aeb fix plugin errors with missing sections 2012-01-31 18:52:27 -08:00
Adrian Sampson
cd63be80ba fix malformed query with AND/OR operators (#327) 2012-01-31 15:37:30 -08:00
Adrian Sampson
bb4be3a303 lower case extensions in destination (#331) 2012-01-31 15:11:19 -08:00
Adrian Sampson
337e2556a6 sanitize path components from plugins (#315) 2012-01-30 16:53:05 -08:00
Adrian Sampson
23e30bf72a CLI error when log file can't be opened (#326) 2012-01-30 16:29:22 -08:00
Adrian Sampson
eb8b194508 handle acoustid response w/ no recording (#322) 2012-01-29 17:50:03 -08:00
Adrian Sampson
b7c9d2caf5 prevent divide-by-zero in bitrate property (#319) 2012-01-29 14:08:23 -08:00
Adrian Sampson
7b265e353d print a better error for exceptions raised from inline snippets 2012-01-29 13:27:47 -08:00
Adrian Sampson
fe33926038 add new audio properties to library/DB
$samplerate now expands to "##kHz" in path formats.
2012-01-27 16:04:51 -08:00
Adrian Sampson
dfb0eff8e3 displayable_path() wrap for config path logging 2012-01-27 12:27:53 -08:00
Adrian Sampson
4a1e8fdd6e merge 2012-01-27 12:04:44 -08:00
Adrian Sampson
f685bdd89a unicode in str MediaFile fields (#311, closes #15) 2012-01-27 12:02:26 -08:00
Adrian Sampson
3b37433005 no penalty for "various artists" track artist (#251) 2012-01-25 20:41:59 -08:00
Adrian Sampson
47891b00f7 tolerate per-medium track numbering (#283) 2012-01-25 20:12:04 -08:00
Adrian Sampson
dbab290ba4 fix rewrite bug w/ multiple rules for a single field 2012-01-25 13:32:22 -08:00
Adrian Sampson
01a54e2e0e first stab at revamped lyrics plugin (#137) 2012-01-19 12:25:11 -08:00
Adrian Sampson
7817d6e1c4 changelog summary 2012-01-16 21:24:16 -08:00
Adrian Sampson
347a29b0f6 rewrite plugin
--HG--
rename : docs/plugins/inline.rst => docs/plugins/rewrite.rst
2012-01-16 20:48:23 -08:00
Adrian Sampson
307560a6c9 ignore all .* files by default (#293) 2012-01-16 17:09:25 -08:00
Adrian Sampson
9920cc482c add "scrub" plugin (#280)
--HG--
rename : beetsplug/embedart.py => beetsplug/scrub.py
rename : docs/plugins/embedart.rst => docs/plugins/scrub.rst
2012-01-02 14:03:28 -08:00
Adrian Sampson
75d4e15e92 remove missing-length distance penalty
Previously, the thinking went that if the MB database didn't have a length, we
should penalize the track maximally in order to avoid prioritizing a bad match
just because its information was incomplete. As it turns out, though, missing
track lengths are pretty common and this was causing more problems than it was
solving; this way, mysteriously high distances won't appear.
2012-01-01 13:49:53 -08:00
Adrian Sampson
d73c133a53 query-conditioned path formats (#210)
Also, Library.path_formats is now a list of pairs instead of a dictionary. (I
would have used an OrderedDict, but that was added in 2.7.)
2011-12-28 19:01:13 -08:00
Adrian Sampson
890021008a inline plugin: define template fields in config (#169) 2011-12-27 14:43:58 -08:00
Adrian Sampson
b44195853c zero-pad date values in path formats (#282) 2011-12-22 15:57:02 -08:00
Adrian Sampson
93678307ef lastgenre now writes tags to files (#279)
This was accomplished by adding a new "config" parameter to the *_imported
events so that the handlers can check whether writing is enabled.
2011-12-20 17:49:11 -08:00
Adrian Sampson
112d0f5452 uniquify conflicting filenames (#182) 2011-12-19 22:52:13 -08:00
Adrian Sampson
bf638e2112 changelog note about incremental import message 2011-12-19 19:56:00 -08:00
Adrian Sampson
b493bc7004 configurable pathname substitution (#115) 2011-12-19 18:37:35 -08:00
Adrian Sampson
0cc92e482b remove lastid plugin 2011-12-17 22:05:11 -08:00
Adrian Sampson
101f18bc01 remove -p flag, which has outlived its usefulness 2011-12-17 22:04:07 -08:00
Adrian Sampson
c0115ad958 ignore .fuse_hidden* files 2011-12-17 21:55:12 -08:00
Adrian Sampson
91901fc379 plugin-extensible path format fields (#169) 2011-12-17 21:29:15 -08:00
Adrian Sampson
08b539a80e fix field inference w/ null first item (closes #14 on GitHub)
When a partial match is found, its first item (task.items[0]) may be None, and
_infer_album_fields would crash in this case. This solution walks through the
items list and finds the first non-None item.
2011-12-16 16:45:50 -08:00
Adrian Sampson
621b3d4bb7 link to plugin template format docs 2011-12-16 12:18:44 -08:00
Adrian Sampson
69845f2b24 documentation for function calls (#231) 2011-12-15 18:42:25 -08:00
Adrian Sampson
59b4338f81 fix BPD lsinfo results for libmpc (#277) 2011-12-14 14:04:00 -08:00
Adrian Sampson
7372f72185 version bump: 1.0b12 2011-12-13 17:32:04 -08:00
Adrian Sampson
68840e4ec8 fix a silly ReST error in changelog 2011-12-12 18:45:20 -08:00
Adrian Sampson
c34e7dfc22 clean up changelog 2011-12-12 18:25:38 -08:00
Adrian Sampson
700c7cd9f8 albumart.org scraper art source (#272) 2011-12-07 11:11:35 -08:00
Adrian Sampson
8736d359c6 "timeout" config value (#261) 2011-12-04 18:46:35 -08:00
Adrian Sampson
5111537cde handle EOFError when ~/.beetsstate is corrupted (#271) 2011-12-03 15:37:29 -08:00
Adrian Sampson
d1e43e9346 docs for partial album matches (#260) 2011-12-01 14:26:30 -08:00
Adrian Sampson
1ba4d74a75 use better default paths on Windows (#241) 2011-11-27 23:33:11 -08:00
Adrian Sampson
35d1f2420b document multi-disc album collapsing (#42) 2011-11-26 15:59:30 -08:00
Adrian Sampson
78dca315d4 slightly clean up mtime feature; changelog mention 2011-11-22 00:11:45 -08:00
Adrian Sampson
5965b37f51 skip (configurable) clutter filenames when importing 2011-11-13 17:14:40 -08:00
Adrian Sampson
02402545e0 get original release date for MB release group (#65) 2011-11-13 16:30:49 -08:00
Adrian Sampson
d63924b142 docs for replaygain plugin (#248) 2011-11-13 15:51:11 -08:00
Adrian Sampson
7e627c5e57 decode pathnames before formatting them (#232) 2011-11-13 10:10:19 -08:00
Adrian Sampson
f2bb220f5a chroma plugin (for acoustid fingerprinting) (#152)
--HG--
rename : docs/plugins/lastid.rst => docs/plugins/chroma.rst
2011-11-12 15:33:00 -08:00
Adrian Sampson
adbfd06682 embed python-musicbrainz-ngs; beets is now on /ws/2 2011-10-23 18:20:01 -07:00
Adrian Sampson
c891dac3ec fix crash with "as Tracks" import option (#244) 2011-10-09 13:34:30 -07:00
Adrian Sampson
ec49fca4dc smarter MBID input (based on patch by derwin) 2011-10-07 15:33:19 -07:00
Adrian Sampson
b62b462b1e file-based genre whitelist & cleanup
--HG--
rename : beetsplug/lastgenre.py => beetsplug/lastgenre/__init__.py
2011-10-07 12:51:38 -07:00
Adrian Sampson
d6431b992e lastgenre plugin (#139) 2011-09-23 12:33:47 -07:00
Adrian Sampson
f63d2e5167 release date 2011-09-22 09:52:55 -07:00
Adrian Sampson
f850928845 translate changelog 2011-09-17 16:41:35 -07:00