curds: Implement a track.decade() function

We could figure this out in the decade playlist code, but it's easier to
just do it inside the track itself.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
Anna Schumaker 2019-12-10 08:58:27 -05:00
parent 409ce6706c
commit cac252cc17
4 changed files with 11 additions and 9 deletions

View File

@ -5,9 +5,6 @@ from .. import notify
DECADE_ICON = "x-office-calendar"
def decade(year):
return f"{int(year) // 10 * 10}s"
class DecadePlaylist(playlist.Playlist):
def alloc_child(self, name, icon):
@ -31,4 +28,4 @@ class DecadeNode(node.PlaylistNode):
[ "date", "artist", "album", "discnumber", "tracknumber" ])
def new_track(self, track):
self.find_child(decade(track["date"]), DECADE_ICON).add(track)
self.find_child(track.decade(), DECADE_ICON).add(track)

View File

@ -17,11 +17,6 @@ class TestDecadePlaylist(unittest.TestCase):
notify.clear()
trak.reset()
def test_decade(self):
self.assertEqual(decade.decade( 1971), "1970s")
self.assertEqual(decade.decade( 1989), "1980s")
self.assertEqual(decade.decade("2222"), "2220s")
def test_decade_node(self):
dnode = decade.DecadeNode()
self.assertIsInstance(dnode, node.PlaylistNode)

View File

@ -49,6 +49,12 @@ class TestTrackTag(unittest.TestCase):
self.assertEqual(t.tracknumber, 0)
self.assertEqual(t.tracktotal, 0)
def test_track_decade(self):
t = track.Track(os.path.join(test_tracks, "01 - Test Track.ogg"))
self.assertEqual(t.decade(), "2010s")
t.date = 1975
self.assertEqual(t.decade(), "1970s")
def test_track_getitem(self):
p = [ test_tracks, "01 - Test Track.ogg" ]
t = track.Track(os.path.join(*p))

View File

@ -3,6 +3,7 @@ from . import tagfile
from .. import notify
from .. import sort
import os
import sys
class Track:
def __init__(self, path):
@ -31,6 +32,9 @@ class Track:
item = vars(self).get(key)
return str(item) if item != None else None
def decade(self):
return f"{self.date // 10 * 10}s"
def sort_key(self, fields):
ret = [ ]
for field in fields: