def process(self, instance, context):

        if instance.has_data('outputPath'):
            sourcePath = os.path.normpath(instance.data('outputPath'))
            version = context.data('version')
            version = 'v' + str(version).zfill(3)

            taskid = context.data('ftrackData')['Task']['id']
            task = ftrack.Task(taskid)
            parents = task.getParents()

            # Prepare data for parent filtering
            parenttypes = []
            for parent in parents:
                try:
                    parenttypes.append(parent.get('objecttypename'))
                except:
                    pass

            # choose correct template
            if 'Episode' in parenttypes:
                templates = [
                    'tv-ep-cam-file',
                ]
            elif 'Sequence' in parenttypes:
                templates = [
                    'tv-sq-cam-file',
                ]

            publishFile = ft_pathUtils.getPaths(task, templates, version)
            publishFile = os.path.normpath(publishFile[templates[0]])

            self.log.info('Copying preview to location: {}'.format(publishFile))
            shutil.copy(sourcePath, publishFile)

            # # ftrack data
            # components = instance.data('ftrackComponents')
            # components['preview']['path'] = publishFile

            # instance.set_data('ftrackComponents', value=components)

        else:
            self.log.warning('preview wasn\'t created so it can\'t be published')
    def process(self, instance, context):

        if instance.has_data('outputPath'):
            sourcePath = os.path.normpath(instance.data('outputPath'))

            version = context.data('version')
            version = 'v' + str(version).zfill(3)

            taskid = context.data('ftrackData')['Task']['id']
            task = ftrack.Task(taskid)
            parents = task.getParents()

            # Prepare data for parent filtering
            parenttypes = []
            for parent in parents:
                try:
                    parenttypes.append(parent.get('objecttypename'))
                except:
                    pass

            # choose correct template
            if 'Episode' in parenttypes:
                templates = [
                    'tv-ep-preview-file',
                ]
            elif 'Sequence' in parenttypes:
                templates = [
                    'tv-sq-preview-file',
                ]

            publishFile = ft_pathUtils.getPaths(task, templates, version)
            publishFile = os.path.normpath(publishFile[templates[0]])

            projectName = task.getProject().getName()
            if projectName not in ['rad', 'drm']:
                if 'Asset Build' not in parenttypes:
                    templates = [
                        'shot.publish.file'
                    ]
                else:
                    templates = [
                        'asset.publish.file'
                    ]

                self.log.debug(templates)
                publishFile = ft_pathUtils.getPathsYaml(task,
                                                        templateList=templates,
                                                        version=version)


                path, extension = os.path.splitext(publishFile[0])
                publishFile = path + ".mov"


            self.log.info('Moving preview from location: {}'.format(sourcePath))
            self.log.info('Moving preview to location: {}'.format(publishFile))
            shutil.move(sourcePath, publishFile)

            # ftrack data
            components = instance.data('ftrackComponents')
            components['preview']['path'] = publishFile

            instance.set_data('ftrackComponents', value=components)

        else:
            self.log.warning('preview wasn\'t created so it can\'t be published')