From f9f80e264e872b6815d7818a4a08d7aaa420d694 Mon Sep 17 00:00:00 2001 From: Stein Magnus Jodal Date: Tue, 9 Apr 2013 11:05:32 +0200 Subject: [PATCH] local: Create empty tag_cache if it doesn't exist --- mopidy/backends/local/library.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/mopidy/backends/local/library.py b/mopidy/backends/local/library.py index a76ce594..148ff24f 100644 --- a/mopidy/backends/local/library.py +++ b/mopidy/backends/local/library.py @@ -1,9 +1,11 @@ from __future__ import unicode_literals import logging +import os from mopidy.backends import base from mopidy.models import Album, SearchResult +from mopidy.utils.encoding import locale_decode from .translator import parse_mpd_tag_cache @@ -19,12 +21,23 @@ class LocalLibraryProvider(base.BaseLibraryProvider): self.refresh() def refresh(self, uri=None): - tracks = parse_mpd_tag_cache(self._tag_cache_file, self._media_dir) + try: + if not os.path.exists(self._tag_cache_file): + basedir = os.path.dirname(self._tag_cache_file) + if not os.path.exists(basedir): + os.makedirs(basedir) + open(self._tag_cache_file, 'a').close() + except IOError as error: + logger.warning( + 'Could not create empty tag cache: %s', locale_decode(error)) + return logger.info( 'Loading tracks from %s using %s', self._media_dir, self._tag_cache_file) + tracks = parse_mpd_tag_cache(self._tag_cache_file, self._media_dir) + for track in tracks: self._uri_mapping[track.uri] = track