curds: Keep a list of created tracks
We'll use this for scanning and updating the library later. For now, just keep everything in a list and do a uniqueness test whenever something new is added. Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
parent
c66405bd80
commit
2a98aac6de
|
@ -1,4 +1,5 @@
|
|||
# Copyright 2019 (c) Anna Schumaker.
|
||||
import mutagen
|
||||
import unittest
|
||||
import os
|
||||
import track
|
||||
|
@ -19,6 +20,7 @@ class TestTrackClass(unittest.TestCase):
|
|||
self.assertEqual(t.album.date, 2019)
|
||||
self.assertEqual(t.album.genre, "Test")
|
||||
self.assertEqual(t.album.albumartist, "Test Artist")
|
||||
self.assertEqual(len(track.tracklist), 0)
|
||||
|
||||
def test_init_empty(self):
|
||||
p = [ test_tracks, "00 - Empty Track.ogg" ]
|
||||
|
@ -33,6 +35,7 @@ class TestTrackClass(unittest.TestCase):
|
|||
self.assertEqual(t.album.date, 0)
|
||||
self.assertEqual(t.album.genre, "Unknown")
|
||||
self.assertEqual(t.album.albumartist, "Unknown Artist")
|
||||
self.assertEqual(len(track.tracklist), 0)
|
||||
|
||||
def test_init_discno_detect(self):
|
||||
join = os.path.join
|
||||
|
@ -46,5 +49,21 @@ class TestTrackClass(unittest.TestCase):
|
|||
self.assertEqual(track.Track(join(test_tracks, "09 - Test {Disc 02}.ogg")).discnumber, 2)
|
||||
self.assertEqual(track.Track(join(test_tracks, "10 - Test {Disc 20}.ogg")).discnumber, 20)
|
||||
|
||||
def test_track_add(self):
|
||||
t = track.add(os.path.join(test_tracks, "01 - Test Track.ogg"))
|
||||
self.assertIsNotNone(t)
|
||||
self.assertEqual(len(track.tracklist), 1)
|
||||
self.assertIn(t, track.tracklist)
|
||||
|
||||
self.assertIsNone(track.add(os.path.join(test_tracks, "01 - Test Track.ogg")))
|
||||
self.assertEqual(len(track.tracklist), 1)
|
||||
self.assertIsNone(track.add("99 - No Such Track.ogg"))
|
||||
self.assertEqual(len(track.tracklist), 1)
|
||||
|
||||
u = track.add(os.path.join(test_tracks, "02 - Test {Disc 2}.ogg"))
|
||||
self.assertIsNotNone(u)
|
||||
self.assertEqual(len(track.tracklist), 2)
|
||||
self.assertIn(u, track.tracklist)
|
||||
|
||||
if __name__ == '__main--':
|
||||
unittest.main()
|
||||
|
|
|
@ -5,6 +5,7 @@ import os
|
|||
import re
|
||||
|
||||
discno_map = { "one" : "1", "two" : "2", "three" : "3", "four" : "4", "five" : "5" }
|
||||
tracklist = [ ]
|
||||
|
||||
class Track:
|
||||
def __init__(self, path):
|
||||
|
@ -23,3 +24,13 @@ class Track:
|
|||
match = re.search("([1-9][0-9]*)|one|two|three|four|five", discno.lower())
|
||||
if match:
|
||||
self.discnumber = int(discno_map.get(match.group(), match.group()))
|
||||
|
||||
|
||||
def add(path):
|
||||
try:
|
||||
if not any(t.path == path for t in tracklist):
|
||||
track = Track(path)
|
||||
tracklist.append(track)
|
||||
return track
|
||||
except mutagen.MutagenError:
|
||||
return None
|
||||
|
|
Loading…
Reference in New Issue