Commit graph

1776 commits

Author SHA1 Message Date
Adrian Sampson
2ff8045172 rewording in changelog 2014-04-12 13:37:46 -07:00
Adrian Sampson
2dafaa2f0c Merge branch 'KraYmer-lyrics-enh-tests' 2014-04-12 12:58:20 -07:00
Thomas Scholtes
650b49795b Add keyfinder plugin
Closes #662 and #279.
2014-04-12 18:44:38 +02:00
Fabrice L.
8f43b38586 Update changelog.rst 2014-04-12 13:01:06 +02:00
Fabrice Laporte
8a66efd2e8 update changelog 2014-04-12 12:41:10 +02:00
Adrian Sampson
271a1627a5 mbsync: call album.save()
This must have been broken as long as album.save() was a necessary call (i.e.,
since the introduction of the dbcore base classes).
2014-04-11 19:50:13 -07:00
Thomas Scholtes
c01fc542ed Support for initial_key with EchoNest 2014-04-11 21:03:11 +02:00
Adrian Sampson
6989d77a7a "invalid MBID" messages are now debug logs (#616) 2014-04-10 14:46:26 -07:00
Adrian Sampson
33b44717ab embedart: catch log errors (fix #678) 2014-04-10 11:24:59 -07:00
Adrian Sampson
9ad5e323e4 changelog note for #642 2014-04-08 15:27:10 -07:00
Adrian Sampson
8fb5ddc3b9 revise docs for expanded RG plugin
Among other things, this clarifies which options are available with each
backend.
2014-04-07 20:07:39 -07:00
Adrian Sampson
28556a0c37 catch ReadError when calling item.read() 2014-04-07 19:42:54 -07:00
Johannes
2eadd9e3de Update MPD links in docs 2014-04-07 18:04:15 +01:00
Thomas Scholtes
5fae387d26 Changelog for 9d87a7fc02 2014-04-07 18:08:27 +02:00
Adrian Sampson
dd053d7723 changelog and style fixes for #665 2014-04-06 17:59:30 -07:00
Yevgeny Bezman
9c00e43b30 changelog: added a note regarding the new replaygain plugin 2014-04-06 08:49:38 +03:00
Adrian Sampson
c742ad631e version bump: 1.3.5 2014-04-05 11:55:14 -07:00
Adrian Sampson
f44960c774 one day late 2014-04-05 11:39:11 -07:00
Adrian Sampson
44bd499af8 pretty up changelog for 1.3.4 release 2014-04-04 18:15:01 -07:00
Adrian Sampson
d407db725f convert: catch OSErrors and display error message
This also adds close_fds (only available on Unixes) to the common subprocess
invocation utility.
2014-04-03 19:47:21 -07:00
Adrian Sampson
ac99622ec7 Merge branch 'single-files'
Conflicts:
	docs/changelog.rst
2014-04-03 13:20:53 -07:00
Adrian Sampson
3372fd3066 avoid unnecessarily reloading weights (#609)
In my profiling runs, this was taking 80% of the matching time to recompute
exactly the same dict over and over. Worth optimizing.

`beet bench_match` went from 80 seconds to 17 seconds on my machine with this
change.
2014-04-03 12:13:29 -07:00
Adrian Sampson
b683f239f0 some style tweaks for #638 2014-04-02 21:18:41 -07:00
Adrian Sampson
c9141a6adf import single files and one-track albums
An alternate proposal for what's being discussed in #640.
2014-04-02 17:14:48 -07:00
Bruno Tournay
cd70e92b7f Modify command: ability to delete/reset an attribute (beet modify field!) 2014-04-01 22:38:33 +02:00
Adrian Sampson
8d196a8c01 changelog for #632 2014-03-26 13:39:12 -07:00
Adrian Sampson
1fb2584a06 avoid crashes on Mutagen bugs in save() (#622) 2014-03-20 14:35:45 -07:00
brilnius
e1878b34e7 Merge pull request #618 from brilnius/fix615
lastgenre plugin: separator in genre lists can now be configured
2014-03-19 22:22:41 +01:00
Adrian Sampson
b0fd64662d update docs for #619 2014-03-19 10:34:03 -07:00
Thomas Scholtes
51647e6514 Changelog for 0daea144e8 2014-03-19 17:30:15 +01:00
Bruno Tournay
41e7611ead Replace option: leading whitespaces are also removed by default 2014-03-18 22:25:06 +01:00
Bruno Tournay
26abd603c8 Changelog for previous change (lastgenre separator) 2014-03-18 22:12:16 +01:00
Bruno Tournay
618708916b Separator in genre lists can now be configured 2014-03-18 22:03:11 +01:00
Adrian Sampson
cc1780f328 changelog for #586 2014-03-14 09:50:41 -07:00
Thomas Scholtes
4c41a02c72 Changelog for 002d3600 2014-03-11 00:11:03 +01:00
brilnius
b8ef621941 Merge pull request #599 from brilnius/spl_auto
Ability to disable auto regeneration of smartplaylist
2014-03-10 22:46:55 +01:00
Bruno Tournay
0d2f18efb5 Added mention that smartplaylist auto-regeneration can be disabled 2014-03-10 22:45:27 +01:00
Thomas Scholtes
ff9e4f4dcb Add after_write plugin event 2014-03-10 16:34:12 +01:00
Adrian Sampson
fb038ecc30 changelog & style tweaks for album_query (#595) 2014-03-09 13:22:34 -07:00
Adrian Sampson
01a713df91 changelog and docs for #597 2014-03-09 11:49:50 -07:00
Adrian Sampson
ef36890a4e changelog and code simplification for #594 2014-03-08 13:58:37 -08:00
Adrian Sampson
a6ca63d67c bash completion (#553): expand docs 2014-03-07 15:03:30 -08:00
Adrian Sampson
f06a16819f spl mutli-query (#575): remove option, changelog 2014-03-07 14:26:49 -08:00
Adrian Sampson
c62277134e changelog for #579/#578 2014-03-06 11:23:00 -08:00
Adrian Sampson
b8af77bdea changelog (& tiny tweak) for #567 2014-03-06 11:03:41 -08:00
Adrian Sampson
f71307f87e changelog for #570 2014-03-06 11:00:00 -08:00
Adrian Sampson
26c2fa7fd0 changelog/thanks for #577 2014-03-06 10:45:03 -08:00
Adrian Sampson
a50aae769c changelog/thanks for #563 2014-03-02 13:39:28 -08:00
Adrian Sampson
bb6372abfd changelog/thanks for #562 2014-03-02 09:38:17 -08:00
Adrian Sampson
ecace62e14 changelog/thanks for #560 2014-03-01 09:55:04 -08:00
Adrian Sampson
692645466e documentation expansion for config command (#552) 2014-02-28 09:31:10 -08:00
Thomas Scholtes
91bba13acb Changelog for config command 2014-02-28 16:53:19 +01:00
Adrian Sampson
cd7b74271a avoid repr() on paths in filesystem errors 2014-02-27 19:47:03 -08:00
Adrian Sampson
d9435552d3 changelog and style/docs for #527 2014-02-27 19:25:54 -08:00
Adrian Sampson
982ccce02e version bump: 1.3.4 2014-02-27 10:55:46 -08:00
Adrian Sampson
f9a820d303 summarize changelog for 1.3.3 release 2014-02-26 20:31:06 -08:00
Adrian Sampson
5606e60e72 changelog/thanks for #554 2014-02-23 12:14:32 -08:00
Adrian Sampson
1413a842f7 update: restore "deleted" indication 2014-02-22 00:51:05 -05:00
Adrian Sampson
52682a0777 changelog for better difference formatting 2014-02-22 00:48:27 -05:00
Adrian Sampson
a2075d31e5 modify: use formatted values in _showdiff()
Perhaps we should use this for other commands also. One outstanding issue is
strange highlighting (e.g., "True -> False" helpfully shows that the "e" did
not change).
2014-02-13 21:33:58 -08:00
Adrian Sampson
e37d00c93c changelog for config priorities (#513) 2014-02-13 13:58:47 -08:00
Adrian Sampson
23fb5da1dc Revert "Replace path separators from config"
This reverts commit c82b31e750.

Conflicts:
	docs/changelog.rst
2014-02-13 13:22:45 -08:00
Adrian Sampson
c6d649eadf changelog/thanks for #535 2014-02-11 09:53:41 -08:00
Adrian Sampson
3dd9e4622f lastgenre: tolerate el.weight is None 2014-02-11 09:49:15 -08:00
Adrian Sampson
4c5fc8fd76 echonest: use only one plugin class (fix #536) 2014-02-10 22:08:15 -08:00
Adrian Sampson
8ffe83b99e fetchart: fix #533, remote_priority ignoring local 2014-02-09 16:10:53 -08:00
Adrian Sampson
ee713d153c ihate: fix singletons (from #486, fix #411) 2014-02-08 12:11:32 -08:00
Adrian Sampson
67df43b9cf changelog/thanks for #486 (close #398) 2014-02-08 12:05:19 -08:00
Thomas Scholtes
c82b31e750 Replace path separators from config 2014-02-06 14:22:40 +01:00
Adrian Sampson
802c4560d4 changelog/docs for #521, fix #402 2014-02-05 20:44:43 -08:00
Adrian Sampson
cb783d11c3 style and changelog for #525 2014-02-04 23:19:34 -08:00
Adrian Sampson
9294140388 log errors, don't crash, when calling convert 2014-02-02 14:12:14 -08:00
Adrian Sampson
aaeb166608 a bit more documentation for --config 2014-02-02 13:48:21 -08:00
Adrian Sampson
1276e17a03 changelog/thanks for #522 2014-02-02 13:14:01 -08:00
Adrian Sampson
b0d8fdfea6 changelog for #519 2014-02-02 09:55:42 -08:00
Adrian Sampson
8b87fff3e3 a bit more documentation for --group-albums (#518) 2014-02-01 12:52:16 -08:00
Adrian Sampson
d6013f51d2 a bit more docs, changelog for #518 2014-01-31 17:01:18 -08:00
Adrian Sampson
456c8a7f01 fromfilename: fix #460: crash w/ no capture groups 2014-01-30 08:19:16 -08:00
Adrian Sampson
d674ca31e4 changelog/thanks for #512 2014-01-28 10:15:24 -08:00
Adrian Sampson
069ccde3e6 changelog/thanks for #511 2014-01-28 09:49:33 -08:00
Adrian Sampson
620f0f8727 fetchart colors (#508): simplify, new colors
Also a changelog entry.
2014-01-27 22:51:58 -08:00
Adrian Sampson
06b3ee179c comments, naming, and docs for part of #509 2014-01-27 22:38:23 -08:00
Adrian Sampson
d72f21d47b catch OSError when checking for convert program
As reported by zeltak on IRC.
2014-01-24 20:33:41 -08:00
Adrian Sampson
081593bcb9 changelog: web API change 2014-01-22 16:36:32 -08:00
Adrian Sampson
f7ff8e9f99 changelog/thanks for #499 2014-01-20 18:57:54 -08:00
Adrian Sampson
3787b59430 changelog/thanks for #493 2014-01-14 13:04:56 -08:00
Adrian Sampson
960e6b2593 changelog/thanks for #489 2014-01-09 22:30:46 -08:00
Adrian Sampson
a046551304 handle some exceptions while writing during import
A few people get freaky crashes at this point, even though it theoretically
should be impossible (since reading the file succeeded earlier). This should
help the import process not croak at that point.
2014-01-09 12:07:08 -08:00
Adrian Sampson
1ad1f7634c py26 compatible format strings (fix #490) 2014-01-09 11:22:49 -08:00
Adrian Sampson
fe725fb9a9 changelog/thanks for #487 2014-01-05 13:34:13 -08:00
Adrian Sampson
cc5e3d489c item templates can use album flexattrs (fix #461) 2013-12-25 15:49:51 -08:00
Adrian Sampson
3e59c158ff enable queries over computed attributes
This makes containment (field in obj) work with all attributes even though
other dict-like methods for iterating over the object don't expose computed
fields by default. I think this is the right compromise to avoid accidental
eager evaluation of computed fields.
2013-12-24 15:30:39 -08:00
Adrian Sampson
aeb9afdbb5 1.3.2: finish up changelog 2013-12-22 16:17:02 -08:00
Adrian Sampson
888f76a631 merge 2013-12-22 13:44:37 -08:00
Adrian Sampson
638b2e3321 organize 1.3.2 changelog 2013-12-22 13:14:53 -08:00
Adrian Sampson
5d55c21c38 changelog for scrub mp4 fix 2013-12-22 12:49:06 -08:00
Adrian Sampson
a9b4169ee2 zero out month & day when missing from match 2013-12-18 16:20:40 -08:00
Adrian Sampson
3338ef2ff2 lastgenre: multiple + canonical genres (fix #478) 2013-12-17 17:29:37 -08:00
Adrian Sampson
19868946d5 mpdstats refactor: comments/credit 2013-12-12 15:47:26 -08:00
Adrian Sampson
cf3af711da replace: tolerate None replacements
Avoids confusion/traceback when you leave off the replacement string instead
of using ''.
2013-11-25 21:52:46 -08:00
Adrian Sampson
bc660ec47f clutter option: permit whitespace-separated 2013-11-25 21:37:47 -08:00
Adrian Sampson
38ecb35718 lyrics -f (#455, closes #414): style, changelog 2013-11-25 15:58:53 -08:00
Adrian Sampson
d7d1f1f78c changelog/thanks for 887e02c fix 2013-11-25 15:51:57 -08:00
Adrian Sampson
f98dde1b7e docs/changelog for write (#328, #448) 2013-11-25 15:34:11 -08:00
Adrian Sampson
6ee8bb8505 changelog reorganization 2013-11-25 15:08:53 -08:00
Adrian Sampson
b266a2b182 changelog/thanks for #451 2013-11-07 10:39:06 -08:00
Adrian Sampson
3ccd231765 id3v23: remove one redundant case; changelog/thanks 2013-11-05 19:59:45 -08:00
Peter Schnebel
6e30af0adb added new plugin mpdstats to changelog 2013-11-04 11:04:46 +01:00
Adrian Sampson
5ba52d669e fix id3v23 tag writing
Fix due to Chris Cogburn on the mailing list.
2013-11-03 21:36:57 -08:00
Peter Schnebel
479f92f250 Merge pull request #424 from pscn/echoplus
New plugin to fetch extended information from the EchoNest (call for feedback)
2013-10-27 03:10:29 -07:00
Peter Schnebel
8fca70a0be added the echonest plugin 2013-10-27 11:08:03 +01:00
Adrian Sampson
2481dc244b convert: iterate over the right items (fix #439) 2013-10-26 11:08:52 -07:00
Pedro Silva
1e737d146b Add new copy, move, delete, and tag options 2013-10-23 17:15:16 +02:00
Pedro Silva
3379c31f4f Add new option 'checksum' for specifying arbitrary checksumming commands 2013-10-23 01:32:05 +02:00
Pedro Silva
7299ed24c6 Add vararg_callback utility function to beets.ui
Optparse doesn't support argparse nargs='+' style arguments.  This patch
adds a callback utility function that allows that idiom. The function is
taken from the page at
http://docs.python.org/2/library/optparse.html#callback-example-6-variable-arguments.

Here's an example of how to use it:

    from beets.ui import vararg_callback
    parser.add_option("-c", "--callback", dest="vararg_attr",
                      action="callback", callback=vararg_callback)
2013-10-22 18:11:24 +02:00
Pedro Silva
6ae10ed765 add 'keys' option to allow duplicate matching on arbitrary attributes
- towards addressing #427
- TODO: invert key list
- TODO: implement alternative strategies (fp, md5, etc)
2013-10-21 23:32:33 +02:00
Adrian Sampson
6ddb296c87 mediafile: add lower-case RG ID3 tags 2013-10-20 13:31:39 -07:00
Adrian Sampson
3070ac382e lastgenre count/min_weight (#416): changelog/thanks
Also closes #407.
2013-10-17 12:07:31 -07:00
Adrian Sampson
225c4ed41c changelog for #420 2013-10-16 21:55:51 -07:00
Adrian Sampson
8e2c1bbe68 ftintitle: check artist_sort for null (fix #418) 2013-10-14 21:11:40 -07:00
Adrian Sampson
fac13a041e missing: tolerate disctotal == None
This problem:
http://pastebin.ca/2466454
is likely indicative of a bug elsewhere, but defensive coding seems like a
good idea here.
2013-10-13 18:22:43 -07:00
Adrian Sampson
f12d589e84 version bump: 1.3.2 2013-10-12 19:43:58 -07:00
Adrian Sampson
5127d716d1 typo 2013-10-12 19:24:25 -07:00
Adrian Sampson
2b82d0d813 1.3.1: changelog summary & release date 2013-10-12 19:03:51 -07:00
Adrian Sampson
d6dac1d35b scrub: no need to save after delete()
The delete() method on Mutagen objects writes the file directly. Calling
save() was unnecessary and, in at least one case we found, could inadvertently
preserve non-standard tags that Mutagen did not understand.
2013-10-08 14:49:29 -07:00
Adrian Sampson
c0c01b2680 id3v23 config option (fix #388) 2013-10-06 20:20:18 -07:00
Adrian Sampson
2aebec0928 #397: shorter option name, docs, changlog
I changed the option name from "multiple_genres" to "multiple".
2013-10-06 10:34:32 -07:00
Adrian Sampson
6d07b7e4b5 use _dirty.discard, not _dirty.remove
In the case where the field has not actually changed, don't throw a KeyError;
just proceed silently.
2013-10-06 10:03:24 -07:00
Adrian Sampson
787918fdc3 changelog, tests, slight reorg for #187 2013-09-30 11:13:13 -07:00
Adrian Sampson
bd0580680f move directory pruning later in import process
Fixes a thing where pruning would remove the album art before fetchart could
get it.
2013-09-29 18:29:49 -07:00
Adrian Sampson
bb21ec692e lastgenre: add album.save() 2013-09-25 08:45:18 -07:00
Adrian Sampson
60f592ec9f changelog for #391 2013-09-23 15:14:27 -07:00
Adrian Sampson
9597d5e370 scrub: restore album art (close #138) 2013-09-21 19:25:31 -07:00
Adrian Sampson
25b77b1518 per_disc_numbering: fix tracktotal (close #163) 2013-09-21 19:12:18 -07:00
Adrian Sampson
4bfe693872 ftintitle: changelog & docs (closes #374) 2013-09-17 14:38:08 -07:00
Adrian Sampson
a5422eeaf7 use track length over recording length
Closes #341. Also, 666 tests! Woohoo!

--HG--
extra : amend_source : f00626f20e2475edcf220772223080ef62f46d84
2013-09-16 17:35:22 -07:00
Adrian Sampson
c5de56c4fd filter wide integers (closes #348) 2013-09-16 17:25:41 -07:00
Adrian Sampson
048880011f echonest_tempo: ensure we have the right track
closes #361
2013-09-16 16:59:11 -07:00
Adrian Sampson
46df8c4f0d info: eager error detection (closes #371) 2013-09-16 16:37:55 -07:00
Adrian Sampson
38bceaa073 fromfilename: docs/changelog (closes #113) 2013-09-13 21:30:01 -07:00
Adrian Sampson
26635718e6 convert-any: changelog/thanks (closes #362, #380) 2013-09-13 19:35:35 -07:00
Adrian Sampson
b3bc4d3622 mbcollection: skip invalid MBIDs 2013-09-13 19:13:36 -07:00
Adrian Sampson
4f1ce5a64c docs: mention musicbrainz port config (closes #365) 2013-09-12 11:11:04 -07:00
Adrian Sampson
19958f75ff embedart: fix error message when imagehdr fails 2013-09-12 10:45:02 -07:00
Adrian Sampson
a785f66511 opus: changelog/thanks/docs (closes #377, #381) 2013-09-12 10:21:05 -07:00
Adrian Sampson
245a6ccb5b version bump: 1.3.1 2013-09-12 09:46:01 -07:00
Adrian Sampson
99b4e25ac2 finish up changelog for beets 1.3.0 2013-09-11 16:08:18 -07:00
Adrian Sampson
247e3b9e01 merge flexattr branch
This is a big change. Some things will probably break.
2013-08-27 17:20:37 -07:00
Adrian Sampson
21a5626347 changelog date/summary for 1.2.2 2013-08-27 09:15:17 -07:00
Adrian Sampson
ca206053ac fix import deletion race
By moving the duplicate file removal to the manipulate_files coroutine, we
ensure that all previous albums are fully moved/copied before trying to delete
their duplicate files.
2013-08-26 14:22:32 -07:00
Adrian Sampson
f9f8994d85 flexattr description in changelog 2013-08-21 18:44:14 -07:00
Adrian Sampson
3757aec494 fix homebrew gstreamer instructions 2013-08-15 17:46:03 -07:00
Adrian Sampson
f1c41428e6 changelog/thanks/tweaks for #355
- Remove requests import
- Name change
- Remove some obsolete checks
2013-08-08 16:19:16 -07:00
Adrian Sampson
c1b66105dd fix regex (and other) queries in path field 2013-08-04 13:12:25 -07:00
Wieland Hoffmann
d849f37d0a Beets is a music library manager, not a TARDIS 2013-08-02 23:09:31 +02:00
Adrian Sampson
a6bed1135e changelog for #340 2013-07-02 20:12:52 -07:00
Adrian Sampson
214e6f76d9 changelog for #339 2013-06-30 18:34:42 -07:00
Adrian Sampson
649dcd760d changelog for #335, version bump 2013-06-26 22:03:02 -07:00
Adrian Sampson
252b476f43 clean up changelog for release 2013-06-22 15:44:24 -07:00
Adrian Sampson
1649512b54 web: item_count -> stats (#333)
The new /stats endpoint now counts both items and albums. In the future, it
could also expose other interesting information.
2013-06-21 10:27:49 -07:00
Adrian Sampson
6f7d633564 changelog/docs for #332 2013-06-21 10:18:49 -07:00
Adrian Sampson
4f9beb6543 changelog for py26 fixes 2013-06-14 13:09:54 -07:00
Adrian Sampson
4555d69803 random: py26 fix 2013-06-12 16:09:41 -07:00
Adrian Sampson
03a2bedac3 changelog for #325 2013-06-11 19:07:50 -07:00
Adrian Sampson
2f053b0ecd scrub: handle IOError
Mutagen can raise this error when trying to truncate a file.
2013-06-10 16:06:43 -07:00
Adrian Sampson
82991ce614 documentation enhancements for new config opts 2013-06-10 15:53:06 -07:00
Adrian Sampson
d1ebe423c9 changelog/thanks/style for #319 2013-06-07 20:53:53 -07:00
Adrian Sampson
6baaa7e06e Changelog for migration fix (#317)
Eventually, we should just remove the migration code. Not sure when, however.
2013-06-07 11:59:08 -06:00
Tai Lee
42efd2a761 Change log for #316 and code style tweaks. 2013-06-08 00:32:40 +10:00
Adrian Sampson
884c596f46 clarify changelog for distance refactor (#302) 2013-06-06 10:44:30 -07:00
Adrian Sampson
e3472a5150 move changelog for #302 to 1.2.1 section 2013-06-06 10:23:18 -07:00
Adrian Sampson
40dadd4c59 Merge pull request #302 from mrmachine/distance-refactor
Use a Distance object instead of floats for distance calculations.
2013-06-06 10:18:09 -07:00
Adrian Sampson
daec2e6806 version bump: 1.2.1 2013-06-06 10:17:46 -07:00
Tai Lee
4cfd1a874f Merge branch 'master' of github.com:sampsyo/beets into distance-refactor
Conflicts:
	beets/autotag/match.py
	beets/config_default.yaml
	docs/changelog.rst
	docs/reference/config.rst
2013-06-06 23:28:25 +10:00
Adrian Sampson
c5e8e7b52d oops! forgot release date 2013-06-05 21:58:04 -07:00
Adrian Sampson
78187cfcba preferred_media: null default, expand docs
Setting the default preferred_media to null is more like previous versions.
This way, as digital becomes more popular, we aren't stuck with a default
configuration that prefers an outdated format.
2013-06-05 20:00:17 -07:00
Adrian Sampson
11e8c3e784 mpdupdate domain sockets (#313): changelog/docs 2013-06-05 18:43:47 -07:00
Tai Lee
898254ed6a Merge branch 'master' into distance-refactor
Conflicts:
	docs/changelog.rst
2013-06-06 11:09:36 +10:00
Tai Lee
5ce996df0d Revert "Don't bypass candidate selection in timid mode. Always show all candidates."
This reverts commit b02974f68f.
2013-06-06 10:18:01 +10:00
Adrian Sampson
9542a292ed write more connective text in changelog 2013-06-05 15:51:19 -07:00
Adrian Sampson
7fca25fba6 1.1.1 -> 1.2.0 2013-06-05 15:21:43 -07:00
Adrian Sampson
1364e6ba37 organize 1.1.1 changelog into sections 2013-06-05 15:20:36 -07:00
Adrian Sampson
975f5bd818 changelog/doc links for Beatport plugin (#301) 2013-06-03 14:01:16 -07:00
Adrian Sampson
5904959b8a item templates now expand all fields
A user noticed that $id wasn't being expanded. There's no good reason for
that.
2013-06-02 16:49:10 -07:00
Tai Lee
b02974f68f Don't bypass candidate selection in timid mode. Always show all candidates.
Saves paranoid and interested users from having to either force all max
recommendations to none or constantly go back to candidate selection
from a recommendation to see if there is another slightly less similar
but more preferred (by the user) candidate.
2013-06-03 01:20:32 +10:00
Tai Lee
2c175faa46 Colorise no-penalty text differences in a secondary colour, light grey. 2013-06-03 01:08:35 +10:00
Tai Lee
461c3c047c Colour benign track index changes in light gray, consistent with non-penalty supplementary information. 2013-06-03 00:46:40 +10:00
Tai Lee
f3545860da Add ignored setting. Don't show matches with specified penalties applied, e.g. missing tracks or unmatched tracks.
If you know you never want these, they can clutter up the interface
especially now that we have multiple data sources.
2013-06-03 00:35:32 +10:00
Tai Lee
e6ac8e1646 Use a Distance object instead of floats for distance calculations.
The new Distance object knows how to perform various types of distance
calculations (expression, equality, number, priority, string).

It will keep track of each individual penalty that has been applied so
that we can utilise that information in the UI and when making decisions
about the recommendation level.

We now display the top 3 penalties (sorted by weight) on the release
list (and "..." if there are more than 3), and we display all penalties
on the album info line and track change line.

The implementation of the `max_rec` setting has been simplified by
removing duplicate validation and instead looking at the penalties that
have been applied to a distance. As a result, we can now configure a
maximum recommendation for any penalty that might be applied.

We have a few new checks when calculating album distance:

`match: preferred: countries` and `match: preferred: media` can each be
set to a list of countries and media in order of your preference. These
are empty by default. A value that matches the first item will have no
penalty, and a value that doesn't match any item will have an unweighted
penalty of 1.0.

If `match: preferred: original_year` is set to "yes", beets will apply
an unweighted penalty of 1.0 for each year of difference between the
release year and the original year.

We now configure individual weights for `mediums` (disctotal), `label`,
`catalognum`, `country` and `albumdisambig` instead of a single generic
`minor` weight. This gives more control, but more importantly separates
and names the applied penalties so that the UI can convey exactly which
fields have contributed to the overall distance penalty.

Likewise, `missing tracks` and `unmatched tracks` are penalised and
displayed in the UI separately, instead of a combined `partial` penalty.

Display non-MusicBrainz source in the disambiguation string, and
"source" in the list of penalties if a release is penalised for being
a non-MusicBrainz.
2013-06-02 18:25:10 +10:00
Adrian Sampson
3a715a6703 changelog/thanks for ALAC (#295) 2013-06-01 17:33:06 -07:00
Adrian Sampson
9a6b6240d0 zero: fix nulling fields containing None 2013-06-01 17:28:59 -07:00
Adrian Sampson
46340af6b7 #291: changelog and docs 2013-05-29 15:39:10 -07:00
Adrian Sampson
3b438b7778 inline: rename "pathfields" to "item_fields" 2013-05-28 23:20:19 -07:00
Adrian Sampson
0176e10ccf inline: allow album field definitions
Under the album_field heading.
2013-05-28 23:10:47 -07:00
Adrian Sampson
a0cb31956d distinguish Album and Item template fields
An earlier change (due to @pedros) added the ability for plugins to define
template fields that work with Albums as well as Items. This enables some
cool new use cases but required that every template field definition check the
type of its arguments. Instead, this iteration on the idea distinguishes
between fields meant for Items and those meant for Albums.

In addition to simplifying the implementation of these functions, this also
enables the creation of album fields with identical names to item fields.
(For example, a user contacted me recently about adding a $bitrate field for
albums, which would be the average bitrate of the items. They can do this now
using a plugin.)

I also changed the docs to stop using the decorator approach to registering
template fields. We're moving toward removing those.
2013-05-28 22:30:23 -07:00
Adrian Sampson
9f927438ca fix some dumb mistakes from most recent flurry 2013-05-28 22:04:20 -07:00
Adrian Sampson
6334f4d1a5 refinements to artpath modification patch
That's 371cc72f2d09 in hg. This makes the patch slightly more general by
reusing our type conversion infrastructure. It also uses "bytes" as a synonym
for "str" that I find a little bit clearer.
2013-05-28 21:41:03 -07:00
Tai Lee
a5151bb32e Look at many more metadata fields when calculating distance.
Produce slightly more varied similarity score to prioritise extremely
similar releases.
2013-05-29 10:18:55 +10:00
Adrian Sampson
3807252685 slightly expand UI changelog description 2013-05-24 11:28:27 -07:00
Tai Lee
ae8f7560e9 reST fail. 2013-05-25 01:50:54 +10:00
Tai Lee
f19dcb0508 Update change log. 2013-05-25 01:45:36 +10:00
Tai Lee
15be24998a Add ability to specify a maximum recommendation for Discogs matches. 2013-05-24 14:43:37 +10:00
Tai Lee
34faebfbdb Display "artist" and/or "ID" on RHS of track list in light gray when a penalty has been applied. 2013-05-24 14:42:00 +10:00
Adrian Sampson
26682f9168 docs/changelog for convert paths config (#285) 2013-05-22 15:00:53 -07:00
Adrian Sampson
06887a8cef discogs: expand docs ever so slightly 2013-05-21 18:03:03 -07:00
Adrian Sampson
f0d63b3596 changelog thanks for discogs plugin (#283 / #210) 2013-05-21 17:40:21 -07:00
Adrian Sampson
dd304c3339 merge 2013-05-21 17:36:45 -07:00
Adrian Sampson
bf78751090 human-readable errors in read() and write() 2013-05-21 15:58:22 -07:00
Tai Lee
75a4171d20 Merge branch 'master' of github.com:sampsyo/beets into imenem-discogs-search
Conflicts:
	docs/changelog.rst
	docs/plugins/index.rst
2013-05-21 23:27:53 +10:00
Tai Lee
3eb6f8e5eb Add discogs plugin, which extends the autotagger to include results from the discogs database.
This is a refactor of the plugin developed by `imenem`.

- Pass `artist`, `album` and `va_likely` to `candidates()` so that
  plugins don't have to work this out from `items` all over again.
- Pass `artist` and `title` to `item_candidates()`.
- Silence spurious `urllib3` info log lines.
- Use a proper "beets" user agent with `discogs_client`.
- Remove `abstract_search` plugin. It seems unnecessary. How many
  music databases are there? How many will beets support? How much
  common code might there be between them? We can add some abstraction
  if or when more databases are supported.
- Derive more AlbumInfo and TrackInfo properties from discogs Release
  objects, especially album ID so that beets doesn't just use the first
  release and think all subsequent releases are duplicates.
- Add basic documentation, doc strings and code comments.
- Sanitise search query. Remove non-word characters and medium info that
  might filter out good search results.
- Use artist `join` strings from discogs Release object when an album
  or track has multiple artists.
- Don't rely on discogs track position, which is unreliable. But tracks
  are in order, so we can recalculate medium and medium_index as long as
  we can extract a consistent medium across tracks from the position.
- Add "various" as a known signal to indicate various artists.
- Prevent `chroma` plugin from returning a a huge track distance for any
  track that is missing an ID (e.g. all discog tracks).
- `TrackInfo.index` should be the release index (calculated by beets),
  not the medium index (derived from discogs track position).
- Add `AlbumInfo.data_source`. It's "Unknown" by default which is shown
  in red when displaying a suggested or selected match. The built in
  auto tagger sets it to "MusicBrainz" which is shown in green. Anything
  else (e.g. "Discogs") is shown in yellow.
- Remove double spaces from album titles (bad data from Discogs).
2013-05-21 21:16:52 +10:00
Adrian Sampson
90b4092e4f changelog & docs typo fixes for #263 2013-05-19 10:44:35 -07:00
Adrian Sampson
475228a5e8 fix #281: album art filename respects replace 2013-05-19 10:34:46 -07:00
Adrian Sampson
0bb51e9f1b thanks and doc tweaks for duplicates (#278) 2013-05-17 12:20:27 -07:00
Adrian Sampson
2f442b5677 Merge pull request #278 from pedros/duplicates
Duplicates plugin
2013-05-17 12:15:06 -07:00
Adrian Sampson
916ceb4b15 changelog and tweaks for #275
I've removed the -p option. The command now always shows plugin-provided
template fields if any are available. We also avoid printing out blank lines
for plugins that don't provide fields.
2013-05-17 11:55:17 -07:00
Adrian Sampson
b8f651fa1a changelog/API docs for #274 2013-05-17 11:44:35 -07:00
Pedro Silva
7031c15418 Initial import of 'duplicates' plugin 2013-05-17 12:47:34 +01:00
Adrian Sampson
a5cb34360d lyrics: fix encoding for Lyrics.com 2013-05-12 12:38:48 -07:00
Adrian Sampson
056cf932d8 docs/changelog for date added (#264) 2013-05-11 13:31:42 -07:00
Adrian Sampson
f086fb6fd7 changelog, little style tweak for #272
Changed single-triple quotes to double-triple quotes, just for consistency
with the rest of the codebase.
2013-05-10 22:23:24 -07:00
Adrian Sampson
cc13edf49f changelog/docs for range queries #261 2013-05-09 16:13:22 -07:00
Adrian Sampson
b57193fd6c changelog/thanks for #265 2013-05-08 22:58:01 -07:00
Adrian Sampson
8d0449c23d rewrap and changelog note for #267 2013-05-08 22:31:53 -07:00
Adrian Sampson
12be4f23b0 version bump: 1.1.1 2013-05-08 22:28:35 -07:00
Adrian Sampson
a9d3ad65bf changelog summary 2013-04-28 23:37:52 -07:00
Adrian Sampson
96c706013f changelog for #257 2013-04-27 16:49:11 -07:00
Adrian Sampson
bf904187e2 smartplaylist: split query w/ shlex (fixes #256) 2013-04-21 20:55:07 -07:00
Adrian Sampson
aaafba4d28 changelog for #254 2013-04-21 20:41:01 -07:00
Adrian Sampson
2a22e6eae8 sort Album.items() output
This closes #181 and #255, which fixed the problem in one usage (importfeeds).
2013-04-20 13:37:29 -07:00
Adrian Sampson
2a3a12ee0b docs and changelog for #243
Also note that this fixes #162.
2013-04-15 11:08:43 -07:00
Adrian Sampson
16e0648c81 lastgenre: fix crash with canonicalization 2013-04-10 10:34:06 -07:00
Adrian Sampson
8ae202cf24 changelog for #246 2013-04-10 10:18:58 -07:00
Adrian Sampson
2532c03d86 hard limit on guessed filename length 2013-04-08 18:36:27 -07:00
Adrian Sampson
70b528ed81 use standard query API for album-by-artist (#240) 2013-04-02 20:31:28 -07:00
Adrian Sampson
461f43077d changelog note for #234/#125 2013-03-25 12:36:41 -07:00
Adrian Sampson
bb1507bd1c version bump/changelog for #182 2013-03-17 22:52:33 -07:00
Adrian Sampson
7383da127d changelog summary/date for 1.1b3 2013-03-16 10:44:47 -07:00
Adrian Sampson
40b49ac786 some low-level tweaks to extensible queries (#214) 2013-03-13 21:59:03 -07:00
Philippe Mongeau
292092bef7 Merge #214 extend query syntax from plugins
Conflicts:
	docs/changelog.rst
2013-03-13 18:32:27 -04:00
Philippe Mongeau
280b431173 changelog / doc for #214 2013-03-13 18:29:11 -04:00
Adrian Sampson
54d8adf6a6 changelog for #180 2013-03-12 22:00:11 -07:00
Adrian Sampson
ae40b97528 chroma: catch acoustid exceptions during submit 2013-03-12 20:30:57 -07:00
Adrian Sampson
3cb71a4f6d python-musicbrainz-ngs 0.3 is out! 2013-03-11 19:35:26 -07:00
Adrian Sampson
fc0924f666 changelog/thanks for #217 2013-03-11 19:24:18 -07:00
Adrian Sampson
33ff0e8fd2 changelog/thanks for #213 2013-03-10 15:20:29 -07:00
Adrian Sampson
8736a0bb4c convert auto: changelog and de-cloning (#212) 2013-03-10 13:12:56 -07:00
Adrian Sampson
218f10a62d echonest_tempo: catch socket.error 2013-03-09 11:33:55 -08:00
Adrian Sampson
87d71abc28 changelog/cleanup/fixes for #209
The major functional change here is how files move around when in keep_new
mode. Now, files are first moved to the destination directory and then
copied/transcoded back into the library.

This avoids problems where naming conflicts could occur when transcoding from
MP3 to MP3 (and thus not changing the filename).
2013-03-06 18:21:42 -08:00
Adrian Sampson
5f3ebde6bb mbsync: docs/changelog
As discussed on #115, this has the "reimport" docs refer to the mbsync plugin.
2013-03-03 16:41:48 -08:00
Adrian Sampson
1fbbe61546 mbcollection: human-readable MB exceptions
Fixes #107 by wrapping the API invocation function with exception handlers.
2013-02-28 10:43:02 -08:00
Adrian Sampson
698e54edbc fix bytes literals causing a Unidecode warning
This would trigger a warning in Unidecode when metadata was missing (which is
the only case when those empty-string literals are used). Closes #109, which
is a different fix for the same problem.
2013-02-28 10:14:21 -08:00
Adrian Sampson
d71737114a format None values as the empty string
Fix due to @pscn. Includes test. Closes #108.
2013-02-28 10:00:26 -08:00
Adrian Sampson
c31eabe95c convert: add missing syspath call (closes #106) 2013-02-27 10:30:24 -08:00
Adrian Sampson
c2e6150af5 changelog/thanks for #104 2013-02-27 10:21:14 -08:00
Adrian Sampson
f268aae17f add --flat option to import command (GC-202) 2013-02-26 20:59:52 -08:00
Adrian Sampson
706c4fb7f6 import.detail config option (GC-263) 2013-02-26 20:36:29 -08:00
Adrian Sampson
0045880f58 change option name to "languages"; docs (#102) 2013-02-26 14:38:34 -08:00
Adrian Sampson
4a35be5724 fix crash when RG fields set to null
In general, we convert None values to type-based nulls in packed fields just
as we do for normal fields.
2013-02-24 16:10:18 -08:00
Adrian Sampson
fa9d326d39 ignore "System Volume Information" directory
This is a control directory on Windows whose permissions are always set very
restrictively:
http://blogs.msdn.com/b/oldnewthing/archive/2003/11/20/55764.aspx
2013-02-24 15:53:47 -08:00
Adrian Sampson
c19fd0e0e6 proceed past os.listdir errors in sorted_walk 2013-02-24 15:47:09 -08:00
Adrian Sampson
d3a00ec443 don't crash when config file is empty 2013-02-21 11:03:22 -08:00
Adrian Sampson
c2a746562a fix Sound Check decode (GC-521)
Fixes the case when the gain number is negative.
2013-02-20 22:54:57 -08:00
Adrian Sampson
a1e89b879d echonest_tempo: warn on API error 2013-02-18 18:40:59 -08:00
Adrian Sampson
63564d84e7 echonest_tempo: sanitize newlines from input
The Echo Nest API confusingly says that the input is missing if it contains a
newline.
2013-02-18 18:34:31 -08:00
Adrian Sampson
6f2ec68ca8 version bump: 1.1b3 2013-02-17 15:02:32 -08:00
Adrian Sampson
7a0bfff00a summary paragraph for 1.1b2 2013-02-16 16:34:13 -08:00
Adrian Sampson
0366dc8184 fix "import -l logpath" CLI option (GC-518) 2013-02-16 14:58:53 -08:00
Adrian Sampson
d1e50da71f fetchart: remote_priority config option 2013-02-10 21:40:55 -08:00
Adrian Sampson
3e624ea884 original_date config option (GC-441) 2013-02-08 13:45:31 -08:00
Adrian Sampson
e0bb3b5cd0 original_{year,month,day,date} fields (GC-441) 2013-02-08 13:28:51 -08:00
Adrian Sampson
15a652ab73 docs/changelog: filename length detection (GC-461) 2013-02-08 12:57:31 -08:00
Adrian Sampson
b9cb3980c2 path_sep_replace config option
I also took this opportunity to move and rename util.santize_for_path to
library.format_for_path, which was long overdue.
2013-02-08 10:51:33 -08:00
Adrian Sampson
7a4c228c79 style tweaks & doc expansion (#98) 2013-02-07 23:35:27 -08:00
Tai Lee
baa5bc5a01 Add max_rec configuration options.
Allow users to apply a maximum recommendation to partial albums and albums
with differing track lengths/numbers.
2013-02-08 17:42:00 +11:00
Adrian Sampson
55770ae212 changelog & style tweaks for Sound Check (#97) 2013-02-07 15:12:10 -08:00
Adrian Sampson
0c29c52f8c changelog for #92 2013-02-05 11:36:27 -08:00
Adrian Sampson
5be50fbb38 echonest_tempo: skip when missing artist or title 2013-02-05 10:28:24 -08:00
Adrian Sampson
2b4a70227d correct changelog credits for @mrmachine 2013-02-05 10:15:39 -08:00
Adrian Sampson
07e1366fc6 changelog for #94 2013-02-05 09:57:13 -08:00
Adrian Sampson
d544c832c7 changelog, docs, and style tweaks for #93 2013-02-04 22:44:04 -08:00
Adrian Sampson
48194a128e changelog and docs for #89 2013-02-03 12:23:09 -08:00
Adrian Sampson
c706c1f15a changelog entry / tiny doc tweaks for #90 2013-02-03 10:31:15 -08:00
Adrian Sampson
4f7e738f82 changelog and doc fixes for #88 2013-02-02 12:56:08 -08:00
Adrian Sampson
50a89e790c both release and release group disambig (#87)
This joins the two strings with a comma if both are present.
2013-02-02 12:42:53 -08:00
Adrian Sampson
89f1ae302e changelog and partial reversion of #87
This pull request made two changes. This commit reverts one of them to make the
changes orthogonal.
2013-02-02 12:37:28 -08:00
Adrian Sampson
89689899c9 changelog note and indentation fix for #86 2013-02-02 12:27:42 -08:00
Adrian Sampson
44d195a119 suffix-based colorization for numeric value diffs 2013-02-02 12:24:05 -08:00
Adrian Sampson
d050211c2c length_diff_thresh moved to config
This was previously hard-coded as 2.0 seconds, which was way too low.
2013-02-02 12:07:58 -08:00
Adrian Sampson
3ef423b735 update changelog note for #82 2013-02-02 11:20:12 -08:00
Adrian Sampson
2ea190ceba better error message when using real tabs 2013-02-02 10:37:02 -08:00
Adrian Sampson
e850e1aab8 changelog note for #85 2013-02-02 08:23:52 -08:00
Adrian Sampson
8ae40e9945 changelog and style fix for #81 2013-01-31 16:25:02 -08:00
Adrian Sampson
63d939d1d3 windows: error when migrating .beetsconfig 2013-01-31 12:29:37 -08:00
Adrian Sampson
bba0051ee7 changelog & doc tweaks for smartplaylist (#80) 2013-01-31 10:07:18 -08:00
Adrian Sampson
199add3a4d changelog re. none_rec_action (#77) 2013-01-30 21:05:30 -08:00
Adrian Sampson
ee641e9b13 default_action config option, et cetera (#76)
- Partial matches are always downgraded to a "medium" match.
- The config option, now called "default_action", lets you choose what to do
  with "medium" matches.
- Expanded the "low" recommendation level to include cases with just one
  match.
2013-01-30 20:32:37 -08:00
Adrian Sampson
27be3ddae5 changelog note for #78 2013-01-30 19:32:12 -08:00
Adrian Sampson
a96e8ab3df changelog/docs for WMA support (#75) 2013-01-29 21:32:44 -08:00
Adrian Sampson
58dc7be0a7 docs for new plugin events (#79) 2013-01-29 20:59:02 -08:00
Adrian Sampson
37a7aedaae version bump: 1.1b2 2013-01-29 20:50:10 -08:00
Adrian Sampson
8c9ca36907 version bump and changelog summary for 1.1b1 2013-01-29 12:21:05 -08:00
Adrian Sampson
38dee5af0f silence Unidecode warning due to byte string info
--HG--
extra : source : 6a023b1f3ace0ae3177afb382d0eebcb445bec05
2013-01-29 11:30:31 -08:00
Adrian Sampson
7e84e7da57 add thanks to changelog note for #74 2013-01-22 21:04:56 -08:00
Adrian Sampson
0969749e5b cleanup, docs, and changelog for relative_to (#74) 2013-01-22 21:02:41 -08:00
Adrian Sampson
7779a5c6f5 replaygain: catch Unicode exc on Windows (GC-499)
(grafted from 89cee0e842b4e553790b0db7daaf2fd31d217e15)

--HG--
extra : source : 89cee0e842b4e553790b0db7daaf2fd31d217e15
2013-01-12 14:38:19 -08:00
Adrian Sampson
f207a3b72e backported lyrics fix 2013-01-11 14:55:31 -08:00
Adrian Sampson
9e6b1db02d configurable match thresholds (GC-290) 2013-01-11 14:46:15 -08:00
Adrian Sampson
c418e6d379 configurable MusicBrainz host/rate limit (GC-408) 2013-01-11 13:33:14 -08:00
Adrian Sampson
974929541f terminal_encoding config option (GC-472) 2013-01-11 13:07:57 -08:00
Adrian Sampson
d6c7cfa4e3 lyrics: replace apostrophes with ' (GC-498) 2013-01-11 10:51:22 -08:00
Adrian Sampson
f7bef39769 GH-72: use function bodies instead of special var 2013-01-05 17:48:00 -08:00
Adrian Sampson
14b5170aec GH-72: some cleanup and changelog note 2013-01-05 17:20:39 -08:00
Adrian Sampson
f127d8e18a merge scrub fix from master 2012-12-31 18:25:51 -08:00
Adrian Sampson
287d00179a scrub: fix Py27-style format string (GC-484) 2012-12-31 18:11:31 -08:00
Adrian Sampson
628f4816cd merge changelog note and tag from master release 2012-12-31 16:53:20 -08:00
Adrian Sampson
71fd8d5030 version numbers for 1.0rc2 release 2012-12-31 16:31:48 -08:00
Adrian Sampson
5d210f755c merge fix from master 2012-12-29 13:07:09 -08:00
Adrian Sampson
082932069f echonest_tempo: catch IO errors (GC-482) 2012-12-26 17:16:59 -08:00
Adrian Sampson
123189b393 default file locations
Due mostly to some improvements in Confit, we now have a reasonable way to
define the default filenames of auxiliary data files. These are relative to the
beets config directory (i.e., alongside config.yaml).
2012-12-23 18:01:21 -08:00
Adrian Sampson
51e9c519d4 plugin renames: fuzzy and random
Renamed fuzzy_search to fuzzy and rdm to random. These names should be easier
to remember since they are the same as the commands they provide.

--HG--
rename : beetsplug/fuzzy_search.py => beetsplug/fuzzy.py
rename : beetsplug/rdm.py => beetsplug/random.py
rename : docs/plugins/fuzzy_search.rst => docs/plugins/fuzzy.rst
rename : docs/plugins/rdm.rst => docs/plugins/random.rst
2012-12-23 14:46:20 -08:00
Adrian Sampson
6b000983c3 merge echonest_tempo fix from master 2012-12-23 14:34:08 -08:00
Adrian Sampson
1809de1500 GH-71: changelog note & retry limit 2012-12-21 23:10:30 -08:00
Adrian Sampson
2451571dbe version bump to "1.1b1" 2012-12-19 12:25:48 -08:00
Adrian Sampson
2023344019 Windows: fix relative paths in normpath()
The changes introduced in rc1 caused paths to be syspath-ified before they were
passed to os.path.abspath. The magic prefix caused them to be interpreted as
absolute paths even if they were relative. The fix is, in this *isolated*
case, to use Unicode but prefix-free paths in calls to the os.path.* functions.
Those functions need to act on Unicode objects but seem to be purely syntactic
-- nothing is tripped up by using long filenames without the magic prefix.
2012-12-19 12:19:23 -08:00
Adrian Sampson
0c49db0f11 fetchart: fix exception when source returns None 2012-12-17 23:22:45 -08:00
Adrian Sampson
6082f0162f changelog summary for 1.0rc1 2012-12-17 18:04:39 -08:00
Adrian Sampson
49ae56e455 embedart: changelog for GC-468 2012-12-11 13:53:02 -08:00
Adrian Sampson
98892945c2 don't crash when singleton-importing broken files 2012-12-08 12:10:06 -08:00
Adrian Sampson
3e9135ee7c syspath-ify call to pyacoustid (GC-464) 2012-12-07 14:49:11 -08:00
Adrian Sampson
128a881bb4 GH-69/GC-450: docs, changelog, simplification 2012-12-05 09:10:07 -08:00
Adrian Sampson
a8cf42d05b echonest_tempo: changelog + doc fixes + print fix 2012-12-02 16:25:45 -08:00
Adrian Sampson
9a4cda60cd autotag: use albumartist if available (GC-423) 2012-11-27 17:05:56 -08:00
Adrian Sampson
eef87c2189 truncation incorporates extension length (GC-461) 2012-11-27 16:54:50 -08:00
Adrian Sampson
953291f736 truncate bytes instead of unicode (GC-422) 2012-11-27 16:43:57 -08:00
Adrian Sampson
da3ffcbec3 version change: b16 is now 1.0rc1 2012-11-27 15:56:02 -08:00
Adrian Sampson
859268f707 decode Unicode arguments to import -L (GC-457) 2012-11-06 14:29:58 -08:00
Adrian Sampson
c569ddd412 human-readable mkdir error 2012-11-03 12:16:32 -07:00
Adrian Sampson
289287690e more helpful changelog about maxsize 2012-11-01 15:33:38 -07:00
Adrian Sampson
29c6f9c342 changelog and light style fixes for #64 2012-10-31 17:52:21 -07:00
Adrian Sampson
57e66d7b1a fetchart: sort image filenames (GC-452) 2012-10-25 18:02:22 -07:00
Adrian Sampson
1a94d9e4b7 warnings about using syspath with some utils
Also pertaining to #58: for most utility functions, paths should *not* be
`syspath`-ified. (This only occurs right before a path is sent to the OS.) In
fact, as @Wessie discovered, using the result of `syspath` with `ancestry` leads
to incorrect behavior. I checked and this should not currently happen anywhere,
but these docstring changes make that requirement explicit.
2012-10-21 14:27:40 -07:00
Adrian Sampson
91ad913399 #62: simplify list (and random) code
With the new centralized print_obj function, we can greatly simplify the code
for the list command. This necessitated a couple of additional tweaks:

- For performance reasons, print_obj can now take a compiled template. (There's
  still an issue with using the default/configured template, but we can cross
  that bridge later).
- When listing albums, $path now expands to the album's item dir. So the format
  string '$path' now exactly corresponds to passing the -p switch.

As an added bonus, we can now also reduce copypasta in the random plugin (which
behaves almost exactly the same as list).
2012-10-20 21:10:39 -07:00
Adrian Sampson
3952fbec62 docs & changelog for pervasive format config (#62)
This version of the (renamed) _print_obj function uses introspection to
determine whether we're printing an Album or an Item. It's like function
overloading for Python! 😁
2012-10-20 20:29:49 -07:00
Adrian Sampson
b9cc206093 changelog & cleanup for pull request #59 2012-10-20 16:57:56 -07:00
Adrian Sampson
b81ac1d6e0 fix crash when stdin comes from pipe w/o encoding
This allows, for example, "yes | beet convert".
2012-10-15 14:58:59 -07:00
Adrian Sampson
f2ab26d6a4 mbcollection: change chunk size to 200 releases 2012-10-14 20:35:03 -07:00
Adrian Sampson
244ffd71e2 fix "beet modify" for date fields (GC-449)
This is fixed by allowing MediaFiles to convert strings to integers on
assignment. An eventual complete fix will perform these type conversions in the
Item interface.
2012-10-14 20:27:13 -07:00
Adrian Sampson
526e82feaf move cpu_count to util module; credit @storrgie 2012-10-14 14:09:03 -07:00
Adrian Sampson
b9e2beddec replaygain: changelog & doc enhancements for GH-55 2012-10-12 22:42:08 -07:00
Adrian Sampson
d8433f977c convert: changelog thanks & doc enhancements 2012-10-12 22:11:07 -07:00
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