lib: Add an artistsort() function to the Metadata class

This is used to get the sort order for artists or album artists,
depending on which is set.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
Anna Schumaker 2021-07-23 09:58:11 -04:00
parent b75d43a304
commit 52a36a2f83
3 changed files with 9 additions and 0 deletions

View File

@ -22,6 +22,10 @@ class Metadata:
artist = self.file.get("artist", [ "Unknown Artist" ])
return self.file.get("albumartist", artist)[0]
def artistsort(self):
sort = self.file.get("artistsort", [ None ])
return self.file.get("albumartistsort", sort)[0]
def decade(self):
return (self.year() // 10) * 10

View File

@ -17,6 +17,7 @@ class TestMetadata(unittest.TestCase):
with metadata.Metadata(track_01) as mdf:
self.assertEqual(mdf.album(), "Test Album")
self.assertEqual(mdf.artist(), "Test Artist")
self.assertEqual(mdf.artistsort(), "Artist, Test")
self.assertEqual(mdf.decade(), 2010)
self.assertEqual(mdf.discnumber(), 1)
self.assertEqual(mdf.genres(), [ "Test" ])
@ -28,5 +29,6 @@ class TestMetadata(unittest.TestCase):
def test_metadata_track_02(self):
with metadata.Metadata(track_02) as mdf:
self.assertEqual(mdf.artist(), "Test Album Artist")
self.assertEqual(mdf.artistsort(), "Album Artist, Test")
self.assertEqual(mdf.genres(), [ "Test", "Genre", "List" ])
self.assertEqual(mdf.year(), 2019)

View File

@ -37,6 +37,7 @@ def generate_track(length, filename, tags={}):
generate_track( 0, "Test Album/00 - Empty Track.ogg")
generate_track(10, "Test Album/01 - Test Track.ogg", { "title" : "Test Track",
"artist" : "Test Artist",
"artistsort" : "Artist, Test",
"album" : "Test Album",
"genre" : "Test",
"date" : "2019-02",
@ -45,7 +46,9 @@ generate_track(10, "Test Album/01 - Test Track.ogg", { "title" : "Test Track",
"discnumber" : "1" })
generate_track(15, "Test Album/02 - Test {Disc 2}.ogg", { "Title" : "Test {Disc 2}",
"albumartist" : "Test Album Artist",
"albumartistsort" : "Album Artist, Test",
"artist" : "Test Artist",
"artistsort" : "Artist, Test",
"album" : "Test Album {Disc 2}",
"genre" : "Test, Genre, List",
"originalyear" : "2019",