Merge pull request #128 from pypeclub/feature/ftrack_parent_thumbnail_fix

feature/ftrack parent thumbnails
This commit is contained in:
Milan Kolar 2020-05-12 15:00:32 +02:00 committed by GitHub
commit b708406ec3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -2,57 +2,42 @@ from pype.ftrack import BaseEvent
class ThumbnailEvents(BaseEvent): class ThumbnailEvents(BaseEvent):
def launch(self, session, event): def launch(self, session, event):
'''just a testing event''' """Updates thumbnails of entities from new AssetVersion."""
# self.log.info(event) for entity in event["data"].get("entities", []):
# start of event procedure ---------------------------------- if (
for entity in event['data'].get('entities', []): entity["action"] == "remove"
or entity["entityType"].lower() != "assetversion"
or "thumbid" not in (entity.get("keys") or [])
):
continue
# update created task thumbnail with first parent thumbnail # update created task thumbnail with first parent thumbnail
if entity['entityType'] == 'task' and entity['action'] == 'add': version = session.get("AssetVersion", entity["entityId"])
if not version:
continue
task = session.get('TypedContext', entity['entityId']) thumbnail = version.get("thumbnail")
parent = task['parent'] if not thumbnail:
continue
if parent.get('thumbnail') and not task.get('thumbnail'): parent = version["asset"]["parent"]
task['thumbnail'] = parent['thumbnail'] task = version["task"]
self.log.info('>>> Updated thumbnail on [ %s/%s ]'.format( parent["thumbnail_id"] = version["thumbnail_id"]
parent['name'], task['name'] if parent.entity_type.lower() == "project":
)) name = parent["full_name"]
else:
name = parent["name"]
# Update task thumbnail from published version task_msg = ""
# if (entity['entityType'] == 'assetversion' and if task:
# entity['action'] == 'encoded'): task["thumbnail_id"] = version["thumbnail_id"]
elif ( task_msg = " and task [ {} ]".format(task["name"])
entity['entityType'] == 'assetversion' and
entity['action'] != 'remove' and
'thumbid' in (entity.get('keys') or [])
):
version = session.get('AssetVersion', entity['entityId']) self.log.info(">>> Updating thumbnail for shot [ {} ]{}".format(
if not version: name, task_msg
continue ))
thumbnail = version.get('thumbnail')
if not thumbnail:
continue
parent = version['asset']['parent']
task = version['task']
parent['thumbnail_id'] = version['thumbnail_id']
if parent.entity_type.lower() == "project":
name = parent["full_name"]
else:
name = parent["name"]
msg = '>>> Updating thumbnail for shot [ {} ]'.format(name)
if task:
task['thumbnail_id'] = version['thumbnail_id']
msg += " and task [ {} ]".format(task["name"])
self.log.info(msg)
try: try:
session.commit() session.commit()
@ -61,5 +46,4 @@ class ThumbnailEvents(BaseEvent):
def register(session, plugins_presets): def register(session, plugins_presets):
'''Register plugin. Called when used as an plugin.'''
ThumbnailEvents(session, plugins_presets).register() ThumbnailEvents(session, plugins_presets).register()