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
53e5bb05b7
merge
2012-01-23 03:06:51 -08:00
Adrian Sampson
402649af73
tolerate python-musicbrainz-ngs API changes
2012-01-19 21:55:52 -08:00
Adrian Sampson
a58253b79c
"lyrics -p" prints out lyrics
2012-01-19 12:43:29 -08:00
Adrian Sampson
248a433d1d
lyrics auto-fetch on import ( #137 )
2012-01-19 12:39:20 -08:00
Adrian Sampson
01a54e2e0e
first stab at revamped lyrics plugin ( #137 )
2012-01-19 12:25:11 -08:00
Adrian Sampson
0275836293
warning about replaygain instability ( #289 )
2012-01-18 14:41:19 -08:00
Adrian Sampson
c987d68331
update install instructions
2012-01-18 14:36:26 -08:00
Adrian Sampson
837c900e5d
version bump: b13
2012-01-18 14:11:39 -08:00
Adrian Sampson
0e81900675
mtime tests at integral second resolution ( #298 )
2012-01-18 14:08:15 -08:00
Adrian Sampson
9566d606e8
Added tag 1.0b12 for changeset 284b58a9f9ce
2012-01-16 22:44:57 -08:00
Adrian Sampson
b690418258
two more bullet points in readme
2012-01-16 22:36:22 -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
99d13c474f
depend on released musicbrainzngs instead of embedding ( #294 )
2012-01-16 20:08:52 -08:00
Adrian Sampson
307560a6c9
ignore all .* files by default ( #293 )
2012-01-16 17:09:25 -08:00
Adrian Sampson
6a082234fb
docs fixes regarding album types
2012-01-11 17:10:26 -08:00
Adrian Sampson
c40081808a
fix double-removal when re-importing with deletion
...
With import_delete enabled and performing a re-import (which moves files), the
former location of the file would be "deleted". This would lead to a "file does
not exist" error.
2012-01-06 21:58:17 -08:00
Adrian Sampson
979c33a0b1
fix substring pattern match when value is None
2012-01-06 10:36:34 -08:00
Adrian Sampson
a998d36380
fix deletion in partial matches
2012-01-06 09:54:57 -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
ca6df97ee9
explain shorthand query keys
2011-12-28 19:06:15 -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
a1b2b6c8a2
fix plugin hook in embedart
2011-12-28 15:56:07 -08:00
Adrian Sampson
890021008a
inline plugin: define template fields in config ( #169 )
2011-12-27 14:43:58 -08:00
Adrian Sampson
fabaf41ecf
never invalidate a queue with None
...
I saw this *extremely* intermittently (and wasn't able to reproduce it at all),
but I think there was a race when invalidating an output queue in the abort()
method of PipelineThread. It was possible for a thread's input queue to be
invalidated (with val=None) while abort_flag was False (and abort_lock was not
held). This would cause coroutines to see a None value when the pipeline was
shutting down. Always poisoning a queue when it's invalidated should solve this
by making the thread break before sending the value to the coroutine.
2011-12-22 18:05:54 -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
6fff1b9c36
message when skipping directories in incremental mode ( #273 )
2011-12-19 19:53:55 -08:00
Adrian Sampson
8fde981b1d
add asciify function
2011-12-19 19:41:09 -08:00
Adrian Sampson
b493bc7004
configurable pathname substitution ( #115 )
2011-12-19 18:37:35 -08:00
Adrian Sampson
880776a810
remove special-case for !!! ( #274 )
2011-12-17 22:07:38 -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
7a189b2135
document global CLI flags
2011-12-17 22:00:33 -08:00
Adrian Sampson
c0115ad958
ignore .fuse_hidden* files
2011-12-17 21:55:12 -08:00
Adrian Sampson
69c0e8d496
doc fixes for extensible template fields
2011-12-17 21:46:09 -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
46a3bde5b5
fix empty function arguments
...
Previously, an empty argument was treated as "not an argument at all". Now,
every function call always has at least one argument -- i.e., %foo{} is a
function call whose only argument is "" -- and %foo{,bar} is valid syntax.
2011-12-16 12:08:39 -08:00
Adrian Sampson
f1ebc82a55
plugin hooks for template functions ( #231 )
2011-12-16 11:56:40 -08:00
Adrian Sampson
dd4ee6b2e4
document some template syntax details
2011-12-16 11:20:33 -08:00