local: Readd support for search without limit for get_distinct support

This commit is contained in:
Thomas Adamcik 2015-03-02 23:39:06 +01:00
parent 8c7c275f3a
commit 319c1fc1e3
3 changed files with 16 additions and 10 deletions

View File

@ -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()

View File

@ -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:<query>
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:<query>
return SearchResult(uri='local:search',
tracks=tracks[offset:offset + limit])
return SearchResult(uri='local:search', tracks=tracks)
def _validate_query(query):

View File

@ -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