db: Give Tracks a Decade property and genres() function
For accessing a Track's Decade playlist or list of genres Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
parent
f6c72ed081
commit
32dcd83865
|
@ -16,6 +16,7 @@ class TestTrack(unittest.TestCase):
|
|||
self.assertIsInstance(track.artist, db.artist.Artist)
|
||||
self.assertIsInstance(track.album, db.album.Album)
|
||||
self.assertIsInstance(track.disc, db.disc.Disc)
|
||||
self.assertIsInstance(track.decade, db.decade.Decade)
|
||||
self.assertIsInstance(track.year, db.year.Year)
|
||||
self.assertEqual(track.number, 1)
|
||||
self.assertEqual(track.playcount, 0)
|
||||
|
@ -23,6 +24,14 @@ class TestTrack(unittest.TestCase):
|
|||
self.assertEqual(track.length, 1.234)
|
||||
self.assertEqual(track.title, "Test Title")
|
||||
|
||||
def test_genres(self):
|
||||
track = db.make_fake_track(1, 1.234, "Test Title", "/a/b/c/1.ogg")
|
||||
self.assertEqual(track.genres(), [ ])
|
||||
|
||||
genre = db.genre.Table.find("Test Genre")
|
||||
genre.add_track(track)
|
||||
self.assertEqual(track.genres(), [ genre ])
|
||||
|
||||
def test_played(self):
|
||||
track = db.make_fake_track(1, 1.234, "Test Title", "/a/b/c/1.ogg")
|
||||
track.played()
|
||||
|
|
10
db/track.py
10
db/track.py
|
@ -18,6 +18,7 @@ from . import artist
|
|||
from . import album
|
||||
from . import decade
|
||||
from . import disc
|
||||
from . import genre
|
||||
from . import library
|
||||
from . import sql
|
||||
from . import table
|
||||
|
@ -32,6 +33,7 @@ class Track(GObject.GObject):
|
|||
self._artist = artist.Table.get(row["artistid"])
|
||||
self._album = album.Table.get(row["albumid"])
|
||||
self._disc = disc.Table.get(row["discid"])
|
||||
self._decade = decade.Table.get(row["decadeid"])
|
||||
self._year = year.Table.get(row["yearid"])
|
||||
self._number = row["number"]
|
||||
self._playcount = row["playcount"]
|
||||
|
@ -55,6 +57,9 @@ class Track(GObject.GObject):
|
|||
@GObject.Property
|
||||
def disc(self): return self._disc
|
||||
|
||||
@GObject.Property
|
||||
def decade(self): return self._decade
|
||||
|
||||
@GObject.Property
|
||||
def year(self): return self._year
|
||||
|
||||
|
@ -84,6 +89,11 @@ class Track(GObject.GObject):
|
|||
@GObject.Property
|
||||
def path(self): return self._path
|
||||
|
||||
def genres(self):
|
||||
rows = sql.execute(f"SELECT genreid FROM genre_map WHERE trackid=?",
|
||||
[ self.rowid ]).fetchall()
|
||||
return [ genre.Table.get(row[0]) for row in rows ]
|
||||
|
||||
def update(self, column, newval):
|
||||
sql.execute(f"UPDATE tracks SET {column}=? WHERE trackid=?",
|
||||
[ newval, self.rowid ])
|
||||
|
|
Loading…
Reference in New Issue