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:
parent
2753480052
commit
53c61160bc
|
@ -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]
|
||||
|
||||
|
|
|
@ -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):
|
||||
|
|
Loading…
Reference in New Issue