|
@@ -27,6 +27,11 @@ class Track:
|
|
|
def has_mp4_tags(self):
|
|
|
return self.has_tags and isinstance(self._mutagen.tags, mutagen.mp4.MP4Tags)
|
|
|
|
|
|
+ def _get_id3_textframe_int(self, tag_label):
|
|
|
+ values = self._mutagen.tags['TXXX:' + tag_label].text
|
|
|
+ assert len(values) == 1, values
|
|
|
+ return int(values[0])
|
|
|
+
|
|
|
def _get_mp4_freeform_int(self, tag_label):
|
|
|
tag, = self._mutagen.tags['----:' + tag_label]
|
|
|
|
|
@@ -51,12 +56,10 @@ class Track:
|
|
|
player, library_id, register_dt.timestamp(),
|
|
|
)
|
|
|
if self.has_id3_tags:
|
|
|
- tag_label_id3 = 'TXXX:' + tag_label
|
|
|
- if tag_label_id3 in self._mutagen.tags:
|
|
|
- reg_data = self._mutagen.tags[tag_label_id3].text
|
|
|
- assert len(reg_data) == 1, reg_data
|
|
|
- assert int(reg_data[0]) == play_count, (reg_data, play_count)
|
|
|
- else:
|
|
|
+ try:
|
|
|
+ reg_count = self._get_id3_textframe_int(tag_label)
|
|
|
+ assert reg_count == play_count, (reg_count, play_count)
|
|
|
+ except KeyError:
|
|
|
|
|
|
|
|
|
tag = mutagen.id3.TXXX(
|