Fix proposal when search result is already a pseudo-release

This commit is contained in:
asardaes 2025-11-22 19:10:00 +01:00 committed by Alexis Sardá
parent 264e7430c8
commit 9007f38519
2 changed files with 8 additions and 4 deletions

View file

@ -118,7 +118,7 @@ class MusicBrainzPseudoReleasePlugin(MusicBrainzPlugin):
self,
items: Iterable[Item],
album_info: AlbumInfo,
):
) -> AlbumInfo:
if isinstance(album_info, PseudoAlbumInfo):
for item in items:
# particularly relevant for reimport but could also happen during import
@ -177,7 +177,11 @@ class MusicBrainzPseudoReleasePlugin(MusicBrainzPlugin):
official_release = super().album_info(release)
if release.get("status") == _STATUS_PSEUDO:
return official_release
# already pseudo-release, but wrap in our class for the other checks
return PseudoAlbumInfo(
pseudo_release=official_release,
official_release=official_release,
)
elif pseudo_release_ids := self._intercept_mb_release(release):
custom_tags_only = self.config["custom_tags_only"].get(bool)
languages = list(config["import"]["languages"].as_str_seq())
@ -387,7 +391,7 @@ class PseudoAlbumInfo(AlbumInfo):
**kwargs,
):
super().__init__(pseudo_release.tracks, **kwargs)
self.__dict__["_pseudo_source"] = True
self.__dict__["_pseudo_source"] = False
self.__dict__["_official_release"] = official_release
for k, v in pseudo_release.items():
if k not in kwargs:

View file

@ -164,7 +164,7 @@ class TestMBPseudoPlugin(PluginMixin):
pseudo_release: JSONDict,
):
album_info = mbpseudo_plugin.album_info(pseudo_release["release"])
assert not isinstance(album_info, PseudoAlbumInfo)
assert isinstance(album_info, PseudoAlbumInfo)
assert album_info.data_source == "MusicBrainzPseudoRelease"
assert album_info.albumstatus == _STATUS_PSEUDO