diff --git a/beets/autotag/mb.py b/beets/autotag/mb.py index 78f4cba7d..6889eeaf6 100644 --- a/beets/autotag/mb.py +++ b/beets/autotag/mb.py @@ -25,7 +25,6 @@ import beets from beets import util from beets import config -SEARCH_LIMIT = 5 VARIOUS_ARTISTS_ID = '89ad4ac3-39f7-470e-963a-56509c546377' BASE_URL = 'http://musicbrainz.org/' @@ -301,7 +300,7 @@ def album_info(release): return info -def match_album(artist, album, tracks=None, limit=SEARCH_LIMIT): +def match_album(artist, album, tracks=None): """Searches for a single album ("release" in MusicBrainz parlance) and returns an iterator over AlbumInfo objects. May raise a MusicBrainzAPIError. @@ -324,7 +323,8 @@ def match_album(artist, album, tracks=None, limit=SEARCH_LIMIT): return try: - res = musicbrainzngs.search_releases(limit=limit, **criteria) + res = musicbrainzngs.search_releases( + limit=config['musicbrainz']['searchlimit'].get(int), **criteria) except musicbrainzngs.MusicBrainzError as exc: raise MusicBrainzAPIError(exc, 'release search', criteria, traceback.format_exc()) @@ -336,7 +336,7 @@ def match_album(artist, album, tracks=None, limit=SEARCH_LIMIT): yield albuminfo -def match_track(artist, title, limit=SEARCH_LIMIT): +def match_track(artist, title): """Searches for a single track and returns an iterable of TrackInfo objects. May raise a MusicBrainzAPIError. """ @@ -349,7 +349,8 @@ def match_track(artist, title, limit=SEARCH_LIMIT): return try: - res = musicbrainzngs.search_recordings(limit=limit, **criteria) + res = musicbrainzngs.search_recordings( + limit=config['musicbrainz']['searchlimit'].get(int), **criteria) except musicbrainzngs.MusicBrainzError as exc: raise MusicBrainzAPIError(exc, 'recording search', criteria, traceback.format_exc()) diff --git a/beets/config_default.yaml b/beets/config_default.yaml index 78f16d051..1d3c4ad7a 100644 --- a/beets/config_default.yaml +++ b/beets/config_default.yaml @@ -71,6 +71,7 @@ musicbrainz: host: musicbrainz.org ratelimit: 1 ratelimit_interval: 1.0 + searchlimit: 5 match: strong_rec_thresh: 0.04 diff --git a/docs/changelog.rst b/docs/changelog.rst index a1d6023f9..3f82ff6f0 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -7,6 +7,9 @@ Changelog Features: * Stop on invalid queries instead of ignoring the invalid part. +* A new :ref:`searchlimit` configuration option allows you to specify how many + search results you wish to see when looking up releases at MusicBrainz + during import. :bug:`1245` Fixes: diff --git a/docs/reference/config.rst b/docs/reference/config.rst index 858362f15..7782e4ad8 100644 --- a/docs/reference/config.rst +++ b/docs/reference/config.rst @@ -480,6 +480,16 @@ to one request per second. .. _limited: http://musicbrainz.org/doc/XML_Web_Service/Rate_Limiting .. _MusicBrainz: http://musicbrainz.org/ +.. _searchlimit: + +searchlimit +~~~~~~~~~~~ + +The number of matches returned when sending search queries to the +MusicBrainz server. + +Default: ``5``. + .. _match-config: Autotagger Matching Options