Merge pull request #1183 from adamcik/v1.0.x
core/mpd/local: Add title to get_distinct field types
This commit is contained in:
commit
9b29ccb40a
@ -10,10 +10,12 @@ v1.0.6 (unreleased)
|
|||||||
|
|
||||||
Bug fix release.
|
Bug fix release.
|
||||||
|
|
||||||
|
- Core/MPD/Local: Add support for ``title`` in
|
||||||
|
:meth:`mopidy.core.LibraryController.get_distinct`. (Fixes: :issue:`1181`)
|
||||||
|
|
||||||
- Core: Make sure track changes make it to audio while paused.
|
- Core: Make sure track changes make it to audio while paused.
|
||||||
(Fixes: :issuse:`1177`)
|
(Fixes: :issuse:`1177`)
|
||||||
|
|
||||||
|
|
||||||
v1.0.5 (2015-05-19)
|
v1.0.5 (2015-05-19)
|
||||||
===================
|
===================
|
||||||
|
|
||||||
|
|||||||
@ -97,6 +97,9 @@ class LibraryProvider(object):
|
|||||||
*MAY be implemented by subclass.*
|
*MAY be implemented by subclass.*
|
||||||
|
|
||||||
Default implementation will simply return an empty set.
|
Default implementation will simply return an empty set.
|
||||||
|
|
||||||
|
Note that backends should always return an empty set for unexpected
|
||||||
|
field types.
|
||||||
"""
|
"""
|
||||||
return set()
|
return set()
|
||||||
|
|
||||||
|
|||||||
@ -85,8 +85,8 @@ class LibraryController(object):
|
|||||||
protocol supports in a more sane fashion. Other frontends are not
|
protocol supports in a more sane fashion. Other frontends are not
|
||||||
recommended to use this method.
|
recommended to use this method.
|
||||||
|
|
||||||
:param string field: One of ``artist``, ``albumartist``, ``album``,
|
:param string field: One of ``track``, ``artist``, ``albumartist``,
|
||||||
``composer``, ``performer``, ``date``or ``genre``.
|
``album``, ``composer``, ``performer``, ``date``or ``genre``.
|
||||||
:param dict query: Query to use for limiting results, see
|
:param dict query: Query to use for limiting results, see
|
||||||
:meth:`search` for details about the query format.
|
:meth:`search` for details about the query format.
|
||||||
:rtype: set of values corresponding to the requested field type.
|
:rtype: set of values corresponding to the requested field type.
|
||||||
|
|||||||
@ -141,7 +141,10 @@ class JsonLibrary(local.Library):
|
|||||||
return []
|
return []
|
||||||
|
|
||||||
def get_distinct(self, field, query=None):
|
def get_distinct(self, field, query=None):
|
||||||
if field == 'artist':
|
if field == 'track':
|
||||||
|
def distinct(track):
|
||||||
|
return {track.name}
|
||||||
|
elif field == 'artist':
|
||||||
def distinct(track):
|
def distinct(track):
|
||||||
return {a.name for a in track.artists}
|
return {a.name for a in track.artists}
|
||||||
elif field == 'albumartist':
|
elif field == 'albumartist':
|
||||||
|
|||||||
@ -22,6 +22,7 @@ _SEARCH_MAPPING = {
|
|||||||
'track': 'track_no'}
|
'track': 'track_no'}
|
||||||
|
|
||||||
_LIST_MAPPING = {
|
_LIST_MAPPING = {
|
||||||
|
'title': 'track',
|
||||||
'album': 'album',
|
'album': 'album',
|
||||||
'albumartist': 'albumartist',
|
'albumartist': 'albumartist',
|
||||||
'artist': 'artist',
|
'artist': 'artist',
|
||||||
@ -31,6 +32,7 @@ _LIST_MAPPING = {
|
|||||||
'performer': 'performer'}
|
'performer': 'performer'}
|
||||||
|
|
||||||
_LIST_NAME_MAPPING = {
|
_LIST_NAME_MAPPING = {
|
||||||
|
'title': 'Title',
|
||||||
'album': 'Album',
|
'album': 'Album',
|
||||||
'albumartist': 'AlbumArtist',
|
'albumartist': 'AlbumArtist',
|
||||||
'artist': 'Artist',
|
'artist': 'Artist',
|
||||||
|
|||||||
@ -624,6 +624,11 @@ class MusicDatabaseListTest(protocol.BaseTestCase):
|
|||||||
self.send_request('list "foo"')
|
self.send_request('list "foo"')
|
||||||
self.assertEqualResponse('ACK [2@0] {list} incorrect arguments')
|
self.assertEqualResponse('ACK [2@0] {list} incorrect arguments')
|
||||||
|
|
||||||
|
# Track title
|
||||||
|
def test_list_title(self):
|
||||||
|
self.send_request('list "title"')
|
||||||
|
self.assertInResponse('OK')
|
||||||
|
|
||||||
# Artist
|
# Artist
|
||||||
|
|
||||||
def test_list_artist_with_quotes(self):
|
def test_list_artist_with_quotes(self):
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user