mirror of
https://github.com/beetbox/beets.git
synced 2025-12-06 16:42:42 +01:00
Fix proposal when search result is already a pseudo-release
This commit is contained in:
parent
264e7430c8
commit
9007f38519
2 changed files with 8 additions and 4 deletions
|
|
@ -118,7 +118,7 @@ class MusicBrainzPseudoReleasePlugin(MusicBrainzPlugin):
|
||||||
self,
|
self,
|
||||||
items: Iterable[Item],
|
items: Iterable[Item],
|
||||||
album_info: AlbumInfo,
|
album_info: AlbumInfo,
|
||||||
):
|
) -> AlbumInfo:
|
||||||
if isinstance(album_info, PseudoAlbumInfo):
|
if isinstance(album_info, PseudoAlbumInfo):
|
||||||
for item in items:
|
for item in items:
|
||||||
# particularly relevant for reimport but could also happen during import
|
# particularly relevant for reimport but could also happen during import
|
||||||
|
|
@ -177,7 +177,11 @@ class MusicBrainzPseudoReleasePlugin(MusicBrainzPlugin):
|
||||||
official_release = super().album_info(release)
|
official_release = super().album_info(release)
|
||||||
|
|
||||||
if release.get("status") == _STATUS_PSEUDO:
|
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):
|
elif pseudo_release_ids := self._intercept_mb_release(release):
|
||||||
custom_tags_only = self.config["custom_tags_only"].get(bool)
|
custom_tags_only = self.config["custom_tags_only"].get(bool)
|
||||||
languages = list(config["import"]["languages"].as_str_seq())
|
languages = list(config["import"]["languages"].as_str_seq())
|
||||||
|
|
@ -387,7 +391,7 @@ class PseudoAlbumInfo(AlbumInfo):
|
||||||
**kwargs,
|
**kwargs,
|
||||||
):
|
):
|
||||||
super().__init__(pseudo_release.tracks, **kwargs)
|
super().__init__(pseudo_release.tracks, **kwargs)
|
||||||
self.__dict__["_pseudo_source"] = True
|
self.__dict__["_pseudo_source"] = False
|
||||||
self.__dict__["_official_release"] = official_release
|
self.__dict__["_official_release"] = official_release
|
||||||
for k, v in pseudo_release.items():
|
for k, v in pseudo_release.items():
|
||||||
if k not in kwargs:
|
if k not in kwargs:
|
||||||
|
|
|
||||||
|
|
@ -164,7 +164,7 @@ class TestMBPseudoPlugin(PluginMixin):
|
||||||
pseudo_release: JSONDict,
|
pseudo_release: JSONDict,
|
||||||
):
|
):
|
||||||
album_info = mbpseudo_plugin.album_info(pseudo_release["release"])
|
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.data_source == "MusicBrainzPseudoRelease"
|
||||||
assert album_info.albumstatus == _STATUS_PSEUDO
|
assert album_info.albumstatus == _STATUS_PSEUDO
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue