diff --git a/mopidy/core/actor.py b/mopidy/core/actor.py index 0c877477..750b965b 100644 --- a/mopidy/core/actor.py +++ b/mopidy/core/actor.py @@ -7,6 +7,8 @@ import os import pykka +import mopidy + from mopidy import audio, backend, mixer from mopidy.audio import PlaybackState from mopidy.core.history import HistoryController @@ -188,6 +190,7 @@ class Core( logger.info('Save state to %s', file_name) data = {} + data['version'] = mopidy.__version__ data['tracklist'] = self.tracklist._export_state() data['history'] = self.history._export_state() data['playback'] = self.playback._export_state() diff --git a/mopidy/local/json.py b/mopidy/local/json.py index 96c96e49..de40e15b 100644 --- a/mopidy/local/json.py +++ b/mopidy/local/json.py @@ -6,6 +6,8 @@ import os import re import sys +import mopidy + from mopidy import compat, local, models from mopidy.internal import timer from mopidy.local import search, storage, translator @@ -164,7 +166,9 @@ class JsonLibrary(local.Library): self._tracks.pop(uri, None) def close(self): - models.storage.save(self._json_file, {'tracks': self._tracks.values()}) + models.storage.save(self._json_file, + {'version': mopidy.__version__, + 'tracks': self._tracks.values()}) def clear(self): try: diff --git a/mopidy/models/storage.py b/mopidy/models/storage.py index 20fc490f..faa53d57 100644 --- a/mopidy/models/storage.py +++ b/mopidy/models/storage.py @@ -6,7 +6,6 @@ import logging import os import tempfile -import mopidy from mopidy import models from mopidy.internal import encoding @@ -22,6 +21,7 @@ def load(path): :return: deserialized data :rtype: dict """ + # Todo: raise an exception in case of error? if not os.path.isfile(path): logger.info('File does not exist: %s.', path) return {} @@ -44,7 +44,6 @@ def save(path, data): :param data: dictionary containing data to save :type data: dict """ - data['version'] = mopidy.__version__ directory, basename = os.path.split(path) # TODO: cleanup directory/basename.* files.