From: Nick Bowler Date: Thu, 14 May 2020 00:58:32 +0000 (-0400) Subject: karaoke-flagger: Enhance to also flag drama tracks. X-Git-Url: https://git.draconx.ca/gitweb/picard-plugins.git/commitdiff_plain/679ea0782e2eaab1975eee11a5b1622fbdbb7957 karaoke-flagger: Enhance to also flag drama tracks. Seems like a good fit for this plugin to flag drama tracks based on work relationships just like we currently flag karaoke tracks based on recording relationships. As this is now the karaoke (plus other stuff) flagger plugin, tweak the plugin name accordingly. --- diff --git a/karaoke-flagger.py b/karaoke-flagger.py index 11c327e..a16c94c 100644 --- a/karaoke-flagger.py +++ b/karaoke-flagger.py @@ -6,18 +6,25 @@ # 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_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.

+PLUGIN_DESCRIPTION = u'''

This plugin sets metadata variables for +certain types of recordings, so that tagger scripts can incoporate +what sort of track we are looking at into the 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.

+
+
%_karaoke%
+
Set to "yes" if the track is a karaoke recording.
+
%_drama%
+
Set to "yes" if the track is a recording of an audio drama.
+
+ +

For example, you could use a tagger script such as +$if(%_karaoke%,$set(comment:karaoke,%_karaoke%)) +to tag karaoke tracks as such in order to help generate playlists +for your next karaoke dance party.

''' -PLUGIN_VERSION = "1" +PLUGIN_VERSION = "2" PLUGIN_API_VERSIONS = ["2.0"] PLUGIN_LICENSE = "GPL-3.0-or-later" @@ -32,11 +39,12 @@ def add_metadata(tagger, metadata, track, release): recording = track.get("recording", track) for r in 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 r["type-id"] == "39a08d0e-26e4-44fb-ae19-906f5fe9435d": + if r["direction"] == "backward": + metadata["~karaoke"] = "yes" + if r["target-type"] == "work": + if r["work"]["type-id"] == "40ed00fb-cd1d-3de5-afcc-4d08720d63e7": + metadata["~drama"] = "yes" if modulename() in config.setting["enabled_plugins"]: register_track_metadata_processor(add_metadata)