Merge pull request #3863 from m0zes/trackdisambig

Add trackdisambig from musicbrainz.
This commit is contained in:
Adrian Sampson 2021-02-27 19:37:33 -05:00 committed by GitHub
commit d226632eeb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 22 additions and 1 deletions

View file

@ -223,6 +223,8 @@ def track_info(recording, index=None, medium=None, medium_index=None,
if recording.get('length'):
info.length = int(recording['length']) / (1000.0)
info.trackdisambig = recording.get('disambiguation')
lyricist = []
composer = []
composer_sort = []

View file

@ -477,6 +477,7 @@ class Item(LibModel):
'mb_artistid': types.STRING,
'mb_albumartistid': types.STRING,
'mb_releasetrackid': types.STRING,
'trackdisambig': types.STRING,
'albumtype': types.STRING,
'label': types.STRING,
'acoustid_fingerprint': types.STRING,

View file

@ -180,6 +180,9 @@ New features:
:bug:`3478`
* Removes usage of the bs1770gain replaygain backend.
Thanks to :user:`SamuelCook`.
* Added ``trackdisambig`` which stores the recording disambiguation from
MusicBrainz for each track.
:bug:`1904`
Fixes:

View file

@ -111,7 +111,8 @@ class MBAlbumInfoTest(_common.TestCase):
})
return release
def _make_track(self, title, tr_id, duration, artist=False, video=False):
def _make_track(self, title, tr_id, duration, artist=False, video=False,
disambiguation=None):
track = {
'title': title,
'id': tr_id,
@ -131,6 +132,8 @@ class MBAlbumInfoTest(_common.TestCase):
]
if video:
track['video'] = 'true'
if disambiguation:
track['disambiguation'] = disambiguation
return track
def test_parse_release_with_year(self):
@ -445,6 +448,18 @@ class MBAlbumInfoTest(_common.TestCase):
self.assertEqual(d.tracks[1].title, 'TITLE TWO')
self.assertEqual(d.tracks[2].title, 'TITLE VIDEO')
def test_track_disambiguation(self):
tracks = [self._make_track('TITLE ONE', 'ID ONE', 100.0 * 1000.0),
self._make_track('TITLE TWO', 'ID TWO', 200.0 * 1000.0,
disambiguation="SECOND TRACK")]
release = self._make_release(tracks=tracks)
d = mb.album_info(release)
t = d.tracks
self.assertEqual(len(t), 2)
self.assertEqual(t[0].trackdisambig, None)
self.assertEqual(t[1].trackdisambig, "SECOND TRACK")
class ParseIDTest(_common.TestCase):
def test_parse_id_correct(self):