Commit graph

534 commits

Author SHA1 Message Date
Bruno Cauet
8165dec985 Delete manual formattings of album & item 2015-01-25 21:32:22 +01:00
Bruno Cauet
62cd6e37aa Update ui.print_obj_(), add ui.format_()
Code now relies on `format()` for items and albums displaying/logging.
`ui.print_()` calls `unicode()` or `str()` on the strings so for most
usages calling `ui.print_(obj)` replaces `ui.print_(obj, lib, None)`.

Where there is a special format `ui.print_(format(obj, fmt))` is fine,
but when `fmt` can be None then one has to call
`ui.print_(ui.format_(obj, fmt))` -- which is what `ui.print_obj` now
does.
2015-01-25 21:07:03 +01:00
Bruno Cauet
f263935a51 Prevent shlex.split from returning strange encodings 2015-01-20 16:57:20 +01:00
Bruno Cauet
8dd7bf0f0b unicode_literals in beets.ui and beets.autotag
Well, that was easy!
2015-01-19 17:18:50 +01:00
Bruno Cauet
90b388b775 Use __future__ imports but unicode_literals everywhere
Include import of __future__ features division, absolute_imports and
print_function everywhere. Don't add unicode_literals yet for it is
harder to convert.

Goal is smoothing the transition to python 3.
2015-01-19 12:25:16 +01:00
Adrian Sampson
6f2d9845b5 Add an assertion for summarize_items (#1232) 2015-01-17 14:20:53 -08:00
Bruno Cauet
8418fb6083 Use a standard logger for the import log
The import log now relies on a standard logger, named 'beets.importer'
and configured upon initialization of the import session.
2015-01-12 21:47:44 +01:00
Frederik “Freso” S. Olesen
4b1f0cbf48 Happy 2015. ;)
See 7a410f636b

Command used:

    git grep -l 'Copyright 201'|xargs sed -i -E 's/Copyright 201./Copyright 2015/'`
2015-01-08 21:37:09 +01:00
Adrian Sampson
f6dc2cd81c Merge pull request #1198 from brunal/logging
Lazy {}-style logging everywhere
2015-01-05 17:34:30 -08:00
Bruno Cauet
30f158a95e Move "from beets import logging" statements
Move the import next to other beets-related imports
2015-01-05 10:05:21 +01:00
Adrian Sampson
e13e7ed727 config -e: Parse arguments in $EDITOR (fix #1200) 2015-01-04 17:46:08 -08:00
Adrian Sampson
1f3fc60bad Add missing space (fix #1199) 2015-01-04 17:35:16 -08:00
Bruno Cauet
f5c5666729 Attain pep8-cleanliness
No more E12 or E501
2015-01-04 17:29:31 +01:00
Bruno Cauet
7df8bef8b7 Update logging imports: logging → beets.logging 2015-01-04 17:02:27 +01:00
Bruno Cauet
e75f9a703d Convert beets core to lazy logging 2015-01-04 17:02:27 +01:00
Adrian Sampson
a892128996 Changelog and rewording for import --pretend
(#1162)
2014-12-23 09:10:28 -05:00
Malte Ried
440fe9a2ea Reduced the count of accesses of the pretend config option. Now it's only one place where it is read.
Changed the output to use the log system rather than print_.
2014-12-21 21:37:44 +01:00
Malte Ried
2db346388a Added option --pretend to only print the filenames of files to import without importing them 2014-12-21 15:56:56 +01:00
Thomas Scholtes
a5f097a883 Allow invalid configuration files to be edited
Fixes #1123.
2014-12-01 13:02:21 +01:00
Adrian Sampson
14b150090e Fix #1124: avoid crash when deleting fields 2014-11-30 11:42:40 -08:00
Adrian Sampson
2343387a68 beet stats output clarification (#1052)
Explicitly say that size calculation is approximate.
2014-11-01 12:46:14 -07:00
Adrian Sampson
44ff3f782a Remove prefix diff highlighting
This was well-intentioned but ended up being more confusing than it was worth.
It's always confused me when one digit gets un-highlighted in one of these
displays. The straw that broke the camel's back was when I got a "#1 -> #16"
change where the numeral "1" was un-highlighted. To fix this right would be
way more trouble than it's worth; I'm glad to be rid of this detail.

Conflicts:
	docs/changelog.rst
2014-10-04 16:47:00 -07:00
Adrian Sampson
2795a01e28 Default sort configuration is global (#953)
It would be nice to cache the Sort object so we didn't have to re-parse this
every time...
2014-09-16 14:34:21 -07:00
Adrian Sampson
72436644a6 Merge pull request #909 from arogl/master
Clean up of logging messages as described here
2014-09-14 13:14:35 -07:00
Thomas Scholtes
1613a199fa Combine try_write() and store() as try_sync()
This makes sure we store the updated file `mtime`. By providing the
same interface on `Album` and `item` we can also reduce some code
duplication in the `modify` command.
2014-09-14 14:44:32 +02:00
e5e4eaeacd39c5cfba4d7c852c48277ae50331e6
d3386df056 Merge remote-tracking branch 'origin/master'
Conflicts:
	beets/importer.py
	beets/ui/commands.py
	beetsplug/lyrics.py
2014-09-09 12:05:38 +10:00
e5e4eaeacd39c5cfba4d7c852c48277ae50331e6
816e4fb152 clean up after rebase 2014-09-09 11:53:44 +10:00
e5e4eaeacd39c5cfba4d7c852c48277ae50331e6
2100dab379 displayable_path clean up error 2014-09-09 11:31:45 +10:00
e5e4eaeacd39c5cfba4d7c852c48277ae50331e6
65de93941d flake8 cleanup
Cleanup after cleanup
2014-09-09 11:28:43 +10:00
e5e4eaeacd39c5cfba4d7c852c48277ae50331e6
66aee8094f Clean up of logging messages as described here
All logging now prefers the ' (single quote) over the " (double quote)

https://github.com/sampsyo/beets/wiki/Hacking
2014-09-09 11:28:43 +10:00
Adrian Sampson
b227aabfee Merge pull request #917 from geigerzaehler/stats
Improvements for stats command
2014-08-25 08:44:55 -07:00
Thomas Scholtes
6d67365df6 PEP8 fix 2014-08-25 17:17:02 +02:00
Thomas Scholtes
9f4b3b811d Refactor modfiy command and tests
Parsing of the modify command line is handled by `modfiy_parse_args()`.
Test use the command line.
2014-08-25 15:46:57 +02:00
Thomas Scholtes
2d2c84b505 Stats only count albums in the database
Items might have the `album` field set without belonging to an album in
the beets database. We only count the albums that are represented in
the database.
2014-08-25 11:34:40 +02:00
Thomas Scholtes
9e2b6d0253 Show album artist stats
See #855
2014-08-25 11:33:10 +02:00
e5e4eaeacd39c5cfba4d7c852c48277ae50331e6
5f5ee40172 displayable_path clean up error 2014-08-23 12:17:24 +10:00
e5e4eaeacd39c5cfba4d7c852c48277ae50331e6
89c5448ef5 flake8 cleanup
Cleanup after cleanup
2014-08-23 11:26:44 +10:00
e5e4eaeacd39c5cfba4d7c852c48277ae50331e6
bd3f1ca5c0 Merge branch 'master' of https://github.com/sampsyo/beets 2014-08-23 11:00:23 +10:00
e5e4eaeacd39c5cfba4d7c852c48277ae50331e6
a8daba2a75 Clean up of logging messages as described here
All logging now prefers the ' (single quote) over the " (double quote)

https://github.com/sampsyo/beets/wiki/Hacking
2014-08-23 09:26:34 +10:00
Adrian Sampson
eb579cf14b Merge pull request #823 from PierreRust/sortquery
Sorting support in beets query mecanism (dbcore)
2014-08-22 14:59:44 -07:00
Harry Khanna
4944686090 Change flag from --always to --force for symmetry with other beets commands 2014-08-19 14:07:17 -04:00
Harry Khanna
2ffd3e287f Add --always flag for write subcommand
Forces a write of tags to file even if the file's tags match the database.
This is useful to force plugins that respond to write (e.g., Scrub and Zero) to run on those tags.
This may also make the TODO comment in zero.py less important since creates a way to manually run the zero plugin on a file imported as-is.
2014-08-19 13:43:16 -04:00
Adrian Sampson
a45415fd77 Duplicate summaries work with singletons (#900) 2014-08-18 22:07:50 -07:00
Adrian Sampson
0ec285f96c Formatting and style refinements for #900 2014-08-18 21:37:13 -07:00
Howard Jones
4aa783f09d Final reshuffle to put summarize_items in beets.ui
Also improved duration display.
2014-08-18 12:21:45 +01:00
Howard Jones
3ec7426a35 Pass found duplicates between task and session 2014-08-18 10:35:01 +01:00
Howard Jones
a15cf2b001 Moved summarize_items to utils. Cleaned up output
Output now uses K for bitrate.
summarize function now in util
2014-08-18 08:57:59 +01:00
Howard Jones
4bf07aa8a6 Changed to not require collections
collections library is only available in Py 2.7+
2014-08-17 19:11:01 +01:00
Howard Jones
af347d957e Basic summary information for duplicates
Added a one-line summary of each album (in lib, and import target) so
you can easily tell if (for example) you are about to overwrite your
FLAC copy with a low-bitrate mp3 from somewhere else.
2014-08-17 18:53:02 +01:00
Thomas Scholtes
dc53f7907a Fix completion script 2014-07-08 17:52:46 +02:00
Thomas Scholtes
d2e848f75c Refactor help command and cli parsers
* Control flow and implementation of help command is now
  similar to the other commands.
* Simplifies and flattens some code and removes unused method.
* Makes SubcommandOptionParser agnostic of Subcommand.parser.
2014-07-08 17:10:39 +02:00
Pierre Rust
ebd2da14dc Fix error on default sort configuration
Fix crash when using several criteria for default sort in the
configuration file.
2014-06-15 22:32:25 +02:00
Pierre Rust
86c34f8740 Moves default sort specification from code to conf
Default sort order can be set in configuration file with the
`sort_album` and `sort_item` keys.
2014-06-15 22:32:25 +02:00
Heinz Wiesinger
d36b54cd56 Make beet write not show item names for items without changes. 2014-06-09 13:27:10 +02:00
Adrian Sampson
30c5f4ddf4 Changelog for #810 (fix #320) 2014-06-08 17:27:06 +01:00
Bruno Cauet
f40517b09e Show file path when deleting items
Using `beets remove -d <target>" now shows the file path when asking for
confirmation.

The format string is '$path - $title'.

Fix issue #320.
2014-06-08 17:22:15 +02:00
Adrian Sampson
e9355f336b Rename remove_duplicates and do_remove_duplicates 2014-04-26 20:21:20 -07:00
Thomas Scholtes
8fc9f3463f Add more paths to search for bash completion 2014-04-17 13:39:06 +02:00
Thomas Scholtes
151b451c33 Add more paths to search for bash completion 2014-04-16 23:53:45 +02:00
Adrian Sampson
033cf9ec21 spell check 2014-04-15 21:17:23 -07:00
Adrian Sampson
4e227d66a3 tiny indentation fix 2014-04-14 12:34:01 -07:00
Adrian Sampson
fcb55145e6 standardize placement of command setup
This groups together all of the optparse setup calls separately from the
functions. This comes at the expense of showing the command-line options above
the code that interprets them.

Making me wish for a more declarative CLI setup style...
2014-04-14 12:11:49 -07:00
Adrian Sampson
03bea61ac0 commands.py is flake8-clean 2014-04-14 10:53:32 -07:00
Adrian Sampson
fc143ecd54 changelog & style tweaks for #686 2014-04-14 10:43:09 -07:00
Mook
12a5215afa beet modify: Add simple argument parsing tests. 2014-04-13 21:24:45 -07:00
Mook
52d0c19fb7 beet modify: Treat arguments with : before = as queries, not modifications
This can be useful if the value being queried contains an equal sign.
2014-04-13 19:41:22 -07:00
Thomas Scholtes
1df6303222 Notify user when moving files 2014-04-13 13:18:41 +02:00
Adrian Sampson
4c9daa12cc Merge pull request #676 from geigerzaehler/item-try-write
Add item.try_write() to log errors
2014-04-10 11:33:06 -07:00
Thomas Scholtes
5d753b4f38 Remove ALBUM_* constants. Closes #650 2014-04-10 17:44:39 +02:00
Thomas Scholtes
f6f974ec87 Remove ITEM_* constants
We might consider renaming `Item._fields` to `Item.fields` since other parts of
beets use it as a replacement for `ITEM_KEYS`.

See also #650.
2014-04-10 17:11:21 +02:00
Thomas Scholtes
c3ea1ded30 Add item.try_write() to log errors
Many commands and plugins use `item.write()` to update tags. Since the success
of the call is not critical to the functionality of most consumers we want to
catch any exceptions, log an error and continue with our task. The new method
encapsulates this logic.

This fixes #675.
2014-04-10 15:26:05 +02:00
Adrian Sampson
323be89d4d fold OrderedEnum into autotag module
This puts the OrderedEnum generic class next to where it is actually used. It
also refers to the recipe it is taken from on docs.python.org. I also took the
opportunity to give this a capitalized name (since it's a proper type).
2014-04-08 17:10:50 -07:00
Adrian Sampson
b3f31cbc0a rename Item.media_fields to _media_fields
Following the convention of the other field sets and such. This helps avoid
any confusion with user-specified fields (although it's unlikely people will
want to name a flexible field "media_fields" :).
2014-04-07 20:21:20 -07:00
Adrian Sampson
c6451cfc50 write: fix undefined reference to MediaFile 2014-04-07 19:44:21 -07:00
Adrian Sampson
28556a0c37 catch ReadError when calling item.read() 2014-04-07 19:42:54 -07:00
Thomas Scholtes
55e5381bbd Merge branch 'extendable-mediafile'
Conflicts:
	beets/library.py
	docs/dev/plugins.rst
2014-04-07 23:49:29 +02:00
Thomas Scholtes
4b1a1e3d65 Remove ITEM_KEYS_WRITABLE 2014-04-04 00:03:40 +02:00
Thomas Scholtes
3c7dd13b72 Add Item.media_fields
This new property controls which fields to read from a media file.
2014-04-03 23:35:33 +02:00
Adrian Sampson
ac99622ec7 Merge branch 'single-files'
Conflicts:
	docs/changelog.rst
2014-04-03 13:20:53 -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
05ebd6d28e FileOperationError: also include the file path
This makes the errors fully self-descriptive, which simplifies logging them as
errors (you just have to `log.error(exc)` to get a reasonable message). We
also now handle these at the top level in case someone forgets to add a
handler. But in this case, we also send the full traceback to the debug log.
2014-03-25 22:41:28 -07:00
Thomas Scholtes
574903e986 Add FileOperationError and handling in item.write() 2014-03-24 14:22:27 +01:00
Thomas Scholtes
85b16e4e3d Remove unused code 2014-03-22 13:25:25 +01:00
Thomas Scholtes
a399f294e8 Handle exceptions in item.write and use plugin abort 2014-03-22 13:25:25 +01:00
Thomas Scholtes
a744e8ea59 Fix missing import 2014-03-22 13:25:25 +01:00
Thomas Scholtes
ddf5233daa Add _item_write method and remove duplicate code 2014-03-22 13:25:25 +01:00
Thomas Scholtes
13cbcad581 Unify exception handling of item.write() in UI
Don’t abort the program when there is something wrong with the filesystem.
2014-03-22 13:25:25 +01:00
Thomas Scholtes
002d360039 Show only changed and writable values with the write command 2014-03-10 23:57:19 +01:00
Adrian Sampson
c325e1645f hide the completion command from help (#553) 2014-03-07 15:07:28 -08:00
Adrian Sampson
606444049e tiny style cleanups in built-in commands 2014-03-07 14:48:47 -08:00
Thomas Scholtes
8a5a2fcebf Merge branch 'completion'
Conflicts:
	beets/ui/commands.py
	docs/reference/cli.rst
2014-03-02 23:06:05 +01:00
Thomas Scholtes
210592a06b Use _package path instead of resource_string 2014-03-02 21:11:57 +01:00
Thomas Scholtes
c51e541ae2 Move completion_script into commands module 2014-03-02 19:59:35 +01:00
Thomas Scholtes
44c843793b Add completion of plugin commands 2014-03-02 16:18:16 +01:00
Adrian Sampson
86bf8b65ba beet config (#552): show non-existent user path
This makes sure to print out the user's configuration path location even if no
user config file exists. (This makes "BEETSCONFIG=xxx beet config -p" behave
as expected, for instance.) It's a little hacky. Does the approach make sense
to you, @geigerzaehler?
2014-02-28 14:31:38 -08:00
Adrian Sampson
3b2d51e018 backport YAML dumping from Confit (#552)
We actually added more full-blown YAML dumping to the Confit library a while
back but it looks like it never made it into beets. It offers a few benefits
over the hand-rolled flattening that the `config` command was previously
using, including printing ordered dicts in the right order. But it also
appears to have broken logic when attempting to hide defaults. I'll fix this
right quick.
2014-02-28 09:49:29 -08:00
Thomas Scholtes
5c7104adb0 Print warning last 2014-02-28 17:15:04 +01:00
Thomas Scholtes
c345df9155 Merge branch 'config_command'
Conflicts:
	beets/ui/commands.py
	docs/reference/config.rst
	test/_common.py
2014-02-28 16:50:06 +01:00
Thomas Scholtes
74cb897f79 Add warning if completion package not found 2014-02-27 18:16:02 +01:00
Thomas Scholtes
fa6f7622e0 Move completion into beets.ui package and use pkg_resources 2014-02-23 22:16:59 +01:00
Adrian Sampson
1253cb695d move show_model_changes to ui package
This makes it more naturally reusable for plugins.
2014-02-22 15:06:16 -08:00
Adrian Sampson
645279e022 remove old _showdiff
Totally replaced now, including tests! Woohoo.
2014-02-22 14:52:33 -08:00
Adrian Sampson
ace34a8654 _show_model_changes: silence by default
This lets the first line of output be suppressed (as it was previously in
update and write) when no changes at all need to be printed.
2014-02-22 14:32:34 -08:00
Adrian Sampson
1413a842f7 update: restore "deleted" indication 2014-02-22 00:51:05 -05:00
Adrian Sampson
e42fcd973c use _show_model_change in update 2014-02-22 00:41:28 -05:00
Adrian Sampson
f6c19adc55 use _show_model_changes for write command 2014-02-22 00:24:43 -05:00
Adrian Sampson
8303c71b38 robust difference display for modify
This new alternative to _showdiff takes care of formatting and is better at
highlighting differences for non-string fields. This takes care of the issue
where "True -> False" would have everything but the "e" highlighted.
2014-02-22 00:14:18 -05:00
Thomas Scholtes
14ece207c9 Add completion command
The command prints a shell script that provides completion for the `beet`
command. To test it run `eval "$(beet completion)"` in your shell.

I also included some crude testing for this. The `test/test_completion.sh`
script runs tests in a shell and exit with a non-zero status code if the tests
fail. It assumes that the completion script is already loaded in the executing
shell.

As of now the completion only works for bash 4.1 and newer.
2014-02-20 01:15:03 +01:00
Thomas Scholtes
c8e32f6bef Add config command 2014-02-18 20:56:08 +01: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
be31ac683a Model._parse() class method 2014-02-13 21:29:17 -08:00
Adrian Sampson
b1d70eee39 modify: remove special parsing logic
This could be nicer, but at least we now use standard type-based parsing.
2014-02-13 21:22:23 -08:00
Adrian Sampson
cb783d11c3 style and changelog for #525 2014-02-04 23:19:34 -08:00
Bruno Tournay
1f46ff4604 In beet modify: don't ask for confirmation if there is nothing to do 2014-02-03 22:17:57 +01:00
Thomas Scholtes
6a872ae560 Add --group-albums cli option 2014-02-01 15:36:11 +01:00
Thomas Scholtes
736835ce72 Rename as aLbums option (#518) 2014-02-01 12:56:17 +01:00
Adrian Sampson
5a35d93b22 tiny option-choosing fixes for #518
* 'L' check needs to be lower-case
* letter for 'More candidates' is M, not C
2014-01-31 16:57:07 -08:00
Thomas Scholtes
af522e2416 Use L as shortcut 2014-01-28 23:37:05 +01:00
Thomas Scholtes
d12a4b20da Import multiple albums from single directory
If a directory contains multiple albums we can select the ALBUMS action to group
the tracks by album artist and album name and import those seperately.
2014-01-28 23:22:00 +01:00
Adrian Sampson
8ca997bd36 avoid repeating diff check, use changed set (#511)
This way, _showdiff returns the information that _different used to provide
(since _showdiff needs to calculate it anyway). Using a `changed` set also
makes it easier to avoid unnecessary work.
2014-01-28 09:46:53 -08:00
Bruno Tournay
68bb0ca5ee Removed duplicated code: modified showdiff() so it uses also different() 2014-01-28 14:21:45 +01:00
Bruno Tournay
e7c8b16480 Removed dont_write_if_unchanged config option: now files tags are never updated unless db tags are changed (with beet modify) 2014-01-28 14:00:51 +01:00
Bruno Tournay
0889052831 Added option for not writing tags to file, when tags in db are not modified when running beet modify 2014-01-27 22:05:55 +01:00
Thomas Scholtes
1f53b658bb Use default beets logger 2014-01-20 19:25:55 +01:00
Adrian Sampson
a9faa9bf74 restore correct formatting of paths
- don't sanitize paths (this is already done separately)
- album.path (or album['path']) is now an alias for album.item_dir(), which
  restores the formatting of $path in templates
2013-12-25 00:00:12 -08:00
Adrian Sampson
314438b8fa slightly simpler "write" command (#328, #448) 2013-11-25 15:26:11 -08:00
Heinz Wiesinger
d1a7408ecf Add raw version of a write command. 2013-11-06 21:39:12 +01:00
Adrian Sampson
733c633674 clean up some string formatting 2013-10-06 10:07:28 -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
25b77b1518 per_disc_numbering: fix tracktotal (close #163) 2013-09-21 19:12:18 -07:00
Adrian Sampson
22d5e564c6 move move method to model objects 2013-09-16 22:12:26 -07:00
Adrian Sampson
76b1ee434e move remove method to model objects
--HG--
extra : amend_source : 31d3ccbdde816b82bb5ec943ecb870e0df699dd0
2013-09-16 21:30:55 -07:00
Adrian Sampson
267f5a9be1 link to new FAQ location 2013-09-16 20:17:03 -07:00
Adrian Sampson
c7fe017752 remove Library.{move,store} methods
These methods are now provided by LibModel, which makes dealing with items and
albums symmetric.
2013-08-21 15:34:45 -07:00
Adrian Sampson
deef7f9d20 a few more necessary album.store()s 2013-08-21 11:23:09 -07:00
Adrian Sampson
6677cea036 fix uses of item.dirty and item.record 2013-08-21 10:57:52 -07:00
Adrian Sampson
276ce14dd2 flexattrs work for Albums
A second base class, LibModel, maintains a reference to the Library and should
take care of database-related tasks like load and store. This is the beginning
of the end of the terrible incongruity between Item and Album objects (only
the latter had a library reference). More refactoring to come.

One large side effect: Album objects no longer automatically store
modifications. You have to call album.store(). Several places in the code
assume otherwise; they need cleaning up.

ResultIterator is now polymorphic (it takes a type parameter, which must be a
subclass of LibModel).
2013-08-16 18:36:30 -07:00
Adrian Sampson
1a0d9c507d drop flexattr namespaces
Namespaces were a worthy idea, but they added a lot of complexity to both the
library code itself and every client of the flexattrs interfaces. Getting rid
of them, and having one flat namespace of both traditional fields and
flexattrs, has one huge benefit: we can "promote" flexattrs to real attributes
(and vice versa) without code changes in every client.

This frees us to have a somewhat less efficient implementation of flexattrs
because we have a smooth upgrade path for making attributes more efficient via
promotion.
2013-08-16 11:18:05 -07:00
Adrian Sampson
3b9b39e5c9 merge with master 2013-08-15 18:14:33 -07:00
Adrian Sampson
d32e13a63e show data URL for track matches
That should be the last one.
2013-06-12 16:42:15 -07:00
Adrian Sampson
829626d757 show penalties/disambig in track listing
This is the second step in bringing parity between the album and item
displays. Fortunately, we get to reuse most of the code.
2013-06-12 16:39:43 -07:00
Adrian Sampson
94aebd6bca show penalties and disambig for tracks
This makes the UI for track match display match that for album display.
2013-06-12 16:31:42 -07:00
Adrian Sampson
7983c94ef8 add keys() method to Distance 2013-06-10 15:40:51 -07:00
Adrian Sampson
c818663539 replace Distance.sorted() with .items()
This is an effort to make the distance object feel slightly more dict-like.
The name changed and order of tuples is reversed: we now yield (key, value)
instead of (value, key), which I think is a little more intuitive.
2013-06-10 15:31:25 -07: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
Tai Lee
ea1becfea1 Add Distance.__iter__() and Distance.__len__(), for convenience. 2013-06-06 09:51:17 +10: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
461c3c047c Colour benign track index changes in light gray, consistent with non-penalty supplementary information. 2013-06-03 00:46:40 +10:00