diff --git a/pype/plugins/nuke/publish/collect_active_viewer.py b/pype/plugins/nuke/publish/collect_active_viewer.py new file mode 100644 index 0000000000..3bcc1367f3 --- /dev/null +++ b/pype/plugins/nuke/publish/collect_active_viewer.py @@ -0,0 +1,14 @@ +import pyblish.api +import nuke + + +class CollectActiveViewer(pyblish.api.ContextPlugin): + """Collect any active viewer from nodes + """ + + order = pyblish.api.CollectorOrder + 0.3 + label = "Collect Active Viewer" + hosts = ["nuke"] + + def process(self, context): + context.data["ViewerProcess"] = nuke.ViewerProcess.node() diff --git a/pype/plugins/nuke/publish/extract_review.py b/pype/plugins/nuke/publish/extract_review.py index bdbd3d17a6..fee1a5f4cd 100644 --- a/pype/plugins/nuke/publish/extract_review.py +++ b/pype/plugins/nuke/publish/extract_review.py @@ -140,7 +140,7 @@ class ExtractDataForReview(pype.api.Extractor): previous_node = reformat_node temporary_nodes.append(reformat_node) - viewer_process_node = nuke.ViewerProcess.node() + viewer_process_node = instance.context.data.get("ViewerProcess") dag_node = None if viewer_process_node: dag_node = nuke.createNode(viewer_process_node.Class()) diff --git a/pype/plugins/nuke/publish/validate_active_viewer.py b/pype/plugins/nuke/publish/validate_active_viewer.py new file mode 100644 index 0000000000..bcf7cab6b3 --- /dev/null +++ b/pype/plugins/nuke/publish/validate_active_viewer.py @@ -0,0 +1,18 @@ +import pyblish.api +import nuke + + +class ValidateActiveViewer(pyblish.api.ContextPlugin): + """Validate presentse of the active viewer from nodes + """ + + order = pyblish.api.ValidatorOrder + label = "Validate Active Viewer" + hosts = ["nuke"] + + def process(self, context): + viewer_process_node = context.data.get("ViewerProcess") + + assert viewer_process_node, ( + "Missing active viewer process! Please click on output write node and push key number 1-9" + )