|
@@ -1,12 +1,14 @@
|
|
|
-
|
|
|
+import re
|
|
|
|
|
|
import mutagen.id3
|
|
|
import mutagen.mp4
|
|
|
-import re
|
|
|
|
|
|
|
|
|
class _mutagen:
|
|
|
|
|
|
+ def __init__(self, mutagen_file):
|
|
|
+ self._mutagen_file = mutagen_file
|
|
|
+
|
|
|
@property
|
|
|
def track_path(self):
|
|
|
return self._mutagen_file.filename
|
|
@@ -23,22 +25,21 @@ class ID3(_mutagen):
|
|
|
def __init__(self, mutagen_file):
|
|
|
assert isinstance(mutagen_file.tags, mutagen.id3.ID3), \
|
|
|
mutagen_file.tags
|
|
|
- self._mutagen_file = mutagen_file
|
|
|
+ super().__init__(mutagen_file)
|
|
|
|
|
|
def _get_single_text(self, tag_label):
|
|
|
tag = self._mutagen_file.tags.get(tag_label, None)
|
|
|
if tag is None:
|
|
|
|
|
|
return None
|
|
|
- elif len(tag.text) == 1:
|
|
|
+ if len(tag.text) == 1:
|
|
|
return tag.text[0]
|
|
|
- else:
|
|
|
- raise ValueError(tag)
|
|
|
+ raise ValueError(tag)
|
|
|
|
|
|
def get_free_ints(self, tag_label_prefix):
|
|
|
- for t in self._mutagen_file.tags.getall('TXXX:' + tag_label_prefix):
|
|
|
- assert len(t.text) == 1, t
|
|
|
- yield (t.desc, int(t.text[0]))
|
|
|
+ for tag in self._mutagen_file.tags.getall('TXXX:' + tag_label_prefix):
|
|
|
+ assert len(tag.text) == 1, tag
|
|
|
+ yield (tag.desc, int(tag.text[0]))
|
|
|
|
|
|
def get_free_int(self, tag_label):
|
|
|
text = self._get_single_text('TXXX:' + tag_label)
|
|
@@ -88,17 +89,16 @@ class MP4(_mutagen):
|
|
|
assert mutagen_file.tags, mutagen_file
|
|
|
assert isinstance(mutagen_file.tags, mutagen.mp4.MP4Tags), \
|
|
|
mutagen_file.tags
|
|
|
- self._mutagen_file = mutagen_file
|
|
|
+ super().__init__(mutagen_file)
|
|
|
|
|
|
def _get_single(self, tag_label):
|
|
|
tag = self._mutagen_file.tags.get(tag_label, None)
|
|
|
if tag is None:
|
|
|
|
|
|
return None
|
|
|
- elif len(tag) == 1:
|
|
|
+ if len(tag) == 1:
|
|
|
return tag[0]
|
|
|
- else:
|
|
|
- raise ValueError(tag)
|
|
|
+ raise ValueError(tag)
|
|
|
|
|
|
@staticmethod
|
|
|
def _freeform_to_int(freeform):
|
|
@@ -123,8 +123,8 @@ class MP4(_mutagen):
|
|
|
return self._get_single('----:' + tag_label)
|
|
|
|
|
|
def get_free_int(self, tag_label):
|
|
|
- t = self._get_free(tag_label)
|
|
|
- return None if t is None else MP4._freeform_to_int(t)
|
|
|
+ tag = self._get_free(tag_label)
|
|
|
+ return None if tag is None else MP4._freeform_to_int(tag)
|
|
|
|
|
|
def _get_free_uuid(self, tag_label):
|
|
|
tag = self._get_free(tag_label)
|
|
@@ -159,7 +159,7 @@ class MP4(_mutagen):
|
|
|
return self._get_single('\xa9cmt')
|
|
|
|
|
|
def set_comment(self, comment):
|
|
|
- raise NotImplemented()
|
|
|
+ raise NotImplementedError()
|
|
|
|
|
|
def get_track_uuid(self):
|
|
|
return self._get_free_uuid(self._UUID_TAG_KEY)
|