From e1bb03789b392cbd625e9e5ec08247ec90ccfab9 Mon Sep 17 00:00:00 2001 From: kingosticks Date: Sun, 15 Dec 2013 18:50:05 +0000 Subject: [PATCH 1/3] expose mopidy version to core API --- mopidy/core/actor.py | 4 ++++ mopidy/frontends/http/ws.py | 2 ++ 2 files changed, 6 insertions(+) diff --git a/mopidy/core/actor.py b/mopidy/core/actor.py index 3cba20db..9bc58cd9 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,9 @@ class Core(pykka.ThreadingActor, AudioListener, BackendListener): # Forward event from backend to frontends CoreListener.send('playlists_loaded') + def get_version(self): + return versioning.get_version() + 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, From 9f93fbaa3689af4fc4ecddcfc73bd404f5db8fea Mon Sep 17 00:00:00 2001 From: kingosticks Date: Sun, 15 Dec 2013 20:37:41 +0000 Subject: [PATCH 2/3] property for get_version and documented --- mopidy/core/actor.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mopidy/core/actor.py b/mopidy/core/actor.py index 9bc58cd9..5e4f9ccb 100644 --- a/mopidy/core/actor.py +++ b/mopidy/core/actor.py @@ -79,6 +79,9 @@ class Core(pykka.ThreadingActor, AudioListener, BackendListener): 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): From 69b1f5e27046aa2f3b844bf453a40205031fa746 Mon Sep 17 00:00:00 2001 From: kingosticks Date: Sun, 15 Dec 2013 20:38:45 +0000 Subject: [PATCH 3/3] get_version changelog entry --- docs/changelog.rst | 5 +++++ 1 file changed, 5 insertions(+) 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