db: Store lastplayed as a timestamp

Instead of just a date object.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
Anna Schumaker 2021-08-26 17:06:08 -04:00
parent 7dd3ff8473
commit ad9cf2b135
2 changed files with 10 additions and 8 deletions

View File

@ -77,13 +77,15 @@ class TestTrackTable(unittest.TestCase):
def test_track_played(self):
track = db.make_fake_track(1, 1.234, "Test Title", "/a/b/c/d.efg")
today = datetime.date.today()
yesterday = today - datetime.timedelta(days=1)
now = datetime.datetime.now()
yesterday = datetime.date.today() - datetime.timedelta(days=1)
track.played()
self.assertEqual(track.playcount, 1)
self.assertEqual(track.lastplayed, today)
self.assertEqual(track.lastplayed.replace(microsecond=0),
now.replace(microsecond=0))
track.last_played(4, yesterday)
self.assertEqual(track.playcount, 4)
self.assertEqual(track.lastplayed, yesterday)
self.assertEqual(track.lastplayed.replace(microsecond=0),
datetime.datetime.combine(yesterday, datetime.time()))

View File

@ -80,14 +80,14 @@ class Track(objects.Row):
def played(self):
execute("UPDATE tracks "
"SET playcount=playcount+1, lastplayed=? "
"WHERE trackid=?", [ datetime.date.today(), self.rowid ])
"WHERE trackid=?", [ datetime.datetime.now(), self.rowid ])
commit()
def last_played(self, playcount, lastplayed):
timestamp = datetime.datetime.combine(lastplayed, datetime.time())
execute("UPDATE tracks "
"SET playcount=?, lastplayed=? "
"WHERE trackid=?", [ playcount, lastplayed, self.rowid ])
"WHERE trackid=?", [ playcount, timestamp, self.rowid ])
commit()
@ -106,7 +106,7 @@ class TrackTable(objects.Table):
" yearid INTEGER, "
" number INTEGER, "
" playcount INTEGER DEFAULT 0,"
" lastplayed DATE DEFAULT NULL, "
" lastplayed TIMESTAMP DEFAULT NULL, "
" length REAL, "
" title TEXT, "
" path TEXT UNIQUE, "