diff --git a/docs/changelog.rst b/docs/changelog.rst index 09b7840c..5c1363fc 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -7,6 +7,11 @@ This changelog is used to track all major changes to Mopidy. v0.18.0 (UNRELEASED) ==================== +**Core API** + +- Expose :meth:`mopidy.core.Core.get_version` to HTTP clients for managing + compatability between API versions. (Fixes: :issue:`597`) + **Pluggable local libraries** Fixes issues :issue:`44`, partially resolves :issue:`397`, and causes diff --git a/mopidy/core/actor.py b/mopidy/core/actor.py index b7eca93c..65228cc4 100644 --- a/mopidy/core/actor.py +++ b/mopidy/core/actor.py @@ -7,6 +7,7 @@ import pykka from mopidy.audio import AudioListener, PlaybackState from mopidy.backends.listener import BackendListener +from mopidy.utils import versioning from .library import LibraryController from .listener import CoreListener @@ -75,6 +76,12 @@ class Core(pykka.ThreadingActor, AudioListener, BackendListener): # Forward event from backend to frontends CoreListener.send('playlists_loaded') + def get_version(self): + return versioning.get_version() + + version = property(get_version) + """Version of the Mopidy core API""" + class Backends(list): def __init__(self, backends): diff --git a/mopidy/frontends/http/ws.py b/mopidy/frontends/http/ws.py index b46b450e..d773b422 100644 --- a/mopidy/frontends/http/ws.py +++ b/mopidy/frontends/http/ws.py @@ -18,6 +18,7 @@ class WebSocketResource(object): inspector = jsonrpc.JsonRpcInspector( objects={ 'core.get_uri_schemes': core.Core.get_uri_schemes, + 'core.get_version': core.Core.get_version, 'core.library': core.LibraryController, 'core.playback': core.PlaybackController, 'core.playlists': core.PlaylistsController, @@ -27,6 +28,7 @@ class WebSocketResource(object): objects={ 'core.describe': inspector.describe, 'core.get_uri_schemes': self._core.get_uri_schemes, + 'core.get_version': self._core.get_version, 'core.library': self._core.library, 'core.playback': self._core.playback, 'core.playlists': self._core.playlists,