diff --git a/mopidy/local/json.py b/mopidy/local/json.py index e27015f2..969049d6 100644 --- a/mopidy/local/json.py +++ b/mopidy/local/json.py @@ -182,10 +182,11 @@ class JsonLibrary(local.Library): else: return set() - result = set() - for track in search.search(self._tracks.values(), query).tracks: - result.update(distinct(track)) - return result + distinct_result = set() + search_result = search.search(self._tracks.values(), query, limit=None) + for track in search_result.tracks: + distinct_result.update(distinct(track)) + return distinct_result def search(self, query=None, limit=100, offset=0, uris=None, exact=False): tracks = self._tracks.values() diff --git a/mopidy/local/search.py b/mopidy/local/search.py index 1f82366f..9d6edea7 100644 --- a/mopidy/local/search.py +++ b/mopidy/local/search.py @@ -106,9 +106,12 @@ def find_exact(tracks, query=None, limit=100, offset=0, uris=None): else: raise LookupError('Invalid lookup field: %s' % field) + if limit is None: + tracks = tracks[offset:] + else: + tracks = tracks[offset:offset + limit] # TODO: add local:search: - return SearchResult( - uri='local:search', tracks=tracks[offset:offset + limit]) + return SearchResult(uri='local:search', tracks=tracks) def search(tracks, query=None, limit=100, offset=0, uris=None): @@ -217,9 +220,13 @@ def search(tracks, query=None, limit=100, offset=0, uris=None): tracks = filter(any_filter, tracks) else: raise LookupError('Invalid lookup field: %s' % field) + + if limit is None: + tracks = tracks[offset:] + else: + tracks = tracks[offset:offset + limit] # TODO: add local:search: - return SearchResult(uri='local:search', - tracks=tracks[offset:offset + limit]) + return SearchResult(uri='local:search', tracks=tracks) def _validate_query(query): diff --git a/tests/local/test_json.py b/tests/local/test_json.py index 6d57c4d0..520287ad 100644 --- a/tests/local/test_json.py +++ b/tests/local/test_json.py @@ -1,12 +1,10 @@ from __future__ import absolute_import, unicode_literals - import unittest from mopidy.local import json from mopidy.models import Ref, Track - from tests import path_to_data_dir