Add mbpseudo plugin for pseudo-release proposals #5888
+435
−0
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Hi there, I wanted to implement this for my foreign music and I would be glad to get some feedback from the maintainers. I will address all the TODOs, but first I'd like to know if this fits.
The auto-tagger can already resolve official releases from pseudo-releases, but this only happens if the user provides search IDs manually. Similarly,
import.languages
can be used to search for artist aliases (and that does happen automatically), but that doesn't apply to album and track names.This plugin proactively searches for pseudo-releases during import and adds them as candidates. Since it also depends on MusicBrainz, there are some special considerations for the default logic (which is now a plugin as well). However, at the very least it expects a list of desired names of scripts in the configuration, for example:
It will use that to search for pseudo-releases that match some of the desired scripts, but will only do so if the input tracks match against an official release that is not in one of the desired scripts.
Standalone Usage
This would be the recommended approach, which involves disabling the
musicbrainz
plugin. Thembpseudo
plugin will manually delegate the initial search to it. Since the data source of official releases will still match MusicBrainz, weights are still relevant:A setup like that would ensure that the pseudo-releases have slightly more preference when choosing the final proposal.
Combined Usage
I initially thought it would be important to coexist with the
musicbrainz
plugin when it's enabled, and reuse as much of its data as possible to avoid redundant calls to the MusicBrainz API. I have the impression this is not really important in the end, and maybe things could be simplified if we decide that both plugins shouldn't coexist.As it is right now, using both plugins at the same time would still work, but it'll only avoid redundancy if
musicbrainz
emits its candidates beforembpseudo
,which is why I modified the plugin-loading logic slightly to guarantee ordering. I'm not sure if you think this could be an issue, but I think themusicbrainz
plugin is also used by other plugins and I can imagine it's good to guarantee the order that is declared in the configuration?If the above is fulfilled, the
mbpseudo
plugin will use listeners to intercept data emitted by themusicbrainz
plugin and check if any of them have pseudo-releases that might be desirable.To Do