m3u: Make empty playlists_dir default to ext's data dir
Partly fixes #1259
This commit is contained in:
parent
e0a028291a
commit
e1f349a6d4
@ -29,6 +29,12 @@ Bug fix release.
|
|||||||
:confval:`core/data_dir`, like the Debian and Arch packages. (Fixes:
|
:confval:`core/data_dir`, like the Debian and Arch packages. (Fixes:
|
||||||
:issue:`1259`)
|
:issue:`1259`)
|
||||||
|
|
||||||
|
- M3U: Changed default for the :confval:`m3u/playlists_dir` from
|
||||||
|
``$XDG_DATA_DIR/mopidy/m3u`` to unset, which now means the extension's data
|
||||||
|
dir. This does not change the defaults for desktop users, only system
|
||||||
|
services installed from packages that properly set :confval:`core/data_dir`,
|
||||||
|
like the Debian and Arch pakages. (Fixes: :issue:`1259`)
|
||||||
|
|
||||||
- Stream: If "file" is present in the :confval:`stream/protocols` config value
|
- Stream: If "file" is present in the :confval:`stream/protocols` config value
|
||||||
and the :ref:`ext-file` extension is enabled, we exited with an error because
|
and the :ref:`ext-file` extension is enabled, we exited with an error because
|
||||||
two extensions claimed the same URI scheme. We now log a warning recommending
|
two extensions claimed the same URI scheme. We now log a warning recommending
|
||||||
|
|||||||
@ -52,4 +52,5 @@ See :ref:`config` for general help on configuring Mopidy.
|
|||||||
|
|
||||||
.. confval:: m3u/playlists_dir
|
.. confval:: m3u/playlists_dir
|
||||||
|
|
||||||
Path to directory with M3U files.
|
Path to directory with M3U files. Unset by default, in which case the
|
||||||
|
extension's data dir is used to store playlists.
|
||||||
|
|||||||
@ -21,7 +21,7 @@ class Extension(ext.Extension):
|
|||||||
|
|
||||||
def get_config_schema(self):
|
def get_config_schema(self):
|
||||||
schema = super(Extension, self).get_config_schema()
|
schema = super(Extension, self).get_config_schema()
|
||||||
schema['playlists_dir'] = config.Path()
|
schema['playlists_dir'] = config.Path(optional=True)
|
||||||
return schema
|
return schema
|
||||||
|
|
||||||
def setup(self, registry):
|
def setup(self, registry):
|
||||||
|
|||||||
@ -4,7 +4,7 @@ import logging
|
|||||||
|
|
||||||
import pykka
|
import pykka
|
||||||
|
|
||||||
from mopidy import backend
|
from mopidy import backend, m3u
|
||||||
from mopidy.internal import encoding, path
|
from mopidy.internal import encoding, path
|
||||||
from mopidy.m3u.library import M3ULibraryProvider
|
from mopidy.m3u.library import M3ULibraryProvider
|
||||||
from mopidy.m3u.playlists import M3UPlaylistsProvider
|
from mopidy.m3u.playlists import M3UPlaylistsProvider
|
||||||
@ -21,12 +21,16 @@ class M3UBackend(pykka.ThreadingActor, backend.Backend):
|
|||||||
|
|
||||||
self._config = config
|
self._config = config
|
||||||
|
|
||||||
|
if config['m3u']['playlists_dir'] is not None:
|
||||||
|
self._playlists_dir = config['m3u']['playlists_dir']
|
||||||
try:
|
try:
|
||||||
path.get_or_create_dir(config['m3u']['playlists_dir'])
|
path.get_or_create_dir(self._playlists_dir)
|
||||||
except EnvironmentError as error:
|
except EnvironmentError as error:
|
||||||
logger.warning(
|
logger.warning(
|
||||||
'Could not create M3U playlists dir: %s',
|
'Could not create M3U playlists dir: %s',
|
||||||
encoding.locale_decode(error))
|
encoding.locale_decode(error))
|
||||||
|
else:
|
||||||
|
self._playlists_dir = m3u.Extension().get_data_dir(config)
|
||||||
|
|
||||||
self.playlists = M3UPlaylistsProvider(backend=self)
|
self.playlists = M3UPlaylistsProvider(backend=self)
|
||||||
self.library = M3ULibraryProvider(backend=self)
|
self.library = M3ULibraryProvider(backend=self)
|
||||||
|
|||||||
@ -1,3 +1,3 @@
|
|||||||
[m3u]
|
[m3u]
|
||||||
enabled = true
|
enabled = true
|
||||||
playlists_dir = $XDG_DATA_DIR/mopidy/m3u
|
playlists_dir =
|
||||||
|
|||||||
@ -23,7 +23,7 @@ class M3UPlaylistsProvider(backend.PlaylistsProvider):
|
|||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
super(M3UPlaylistsProvider, self).__init__(*args, **kwargs)
|
super(M3UPlaylistsProvider, self).__init__(*args, **kwargs)
|
||||||
|
|
||||||
self._playlists_dir = self.backend._config['m3u']['playlists_dir']
|
self._playlists_dir = self.backend._playlists_dir
|
||||||
self._playlists = {}
|
self._playlists = {}
|
||||||
self.refresh()
|
self.refresh()
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user