* Cleanup the "mbsubmit" plugin to remove a choice ("print tracks and skip")
and make the logic depend on the strength of the Recommendation.
* Add configuration options for the Recommendation threshold that triggers
the addition of the "Print tracks" choice and for the formatting string to
be used for printing the items.
* Include link to the official-ish MusicBrainz format page on the docstring.
In error reporting. May avoid the error in #1774, but it's hard to find out
exactly what the Python types of these arguments are from the GStreamer
documentation.
* Fixes for documentation of the prompt event (missing reserved letter, typos).
* Update sample mbsubmit plugin to conform to the new PromptChoice structure.
* Add "before_choose_candidate" unit tests (PromptChoicesTest), containing
tests for checking the addition of choices to ui.input_options (album and
singletons), conflict resolution, and callback handling (regular and with
return value).
* Simplify PromptChoice so "plugin" and "id" fields are removed, updating the
loops and the rest of the code to reflect this change.
* Solve short letter conflicts by keeping one of the choices and removing the
rest, instead of by raising an Exception.
* Misc cleanups as suggested on #1758 discussion.
* Update mbsubmit plugin in order to use PromptChoice instead of the previous
ExtraChoice.
* Remove comments as they are now present on the pull request and documentation.
* Rename "ExtraChoice" to "PromptChoice", and add an attribute for the short
letter used by the choice (short).
* Add TerminalImportSession._get_plugin_options() for isolating the sending
of the event and the processing of the returned values (flattening, check for
letter conflicts).
* Remove unnecessary TODO lines and other style cleanups.
* Add example "mbsubmit" plugin, which allows the user to print the tracklist
of an unmatched album during the import process in a format understood by
MusicBrainz track parser.
* The plugin listens for the before_choose_candidate event and appends the
track printing options depending on the task status (candidates and
recommendation).
* Add "before_choose_candidate" event, sent to the plugins during
TerminalImportSession.choose_match(). This event allows plugins to append
additional choice to the user prompt during importer.
* The event is sent on the main loop of choose_match(), with session and task
parameters. The plugins are responsible for checking the task status in order
to append choices in a sensible way.
* Add "ExtraChoice" namedtuple to improve readability and encapsulate the
concept of a single extra choice.