From bf83a159fedb54d9a12cf24f28ba012d9445f457 Mon Sep 17 00:00:00 2001 From: Stein Magnus Jodal Date: Tue, 9 Apr 2013 12:51:34 +0200 Subject: [PATCH] local: Create all needed dirs/files on startup --- mopidy/backends/local/actor.py | 25 +++++++++++++++++++++++++ mopidy/backends/local/library.py | 11 +++-------- 2 files changed, 28 insertions(+), 8 deletions(-) diff --git a/mopidy/backends/local/actor.py b/mopidy/backends/local/actor.py index a1655dd9..1817e133 100644 --- a/mopidy/backends/local/actor.py +++ b/mopidy/backends/local/actor.py @@ -5,6 +5,7 @@ import logging import pykka from mopidy.backends import base +from mopidy.utils import encoding, path from .library import LocalLibraryProvider from .playlists import LocalPlaylistsProvider @@ -18,8 +19,32 @@ class LocalBackend(pykka.ThreadingActor, base.Backend): self.config = config + self.create_dirs_and_files() + self.library = LocalLibraryProvider(backend=self) self.playback = base.BasePlaybackProvider(audio=audio, backend=self) self.playlists = LocalPlaylistsProvider(backend=self) self.uri_schemes = ['file'] + + def create_dirs_and_files(self): + try: + path.get_or_create_dir(self.config['local']['media_dir']) + except EnvironmentError as error: + logger.warning( + 'Could not create local media dir: %s', + encoding.locale_decode(error)) + + try: + path.get_or_create_dir(self.config['local']['playlists_dir']) + except EnvironmentError as error: + logger.warning( + 'Could not create local playlists dir: %s', + encoding.locale_decode(error)) + + try: + path.get_or_create_file(self.config['local']['tag_cache_file']) + except EnvironmentError as error: + logger.warning( + 'Could not create empty tag cache file: %s', + encoding.locale_decode(error)) diff --git a/mopidy/backends/local/library.py b/mopidy/backends/local/library.py index 6b953823..669e72d7 100644 --- a/mopidy/backends/local/library.py +++ b/mopidy/backends/local/library.py @@ -3,7 +3,6 @@ from __future__ import unicode_literals import logging from mopidy.backends import base from mopidy.models import Album, SearchResult -from mopidy.utils import encoding, path from .translator import parse_mpd_tag_cache @@ -19,13 +18,9 @@ class LocalLibraryProvider(base.BaseLibraryProvider): self.refresh() def refresh(self, uri=None): - try: - path.get_or_create_file(self._tag_cache_file) - except EnvironmentError as error: - logger.warning( - 'Could not create empty tag cache: %s', - encoding.locale_decode(error)) - return + logger.debug( + 'Loading local tracks from %s using %s', + self._media_dir, self._tag_cache_file) tracks = parse_mpd_tag_cache(self._tag_cache_file, self._media_dir)