From ad9cf2b135414d61f8285399ac5eb50576c95b6b Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Thu, 26 Aug 2021 17:06:08 -0400 Subject: [PATCH] db: Store lastplayed as a timestamp Instead of just a date object. Signed-off-by: Anna Schumaker --- db/test_track.py | 10 ++++++---- db/track.py | 8 ++++---- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/db/test_track.py b/db/test_track.py index 46c8572..a77421f 100644 --- a/db/test_track.py +++ b/db/test_track.py @@ -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())) diff --git a/db/track.py b/db/track.py index 1333cb3..9447515 100644 --- a/db/track.py +++ b/db/track.py @@ -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, "