# -*- 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()))