Merge branch 'master' into patch-1

This commit is contained in:
Meth Munindradasa 2026-02-13 08:32:39 +11:00 committed by GitHub
commit e7dfbc96b1
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 21 additions and 2 deletions

View file

@ -477,7 +477,7 @@ class MusicBrainzPlugin(MusicBrainzAPIMixin, MetadataSourcePlugin):
release["artist-credit"], include_join_phrase=False
)
ntracks = sum(len(m["tracks"]) for m in release["media"])
ntracks = sum(len(m.get("tracks", [])) for m in release["media"])
# The MusicBrainz API omits 'relations'
# when the release has more than 500 tracks. So we use browse_recordings
@ -512,7 +512,7 @@ class MusicBrainzPlugin(MusicBrainzAPIMixin, MetadataSourcePlugin):
if format in config["match"]["ignored_media"].as_str_seq():
continue
all_tracks = medium["tracks"]
all_tracks = medium.get("tracks", [])
if (
"data-tracks" in medium
and not config["match"]["ignore_data_tracks"]

View file

@ -16,6 +16,8 @@ Unreleased
Bug fixes
~~~~~~~~~
- :doc:`plugins/musicbrainz`: Fix crash when release mediums lack the ``tracks``
key. :bug:`6302`
- :doc:`plugins/musicbrainz`: Fix search terms escaping. :bug:`6347`
- :doc:`plugins/musicbrainz`: Fix support for ``alias`` and ``tracks``
:conf:`plugins.musicbrainz:extra_tags`.

View file

@ -691,6 +691,23 @@ class MBAlbumInfoTest(MusicBrainzTestCase):
assert t[0].trackdisambig is None
assert t[1].trackdisambig == "SECOND TRACK"
def test_missing_tracks(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)
release["media"].append(release["media"][0])
del release["media"][0]["tracks"]
del release["media"][0]["data-tracks"]
d = self.mb.album_info(release)
assert d.mediums == 2
class ArtistFlatteningTest(unittest.TestCase):
def _credit_dict(self, suffix=""):