]> kaliko git repositories - mpd-sima.git/blobdiff - sima/lib/meta.py
Add Album property to Track objects
[mpd-sima.git] / sima / lib / meta.py
index 7cfb54fa56a63545c50f2b651bea8109ba2dfba7..a492d17ed60e7ac3749216cf4245eb96bb39c227 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (c) 2013, 2014, 2015 kaliko <kaliko@azylum.org>
+# Copyright (c) 2013, 2014, 2015, 2021 kaliko <kaliko@azylum.org>
 #
 #  This file is part of sima
 #
 Defines some object to handle audio file metadata
 """
 
-try:
-    from collections.abc import Set # python >= 3.3
-except ImportError:
-    from collections import Set # python 3.2
+
+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
@@ -58,6 +56,7 @@ def mbidfilter(func):
         func(*args, **kwargs)
     return wrapper
 
+
 def serialize(func):
     def wrapper(*args, **kwargs):
         ans = func(*args, **kwargs)
@@ -184,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