]> kaliko git repositories - mpd-sima.git/commitdiff
New option to disable use of mbid
authorkaliko <kaliko@azylum.org>
Tue, 9 Dec 2014 10:37:25 +0000 (11:37 +0100)
committerkaliko <kaliko@azylum.org>
Tue, 9 Dec 2014 10:37:25 +0000 (11:37 +0100)
12 files changed:
data/man/info.xml
data/man/mpd-sima.1
data/man/mpd_sima.cfg.5
data/man/mpd_sima.cfg.5.xml
data/man/simadb_cli.1
doc/Changelog
doc/examples/all_settings.cfg
sima/client.py
sima/launch.py
sima/lib/meta.py
sima/lib/webserv.py
sima/utils/config.py

index 5422b9e6d01083cb6c72f99f30a4cf1d69066521..50abd245fc2ac33a5592f975a33b6be2b4af7842 100644 (file)
@@ -5,7 +5,7 @@
   <!ENTITY dhemail     "kaliko@azylum.org">
   <!ENTITY dhusername  "&dhfirstname; &dhsurname;">
   <!ENTITY dhpackage "mpd-sima">
-  <!ENTITY release   "0.12.3">
+  <!ENTITY release   "0.13.0">
   <!-- TITLE should be something like "User commands" or similar (see
        http://www.tldp.org/HOWTO/Man-Page/q2.html). -->
   <!ENTITY dhtitle     "&dhpackage; &release; User Manual">
index fbbf6f5776bd27bbe57cd8e45c783e4b038b3228..6bd8ac25faeaa1990b9a3619d47f49b67b231214 100644 (file)
@@ -2,12 +2,12 @@
 .\"     Title: mpd-sima
 .\"    Author: Jack Kaliko <kaliko@azylum.org>
 .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
-.\"      Date: 11/24/2014
-.\"    Manual: mpd-sima 0.12.3 User Manual
+.\"      Date: 12/08/2014
+.\"    Manual: mpd-sima 0.13.0 User Manual
 .\"    Source: mpd-sima
 .\"  Language: English
 .\"
-.TH "MPD\-SIMA" "1" "11/24/2014" "mpd-sima" "mpd-sima 0.12.3 User Manual"
+.TH "MPD\-SIMA" "1" "12/08/2014" "mpd-sima" "mpd-sima 0.13.0 User Manual"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
index 154a2ad1abc9f69de2fe35975dd842ba5f4ed829..46c73f08f0257562a7be9e2dc8c899e2a0f6cca1 100644 (file)
@@ -2,12 +2,12 @@
 .\"     Title: mpd_sima.cfg
 .\"    Author: Jack Kaliko <kaliko@azylum.org>
 .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
-.\"      Date: 11/24/2014
-.\"    Manual: mpd-sima 0.12.3 User Manual
+.\"      Date: 12/09/2014
+.\"    Manual: mpd-sima 0.13.0 User Manual
 .\"    Source: mpd-sima
 .\"  Language: English
 .\"
-.TH "MPD_SIMA\&.CFG" "5" "11/24/2014" "mpd-sima" "mpd-sima 0.12.3 User Manual"
+.TH "MPD_SIMA\&.CFG" "5" "12/09/2014" "mpd-sima" "mpd-sima 0.13.0 User Manual"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
@@ -162,6 +162,18 @@ How far to look back in history to avoid to play twice the same track/title (dur
 This value triggers queue process if the queue length is less than specified queue_length\&.
 .RE
 .PP
+\fBmusicbrainzid=\fR\fItrue\fR
+.RS 4
+Use MusicBrainzIdentifier to search music (mainly for artists)\&. Consider using these metadata as it enhances a lot artist/album/tracks identification\&.
+.br
+
+Default is True, switch to False if you don\*(Aqt have MusicBrainzIdentifier set for at least 80% of you music library\&.
+.br
+
+Use Picard to tag your file:
+\m[blue]\fB\%https://picard.musicbrainz.org/\fR\m[]\&.
+.RE
+.PP
 \fBuser_db=\fR\fIfalse\fR
 .RS 4
 Temporarily removed feature
index 9ef63de06c51a94a626d30ac87eed0c3f666b923..309beff8966ecdc3bc572f285a533e1dcb3c7c5d 100644 (file)
@@ -201,6 +201,19 @@ man(1), man(7), http://www.tldp.org/HOWTO/Man-Page/
                             queue_length.</para>
                     </listitem>
                 </varlistentry>
+                <varlistentry> <!-- sima.musicbrainzid -->
+                    <term><option>musicbrainzid=</option><replaceable>true</replaceable></term>
+                    <listitem>
+                        <para>Use MusicBrainzIdentifier to search music (mainly
+                            for artists). Consider using these metadata as it
+                            enhances a lot artist/album/tracks identification.<sbr />
+                            Default is True, switch to False if you don't have
+                            MusicBrainzIdentifier set for at least 80% of you
+                            music library.<sbr />
+                            Use Picard to tag your file: <ulink url="https://picard.musicbrainz.org/"/>.
+                        </para>
+                    </listitem>
+                </varlistentry>
                 <varlistentry> <!-- sima.user_db -->
                     <term><option>user_db=</option><replaceable>false</replaceable></term>
                     <listitem>
index a45ab0d4d77f4dcfbb966081a559f43a8e7dfb01..f39167ef67fc2352c6081505204692386bb25b70 100644 (file)
@@ -2,12 +2,12 @@
 .\"     Title: simadb_cli
 .\"    Author: Jack Kaliko <kaliko@azylum.org>
 .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
-.\"      Date: 11/24/2014
-.\"    Manual: mpd-sima 0.12.3 User Manual
+.\"      Date: 12/08/2014
+.\"    Manual: mpd-sima 0.13.0 User Manual
 .\"    Source: mpd-sima
 .\"  Language: English
 .\"
-.TH "SIMADB_CLI" "1" "11/24/2014" "mpd-sima" "mpd-sima 0.12.3 User Manual"
+.TH "SIMADB_CLI" "1" "12/08/2014" "mpd-sima" "mpd-sima 0.13.0 User Manual"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
index 249e1e37ea577273e79090f3d406f6dd1ad4f3d3..67b2cb2e08d7a72973b8046884c724cbbc9a807f 100644 (file)
@@ -1,6 +1,7 @@
 MPD_sima v0.13.0
 
- * 
+ * Use of MusicBrainzIdentifier by default
+   Please consider tagging your library with these metadata
 
 -- kaliko jack <kaliko@azylum.org>  UNRELEASED
 
index 46a6184ea39a813f5d12adf7ac552fcb9b8932ef..01c910062d5e188c5cbd793822786f78d2ea1d7f 100644 (file)
@@ -101,6 +101,12 @@ user_db = false
 # description: Queue length triggering tracks addition
 queue_length = 1
 
+## MUSICBRAINZID
+# type: boolean
+# default: True
+# description: Use of MusicBrainzIdentifier tag
+musicbrainzid = True
+
 ######################### PLUGINS #####################################
 
 [crop]
index d127442e6b79f90209d019c6774c8e5d6c6ad9f5..0bfc8826be36ca0027df7b6df3af3598456527f7 100644 (file)
@@ -317,6 +317,16 @@ class PlayerClient(Player):
                 raise PlayerError('Could connect to "%s", '
                                   'but command "%s" not available' %
                                   (host, nddcmd))
+
+        #  Controls use of MusicBrainzIdentifier
+        if Artist.use_mbid:
+            if 'MUSICBRAINZ_ARTISTID' not in self._client.tagtypes():
+                self.log.warning('Use of MusicBrainzIdentifier is set but MPD is '
+                        'not providing related metadata')
+                self.log.info(self._client.tagtypes())
+        else:
+            self.log.warning('Use of MusicBrainzIdentifier disabled!')
+            self.log.info('Consider using MusicBrainzIdentifier for your music library')
         self._flush_cache()
 
     def disconnect(self):
index 03baa4fa5e9af85b68b9b66a91152aa17aa8e9b6..1ff6c94c4b94a2d91a102fd06256d74075f39105 100644 (file)
@@ -34,6 +34,7 @@ from os.path import isfile
 # local import
 from . import core, info
 from .lib.logger import set_logger
+from .lib.meta import Meta
 from .lib.simadb import SimaDB
 from .utils.config import ConfMan
 from .utils.startopt import StartOpt
@@ -114,6 +115,11 @@ def start(sopt, restart=False):
     #  Loading contrib plugins
     load_plugins(sima, 'contrib')
 
+    #  Set use of MusicBrainzIdentifier
+    if not config.getboolean('sima', 'musicbrainzid'):
+        logger.info('Disabling MusicBrainzIdentifier')
+        Meta.use_mbid = False
+
     # Run as a daemon
     if config.getboolean('daemon', 'daemon'):
         if restart:
index 32bb883dca5dd861a0b1f21b9fec89055edfc3c7..2d78f2f67269cfedfb2898a2aa3f3e1e025bc21d 100644 (file)
@@ -38,11 +38,22 @@ class MetaException(Exception):
 class WrongUUID4(MetaException):
     pass
 
+def mbidfilter(func):
+    def wrapper(*args, **kwargs):
+        cls = args[0]
+        if not cls.use_mbid:
+            kwargs.pop('mbid', None)
+            kwargs.pop('musicbrainz_artistid', None)
+            kwargs.pop('musicbrainz_albumartistid', None)
+        func(*args, **kwargs)
+    return wrapper
+
 
 class Meta:
     """Generic Class for Meta object
     Meta(name=<str>[, mbid=UUID4])
     """
+    use_mbid = True
 
     def __init__(self, **kwargs):
         self.__name = None #TODO: should be immutable
@@ -117,6 +128,7 @@ class Album(Meta):
 
 class Artist(Meta):
 
+    @mbidfilter
     def __init__(self, name=None, mbid=None, **kwargs):
         """Artist object built from a mapping dict containing at least an
         "artist" entry:
index 36b364ff5abd742ea5b619baa7ac6f85752cceca..7609da765b5f7f820007590ef2b249ecb1df1662 100644 (file)
@@ -226,6 +226,7 @@ class WebService(Plugin):
             return []
         tolookfor = self.player.playlist[-1].Artist
         self.log.info('Looking for artist similar to "{}"'.format(tolookfor))
+        self.log.debug(repr(tolookfor))
         similar = self.ws_similar_artists(tolookfor)
         if not similar:
             self.log.info('Got nothing from {0}!'.format(self.ws.name))
index 786208afcc84dc870f40fa2f88cecd67609e6c41..3cd33713951ef0dbefd81a0a4849e37763a61522 100644 (file)
@@ -52,6 +52,7 @@ DEFAULT_CONF = {
             'history_duration': 8,
             'queue_length': 1,
             'var_dir': 'empty',
+            'musicbrainzid': "true",
             },
         'daemon':{
             'daemon': False,