PICARD-1723: Consider disc number when comparing metadata

Improves results when matching files to multi-disc albums.
This commit is contained in:
Philipp Wolfer
2020-02-03 08:18:19 +01:00
parent 793aff31fb
commit d653270b71
2 changed files with 16 additions and 1 deletions

View File

@@ -123,6 +123,8 @@ class Metadata(MutableMapping):
('album', 12),
('tracknumber', 6),
('totaltracks', 5),
('discnumber', 5),
('totaldiscs', 4),
]
multi_valued_joiner = MULTI_VALUED_JOINER
@@ -172,7 +174,7 @@ class Metadata(MutableMapping):
a = self[name]
b = other[name]
if a and b:
if name in ('tracknumber', 'totaltracks'):
if name in ('tracknumber', 'totaltracks', 'discnumber', 'totaldiscs'):
try:
ia = int(a)
ib = int(b)

View File

@@ -280,7 +280,20 @@ class MetadataTest(PicardTestCase):
m1["tracknumber"] = "1"
m2 = Metadata()
m2["tracknumber"] = "2"
m3 = Metadata()
m3["tracknumber"] = "2"
self.assertEqual(m1.compare(m2), 0)
self.assertEqual(m2.compare(m3), 1)
def test_compare_discnumber_difference(self):
m1 = Metadata()
m1["discnumber"] = "1"
m2 = Metadata()
m2["discnumber"] = "2"
m3 = Metadata()
m3["discnumber"] = "2"
self.assertEqual(m1.compare(m2), 0)
self.assertEqual(m2.compare(m3), 1)
def test_compare_deleted(self):
m1 = Metadata()