forked from ynput/OpenPype
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #3 from quadproduction/mod_kitsu_implement_pyblish…
…_plugins Module kitsu implement pyblish plugins
- Loading branch information
Showing
7 changed files
with
198 additions
and
49 deletions.
There are no files selected for viewing
18 changes: 18 additions & 0 deletions
18
openpype/modules/kitsu/plugins/publish/collect_kitsu_credential.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
# -*- coding: utf-8 -*- | ||
import os | ||
|
||
import gazu | ||
import pyblish.api | ||
|
||
|
||
class CollectKitsuSession(pyblish.api.ContextPlugin): #rename log in | ||
"""Collect Kitsu session using user credentials""" | ||
|
||
order = pyblish.api.CollectorOrder | ||
label = "Kitsu user session" | ||
# families = ["kitsu"] | ||
|
||
def process(self, context): | ||
|
||
gazu.client.set_host(os.environ["KITSU_SERVER"]) | ||
gazu.log_in(os.environ["KITSU_LOGIN"], os.environ["KITSU_PWD"]) |
65 changes: 65 additions & 0 deletions
65
openpype/modules/kitsu/plugins/publish/collect_kitsu_entities.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,65 @@ | ||
# -*- coding: utf-8 -*- | ||
import os | ||
|
||
import gazu | ||
import pyblish.api | ||
|
||
|
||
class CollectKitsuEntities(pyblish.api.ContextPlugin): | ||
"""Collect Kitsu entities according to the current context""" | ||
|
||
order = pyblish.api.CollectorOrder + 0.499 | ||
label = "Kitsu entities" | ||
|
||
def process(self, context): | ||
|
||
asset_data = context.data["assetEntity"]["data"] | ||
zou_asset_data = asset_data.get("zou") | ||
if not zou_asset_data: | ||
raise AssertionError("Zou asset data not found in OpenPype!") | ||
self.log.debug("Collected zou asset data: {}".format(zou_asset_data)) | ||
|
||
zou_task_data = asset_data["tasks"][ | ||
os.environ["AVALON_TASK"]].get("zou") | ||
if not zou_task_data: | ||
self.log.warning("Zou task data not found in OpenPype!") | ||
self.log.debug("Collected zou task data: {}".format(zou_task_data)) | ||
|
||
kitsu_project = gazu.project.get_project(zou_asset_data["project_id"]) | ||
if not kitsu_project: | ||
raise AssertionError("Project not found in kitsu!") | ||
context.data["kitsu_project"] = kitsu_project | ||
self.log.debug("Collect kitsu project: {}".format(kitsu_project)) | ||
|
||
kitsu_asset = gazu.asset.get_asset(zou_asset_data["id"]) | ||
if not kitsu_asset: | ||
raise AssertionError("Asset not found in kitsu!") | ||
context.data["kitsu_asset"] = kitsu_asset | ||
self.log.debug("Collect kitsu asset: {}".format(kitsu_asset)) | ||
|
||
if zou_task_data: | ||
kitsu_task = gazu.task.get_task(zou_task_data["id"]) | ||
if not kitsu_task: | ||
raise AssertionError("Task not found in kitsu!") | ||
context.data["kitsu_task"] = kitsu_task | ||
self.log.debug("Collect kitsu task: {}".format(kitsu_task)) | ||
|
||
else: | ||
kitsu_task_type = gazu.task.get_task_type_by_name( | ||
os.environ["AVALON_TASK"] | ||
) | ||
if not kitsu_task_type: | ||
raise AssertionError( | ||
"Task type {} not found in Kitsu!".format( | ||
os.environ["AVALON_TASK"] | ||
) | ||
) | ||
|
||
kitsu_task = gazu.task.get_task_by_name( | ||
kitsu_asset, | ||
kitsu_task_type | ||
) | ||
if not kitsu_task: | ||
raise AssertionError("Task not found in kitsu!") | ||
context.data["kitsu_task"] = kitsu_task | ||
self.log.debug("Collect kitsu task: {}".format(kitsu_task)) |
38 changes: 38 additions & 0 deletions
38
openpype/modules/kitsu/plugins/publish/integrate_kitsu_note.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
# -*- coding: utf-8 -*- | ||
import gazu | ||
import pyblish.api | ||
|
||
|
||
class IntegrateKitsuNote(pyblish.api.ContextPlugin): | ||
"""Integrate Kitsu Note""" | ||
|
||
order = pyblish.api.IntegratorOrder | ||
label = "Kitsu Note and Status" | ||
# families = ["kitsu"] | ||
|
||
def process(self, context): | ||
|
||
publish_comment = context.data.get("comment") | ||
if not publish_comment: | ||
self.log.info("Comment is not set.") | ||
|
||
publish_status = context.data.get("intent", {}).get("value") | ||
if not publish_status: | ||
self.log.info("Status is not set.") | ||
|
||
self.log.debug("Comment is `{}`".format(publish_comment)) | ||
self.log.debug("Status is `{}`".format(publish_status)) | ||
|
||
kitsu_status = context.data.get("kitsu_status") | ||
if not kitsu_status: | ||
self.log.info("The status will not be changed") | ||
kitsu_status = context.data["kitsu_task"].get("task_status") | ||
self.log.debug("Kitsu status: {}".format(kitsu_status)) | ||
|
||
kitsu_comment = gazu.task.add_comment( | ||
context.data["kitsu_task"], | ||
kitsu_status, | ||
comment = publish_comment | ||
) | ||
|
||
context.data["kitsu_comment"] = kitsu_comment |
35 changes: 35 additions & 0 deletions
35
openpype/modules/kitsu/plugins/publish/integrate_kitsu_review.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
# -*- coding: utf-8 -*- | ||
import gazu | ||
import pyblish.api | ||
|
||
|
||
class IntegrateKitsuReview(pyblish.api.InstancePlugin): | ||
"""Integrate Kitsu Review""" | ||
|
||
order = pyblish.api.IntegratorOrder + 0.01 | ||
label = "Kitsu Review" | ||
# families = ["kitsu"] | ||
optional = True | ||
|
||
def process(self, instance): | ||
|
||
context = instance.context | ||
task = context.data["kitsu_task"] | ||
comment = context.data["kitsu_comment"] | ||
|
||
for representation in instance.data.get("representations", []): | ||
|
||
review_path = representation.get("published_path") | ||
|
||
if 'review' not in representation.get("tags", []): | ||
continue | ||
|
||
self.log.debug("Found review at: {}".format(review_path)) | ||
|
||
gazu.task.add_preview( | ||
task, | ||
comment, | ||
review_path, | ||
normalize_movie=True | ||
) | ||
self.log.info("Review upload on comment") |
This file was deleted.
Oops, something went wrong.
15 changes: 15 additions & 0 deletions
15
openpype/modules/kitsu/plugins/publish/other_kitsu_log_out.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
# -*- coding: utf-8 -*- | ||
import gazu | ||
import pyblish.api | ||
|
||
|
||
class KitsuLogOut(pyblish.api.ContextPlugin): | ||
""" | ||
Log out from Kitsu API | ||
""" | ||
|
||
order = pyblish.api.IntegratorOrder + 10 | ||
label = "Kitsu Log Out" | ||
|
||
def process(self, context): | ||
gazu.log_out() |
27 changes: 27 additions & 0 deletions
27
openpype/modules/kitsu/plugins/publish/validate_kitsu_intent.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
# -*- coding: utf-8 -*- | ||
import pyblish.api | ||
import gazu | ||
|
||
|
||
class ValidateKitsuIntent(pyblish.api.ContextPlugin): | ||
"""Validate Kitsu Status""" | ||
|
||
order = pyblish.api.ValidatorOrder | ||
label = "Kitsu Intent/Status" | ||
# families = ["kitsu"] | ||
optional = True | ||
|
||
def process(self, context): | ||
|
||
publish_status = context.data.get("intent", {}).get("value") | ||
if not publish_status: | ||
self.log.info("Status is not set.") | ||
|
||
kitsu_status = gazu.task.get_task_status_by_short_name(publish_status) | ||
if not kitsu_status: | ||
raise AssertionError( | ||
"Status `{}` not found in kitsu!".format(kitsu_status) | ||
) | ||
self.log.debug("Collect kitsu status: {}".format(kitsu_status)) | ||
|
||
context.data["kitsu_status"] = kitsu_status |