# -*- coding: utf-8 -*- # # Copyright © 2019 Nick Bowler # # License GPLv3+: GNU General Public License version 3 or any later version. # This is free software: you are free to change and redistribute it. # There is NO WARRANTY, to the extent permitted by law. PLUGIN_NAME = u"Karaoke Flagger" PLUGIN_AUTHOR = u"Nick Bowler" PLUGIN_DESCRIPTION = u'''

This plugin sets a metadata variable for recordings with the "karaoke version of" relation, so that tagger scripts can incorporate this fact into file tags.

The metadata variable %_karaoke% will be set to "yes" on karaoke tracks, and left unset otherwise. So a tagger script might use $if(%_karaoke%,$set(comment:karaoke,%_karaoke%)), for example, to embed that into the file's comment tag.

''' PLUGIN_VERSION = "0" PLUGIN_API_VERSIONS = ["2.0"] PLUGIN_LICENSE = "GPL-3.0-or-later" from picard import (config, log) from picard.metadata import register_track_metadata_processor def modulename(): return modulename.__module__[len("picard.plugins."):] def add_metadata(tagger, metadata, track, release): for r in track["recording"]["relations"]: # 'karaoke version of' is the backward relation of this type... if r["type-id"] != "39a08d0e-26e4-44fb-ae19-906f5fe9435d": continue if r["direction"] == "backward": metadata["~karaoke"] = "yes" return if modulename() in config.setting["enabled_plugins"]: register_track_metadata_processor(add_metadata) log.info("%s activated" % (modulename())) else: log.debug("%s disabled in configuration" % (modulename()))