Commit graph

406 commits

Author SHA1 Message Date
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