scanner: Add release date to the track metadata parser

This gives us a datetime.date() structure filled in with the release
date of the track.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
Anna Schumaker 2021-11-13 21:10:52 -05:00
parent 2753480052
commit 53c61160bc
2 changed files with 12 additions and 0 deletions

View File

@ -1,4 +1,5 @@
# Copyright 2021 (c) Anna Schumaker.
import datetime
import mutagen
import re
@ -42,6 +43,14 @@ class Metadata:
def length(self):
return int(self.file.info.length)
def release(self):
date = self.file.get("date", [ "0" ])
date = self.file.get("originalyear", date)[0].split("-")
year = int(date[0]) if len(date) > 0 else 1
month = int(date[1]) if len(date) > 1 else 1
day = int(date[2]) if len(date) > 2 else 1
return datetime.date(max(year, 1), month, day)
def title(self):
return self.file.get("title", [ "" ])[0]

View File

@ -1,4 +1,5 @@
# Copyright 2021 (c) Anna Schumaker.
import datetime
import pathlib
import scanner
import unittest
@ -24,6 +25,7 @@ class TestMetadata(unittest.TestCase):
self.assertEqual(mdf.discsubtitle(), None)
self.assertEqual(mdf.genres(), [ "Test" ])
self.assertEqual(mdf.length(), 10)
self.assertEqual(mdf.release(), datetime.date(2019, 2, 1))
self.assertEqual(mdf.title(), "Test Track")
self.assertEqual(mdf.tracknumber(), 1)
self.assertEqual(mdf.year(), 2019)
@ -34,6 +36,7 @@ class TestMetadata(unittest.TestCase):
self.assertEqual(mdf.artistsort(), "Album Artist, Test")
self.assertEqual(mdf.discsubtitle(), "Electric Boogaloo")
self.assertEqual(mdf.genres(), [ "Test", "Genre", "List" ])
self.assertEqual(mdf.release(), datetime.date(2019, 1, 1))
self.assertEqual(mdf.year(), 2019)
def test_metadata_text_txt(self):