trackdb: Add support for genre lists
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
parent
31d89d4729
commit
0fc49912ed
|
@ -30,6 +30,14 @@ class TestTrack(unittest.TestCase):
|
||||||
self.assertEqual(trak.tags["discnumber"], 1)
|
self.assertEqual(trak.tags["discnumber"], 1)
|
||||||
self.assertEqual(trak["discnumber"], "01")
|
self.assertEqual(trak["discnumber"], "01")
|
||||||
|
|
||||||
|
def test_track_genres(self):
|
||||||
|
trak = track.Track(1, test_tracks / "02 - Test {Disc 2}.ogg")
|
||||||
|
self.assertEqual(trak.tags["genre"], [ "Test", "Genre", "List" ])
|
||||||
|
self.assertEqual(trak["genre"], "Test, Genre, List")
|
||||||
|
lst = [ "Test", "Genre", "List" ]
|
||||||
|
for g in trak.genres():
|
||||||
|
self.assertEqual(g, lst.pop(0))
|
||||||
|
|
||||||
def test_track_length(self):
|
def test_track_length(self):
|
||||||
trak = track.Track(1, test_tracks / "01 - Test Track.ogg")
|
trak = track.Track(1, test_tracks / "01 - Test Track.ogg")
|
||||||
self.assertEqual(trak.tags["length"], 10)
|
self.assertEqual(trak.tags["length"], 10)
|
||||||
|
|
|
@ -14,6 +14,8 @@ class Track:
|
||||||
self.tags["artist"] = f.get("artist", ["Unknown Artist"])[0]
|
self.tags["artist"] = f.get("artist", ["Unknown Artist"])[0]
|
||||||
self.tags["artist"] = f.get("albumartist", [self.tags["artist"]])[0]
|
self.tags["artist"] = f.get("albumartist", [self.tags["artist"]])[0]
|
||||||
self.tags["discnumber"] = int(f.get("discnumber", [1])[0])
|
self.tags["discnumber"] = int(f.get("discnumber", [1])[0])
|
||||||
|
self.tags["genre"] = f.get("genre", [ "" ])[0]
|
||||||
|
self.tags["genre"] = [ g.strip() for g in re.split(",|;|/|:", self.tags["genre"]) ]
|
||||||
self.tags["length"] = int(f.info.length)
|
self.tags["length"] = int(f.info.length)
|
||||||
self.tags["title"] = f.get("title", [""])[0]
|
self.tags["title"] = f.get("title", [""])[0]
|
||||||
self.tags["tracknumber"] = int(f.get("tracknumber", [0])[0])
|
self.tags["tracknumber"] = int(f.get("tracknumber", [0])[0])
|
||||||
|
@ -30,8 +32,14 @@ class Track:
|
||||||
return f"{tag:02}"
|
return f"{tag:02}"
|
||||||
elif item == "lastplayed":
|
elif item == "lastplayed":
|
||||||
return "Never" if tag == None else str(tag)
|
return "Never" if tag == None else str(tag)
|
||||||
|
elif item == "genre":
|
||||||
|
return ", ".join(self.tags["genre"])
|
||||||
return None if tag == None else str(tag)
|
return None if tag == None else str(tag)
|
||||||
|
|
||||||
|
def genres(self):
|
||||||
|
for g in self.tags["genre"]:
|
||||||
|
yield g
|
||||||
|
|
||||||
def played(self):
|
def played(self):
|
||||||
self.tags["playcount"] += 1
|
self.tags["playcount"] += 1
|
||||||
self.tags["lastplayed"] = datetime.date.today()
|
self.tags["lastplayed"] = datetime.date.today()
|
||||||
|
|
|
@ -47,6 +47,7 @@ generate_track(15, "Test Album/02 - Test {Disc 2}.ogg", { "Title" : "Test {Disc
|
||||||
"albumartist" : "Test Album Artist",
|
"albumartist" : "Test Album Artist",
|
||||||
"artist" : "Test Artist",
|
"artist" : "Test Artist",
|
||||||
"album" : "Test Album {Disc 2}",
|
"album" : "Test Album {Disc 2}",
|
||||||
|
"genre" : "Test, Genre, List",
|
||||||
"originalyear" : "2019",
|
"originalyear" : "2019",
|
||||||
"date" : "2020-10-18"})
|
"date" : "2020-10-18"})
|
||||||
generate_track(20, "Test Album/03 - Test [Disk One].ogg", { "Title" : "Test [Disk One]",
|
generate_track(20, "Test Album/03 - Test [Disk One].ogg", { "Title" : "Test [Disk One]",
|
||||||
|
|
Loading…
Reference in New Issue