Commit graph

6487 commits

Author SHA1 Message Date
Tai Lee
e040ad5b21 Display hidden penalties (artist, ID) in red instead of light grey on track list.
It's a impacting the similarity, so it should probably be a warning
colour for consistency.
2013-05-25 02:13:37 +10:00
Tai Lee
1a4dfa0c07 Fix tests. 2013-05-25 01:58:08 +10: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
835a3c2a73 Improved parsing of Discogs' position field.
Some albums have a single disc with positions like I, II, III, IV, etc.
Previously beets thought each track on these albums was a new medium.

Now we assume that if there is no explicit medium index and the ordinal
of an alpha medium does not appear to be sequential (e.g. A, B, C) that
the medium is actually the medium index.
2013-05-25 01:36:12 +10:00
Tai Lee
4c06c96630 Extract disc titles from Discogs' "index tracks". 2013-05-25 01:32:06 +10:00
Tai Lee
891efaeee1 Fix a bug where track number could be half red and half yellow. 2013-05-25 01:28:29 +10:00
Tai Lee
c99280ea95 Improved display of missing and unmatched tracks.
Display similar title lines for missing and unmatched tracks, to
separate them from matched tracks. When media numbers or titles are
shown, it looks like missing tracks are grouped under the last media.

With missing and unmatched tracks grouped under a heading now, we don't
need to display "missing track" or "unmatched track" on every line,
making it easier to read the track titles.

Change the prefix from " * " (same as matched tracks) to " ! " for
missing and " ? " for unmatched tracks.

Consistently format track index for both missing and unmatched tracks.
Previously we were omitting the # for missing tracks (compared to
matched tracks), and we were just showing the index (no # or media
number) for unmatched tracks.

Also display track length, if available.
2013-05-25 01:26:06 +10:00
Tai Lee
b46e905a9c Display disc/media number and title (if available) in track list.
This necessitated a slight tweaking of the line printing code so that
the " * " prefix is not hard coded for all lines. The prefix is now
included in the `lhs` part of lines that actually need it, and this
allows us to alter or omit the prefix for individual lines.
2013-05-25 01:17:23 +10:00
Tai Lee
0c608a2e19 Display partial match text before source text. It's a warning with penalty, so probably more important than the data source. 2013-05-25 01:04:13 +10:00
Tai Lee
ceec9afb60 Use turquoise instead of yellow for data source. It's not a warning or penalty, and is easier to distinguish from the partial match string. 2013-05-25 01:03:01 +10:00
Tai Lee
dc7e98fd22 extra_items and extra_tracks on AlbumInfo are now lists, sorted by track index and title. 2013-05-25 00:44:23 +10:00
Tai Lee
7f068a8c03 Add AlbumInfo.data_url property, populate it for Discogs matches and display it when it is non-empty.
Makes it easier for people to find the best Discogs (or other) match
and import it to Music Brainz using a grease monkey or similar script.
2013-05-24 22:50:14 +10:00
Tai Lee
1ad5d9eee1 Reverse [78a4026a2c].
If a file already has a track id, we should expect the best match album
to have a track with the same ID. Treat a missing ID the same as an
incorrect ID.
2013-05-24 16:41:32 +10:00
Tai Lee
f5557a74d7 Update intersecting max_rec and discogs docs. 2013-05-24 15:01:19 +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
Tai Lee
1f7a782c01 Display source in release listing (yellow), if other than MusicBrainz. 2013-05-24 13:26:06 +10:00
mrmachine
22e895df83 Merge pull request #284 from mrmachine/ui-improvements
UI improvements and consistency. Colorisation, indentation, position by importance, and highlight benign changes.

1. Consistently colorise parenthesis surrounding colorised text that is conditional (doesn't always appear) so that it stand out more. This includes the album info data source (when it's not MusicBrainz), the album disambiguation (sometimes there is none), and the partial match message.

2. Indent the album title when there isn't a change. Makes it stand out more from the file path(s) above and info line below, and is consistent with the indentation when there is an album or artist change.

3. When listing releases, colorise album disambiguation in light gray to distinguish it more clearly from the album title. Light gray seems like a good colour because it is subtle, and disambiguation is supplementary information (not green/success, red/error or yellow/warning).

4. Also when listing releases, display similarity before partial message and disambiguation last. This is in order of importance, and also similarity is always present while the others are conditional, and finally it is often the case where the album title is the same and only the disambiguation is different. Using this order keeps things lined up in this case and easier to visually compare similarity and disambiguation text.

5. Colorise benign track index changes (to/from per disc numbering) in yellow, without applying a match penalty. We should still display these because even though the track number is still correct/equivalent, beets will apply a change if the new tags are applied.

6. Don't display source unless it's not MusicBrainz. By default beets will only find matches in the MusicBrainz database. Only if a plugin is enabled can a different source be used, so not everybody needs to see this all the time.
2013-05-23 16:04:52 -07:00
Tai Lee
fd20e419d6 Display constant data first (similarity) followed by optional data (partial match, disambiguation). Use consistent and colorized parenthesis for optional data. 2013-05-23 17:58:04 +10:00
Tai Lee
e12093e46c Display each part of info line in parenthesis. Source and disambiguation info are conditional. 2013-05-23 17:58:04 +10:00
Tai Lee
2420c3de66 Colorize parenthesis around partial match message. 2013-05-23 17:58:04 +10:00
Tai Lee
1c02d98e0e No penalty for track index changes to/from per disc numbering. 2013-05-23 17:58:04 +10:00
Tai Lee
7672fafc7e Colorize benign track index changes (to/from per disc numbering) in yellow. 2013-05-23 17:58:04 +10:00
Tai Lee
a2942895cc Display album ambiguation on info line (after similarity and source). Colorise disambiguation light grey for subtle distinction from album text. 2013-05-23 17:58:03 +10:00
Tai Lee
d1548c1178 Indent album title and artist when there are no changes for consistency with when there are (and easier to read?) 2013-05-23 17:58:03 +10:00
Tai Lee
2d04285ebc Don't colorise the "()" around partial match text. For consistency (and a little easier to read?) 2013-05-23 17:58:03 +10:00
Tai Lee
2fda231004 Abstract method to determine if track number has changed.
This is a little more accurate than the previous method (check if track
is in index or medium_index) by looking at the `per_disc_numbering`
setting and comparing the index or medium index accordingly.

It's also a little more accurate in the display output by diffing the
combined `disc-track` to `medium-medium_index` (if using per disc
numbering) and intelligently colorizing the either the whole track
number or just the suffix.
2013-05-23 17:58:03 +10:00
Adrian Sampson
26682f9168 docs/changelog for convert paths config (#285) 2013-05-22 15:00:53 -07:00
Adrian Sampson
418bf9d8aa Merge pull request #285 from duailibe/convert_path
Different paths for convert
2013-05-22 14:54:29 -07:00
Lucas Duailibe
1e0290354c fix some debug code 2013-05-22 14:11:55 -03:00
Adrian Sampson
89ce671bdd remove beets==dev URL
This is going away with PEP 438.
2013-05-22 09:45:43 -07:00
Lucas Duailibe
e952e37c74 docs for the convert pathformat configuration 2013-05-22 11:12:32 -03:00
Lucas Duailibe
76e310d811 different paths for convert
the paths configuration for converted files can be different from the importer
closes #232
2013-05-22 11:03:00 -03:00
Adrian Sampson
78a4026a2c don't penalize Discogs matches for lacking MBIDs
This removes the distance component for MBIDs for matches that don't have
MBIDs. (Previously, when importing an album that already has MBIDs, Discogs
would be unfairly penalized.)
2013-05-21 18:07:30 -07:00
Adrian Sampson
06887a8cef discogs: expand docs ever so slightly 2013-05-21 18:03:03 -07:00
Adrian Sampson
27071a6e38 discogs: tweak colorization & installation docs
I thought having "MusicBrainz" colored green was a little distracting since
it's the common case (and universal without the discogs plugin), so this just
makes it neutral-color in that case.
2013-05-21 17:59:17 -07:00
Adrian Sampson
a26291c4fe only IOErrors are IOErrors 2013-05-21 17:46:30 -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
a5bafbffbb Merge pull request #283 from mrmachine/imenem-discogs-search
Add `discogs` plugin, which extends the autotagger to include results from the discogs database.
2013-05-21 17:35:13 -07:00
Adrian Sampson
bf78751090 human-readable errors in read() and write() 2013-05-21 15:58:22 -07:00
Tai Lee
dde4bfab8c Update signature for item_candidates() in chroma plugin. 2013-05-22 08:10:20 +10: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
e1f75e8e91 travis: retry package installation
http://about.travis-ci.org/blog/2013-05-20-network-timeouts-build-retries/
2013-05-20 09:40:05 -07:00
Adrian Sampson
f3962e6275 link to the advanced guide from "getting started" 2013-05-19 17:43:10 -07:00
Adrian Sampson
45baa6efe1 first stab at "advanced guide" 2013-05-19 17:35:23 -07:00
Adrian Sampson
6f2c1d81bd random -e (#263): fix some short responses
This slight modification to the selection algorithm avoids the situation in
which too many objects are chosen for a given artist and fewer than N objects
are eventually returned. We do this by implementing "selection without
replacement" literally: we choose objects one at a time and pop them from the
population when they are selected.
2013-05-19 11:00:52 -07:00
Adrian Sampson
90b4092e4f changelog & docs typo fixes for #263 2013-05-19 10:44:35 -07:00