]> kaliko git repositories - mpd-sima.git/blobdiff - sima/lib/meta.py
simadb: Fixed timezone, record play timestamp as UTC (Closes #51)
[mpd-sima.git] / sima / lib / meta.py
index 26da9ca66efc05918a9c45b87a8de39ea08a345b..3f6a641c3460938966eb2ef84431c55b3222667e 100644 (file)
@@ -26,7 +26,7 @@ from collections.abc import Set
 import logging
 import re
 
-UUID_RE = r'^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}$'
+UUID_RE = r'^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[89AB][a-f0-9]{3}-[a-f0-9]{12}$'
 # The Track Object is collapsing multiple tags into a single string using this
 # separator. It is used then to split back the string to tags list.
 SEPARATOR = chr(0x1F)  # ASCII Unit Separator
@@ -56,6 +56,7 @@ def mbidfilter(func):
         func(*args, **kwargs)
     return wrapper
 
+
 def serialize(func):
     def wrapper(*args, **kwargs):
         ans = func(*args, **kwargs)
@@ -182,6 +183,8 @@ class Album(Meta):
 
     @mbidfilter
     def __init__(self, name=None, mbid=None, **kwargs):
+        if kwargs.get('musicbrainz_albumid', False):
+            mbid = kwargs.get('musicbrainz_albumid').split(SEPARATOR)[0]
         super().__init__(name=name, mbid=mbid, **kwargs)
 
     @property
@@ -195,16 +198,14 @@ class Artist(Meta):
     :param str name: Artist name
     :param str mbid: Musicbrainz artist ID
     :param str artist: Overrides "name" argument
-    :param str albumartist: Overrides "name" and "artist" argument
+    :param str albumartist: use "name" if not set
     :param str musicbrainz_artistid: Overrides "mbid" argument
-    :param str musicbrainz_albumartistid: Overrides "musicbrainz_artistid" argument
 
     :Example:
 
     >>> trk = {'artist':'Art Name',
     >>>        'albumartist': 'Alb Art Name',           # optional
     >>>        'musicbrainz_artistid': '<UUID4>',       # optional
-    >>>        'musicbrainz_albumartistid': '<UUID4>',  # optional
     >>>       }
     >>> artobj0 = Artist(**trk)
     >>> artobj1 = Artist(name='Tool')
@@ -216,13 +217,11 @@ class Artist(Meta):
             name = kwargs.get('artist').split(SEPARATOR)[0]
         if kwargs.get('musicbrainz_artistid', False):
             mbid = kwargs.get('musicbrainz_artistid').split(SEPARATOR)[0]
-        if (kwargs.get('albumartist', False) and
-                kwargs.get('albumartist') != 'Various Artists'):
-            name = kwargs.get('albumartist').split(SEPARATOR)[0]
-        if (kwargs.get('musicbrainz_albumartistid', False) and
-                kwargs.get('musicbrainz_albumartistid') != '89ad4ac3-39f7-470e-963a-56509c546377'):
-            mbid = kwargs.get('musicbrainz_albumartistid').split(SEPARATOR)[0]
-        super().__init__(name=name, mbid=mbid)
+        if not kwargs.get('albumartist', False):
+            kwargs['albumartist'] = name
+        super().__init__(name=name, mbid=mbid,
+                         albumartist=kwargs.get('albumartist'))
+
 
 class MetaContainer(Set):