def publishFile(self) : logger.debug('--- publishing ---') # publish file publishFile = self.svPublishFile workFile = self.asset.publishFile(showUser = True) workDir = self.asset.workDir() user = hook.getUser() self.setStatus('--- File Publish ---', True, [40, 40, 40], 0) if publishFile and workDir : saveFile = '%s/%s' % (workDir, os.path.basename(workFile)) # saveFile = hook.addUser(saveFile, user) # save file logger.debug('Saving file -> %s' % saveFile) saveResult = hook.save(saveFile, rename = False) logger.info('Save file done %s' % saveResult) self.setStatus('Save', saveResult) # get increment version thisFile = entityInfo.info() incrementFile = thisFile.nextVersion() # manage thumbnail / media self.manageMediaFile() # extra command batch = not self.ui.noBatch_checkBox.isChecked() refPath = self.asset.getPath('ref') logger.debug('Extra export -> %s' % refPath) extraResults = extra.publish(self.asset, batch, mainUI=self) if extraResults : for each in extraResults : title = each status = extraResults[each]['status'] message = extraResults[each]['message'] self.setStatus('%s' % title, status) logger.info('%s %s' % (title, message)) # copy publish logger.debug('Publish file from %s -> %s' % (saveResult, publishFile)) copyResult = fileUtils.copy(saveResult, publishFile) logger.info('Publish file to %s' % publishFile) self.setStatus('Published', copyResult) if saveResult : # set status logger.debug('Increment file -> %s' % incrementFile) # increment file # check increment override with root file fileToIncrement = str(self.ui.incrementFile_lineEdit.text()) incrementOverride = False if os.path.exists(fileToIncrement) and self.ui.incrementRoolFile_checkBox.isChecked() : incrementOverride = True if batch : if not incrementOverride : incrementResult = hook.save(incrementFile) # override increment else : increment = entityInfo.info(fileToIncrement) incrementFile = increment.nextVersion() incrementResult = fileUtils.copy(fileToIncrement, incrementFile) else : incrementResult = fileUtils.copy(saveResult, incrementFile) if incrementResult : self.setStatus('Increment File', incrementResult) logger.info('Increment file to %s' % incrementFile) return True
def publishShotgun(self) : # publish shotgun ''' version - Version, Thumbnails, Media # task ''' logger.debug('--- publishing Shotgun ---') self.setStatus('--- Shotgun Publish ---', True, [40, 40, 40], 0) # UI value status = str(self.ui.status_comboBox.currentText()) thumbnail = str(self.ui.thumbnail_lineEdit.text()) media = str(self.ui.media_lineEdit.text()) sg_status_list = self.sgStatusMap[status] task_sg_status_list = self.getShotgunStatus(status) # entity value project = self.asset.project() assetType = self.asset.type() assetSubType = self.asset.subType() assetName = self.asset.name() stepName = self.asset.department() taskName = self.asset.task() publishFile = os.path.basename(self.svPublishFile).split('.')[0] user = hook.getUser() ''' version ''' logger.debug('Create version %s' % publishFile) logger.debug('%s %s %s %s %s %s %s %s %s' % (project, assetType, assetSubType, assetName, stepName, taskName, publishFile, sg_status_list, user)) try : versionEntity, assetEntity, taskEntity = shotgunPublish.publishVersion(project, assetType, assetSubType, assetName, stepName, taskName, publishFile, sg_status_list, user) except Exception as e : logger.info('No asset in Shotgun') logger.debug(e) return False self.setStatus('Create version %s' % publishFile, versionEntity) logger.info('Create version %s %s' % (publishFile, versionEntity)) if versionEntity and assetEntity and taskEntity : ''' upload thumbnail ''' logger.debug('Upload thumbnail %s' % thumbnail) thumbResult = shotgunPublish.uploadThumbnail(versionEntity, thumbnail) self.setStatus('Upload thumbnail', thumbResult) logger.info('Upload thumbnail %s' % thumbResult) ''' upload media ''' logger.debug('Upload media %s' % media) mediaResult = shotgunPublish.uploadMedia(versionEntity, media) self.setStatus('Upload media', mediaResult) logger.info('Upload media %s' % mediaResult) ''' set task and dependency tasks ''' logger.debug('Set task') taskResult = shotgunPublish.publishTask(self.asset, assetEntity, stepName, taskEntity, task_sg_status_list, self.svPublishFile) self.setStatus('Set Task', taskResult) ''' set geo info ID ''' # set ID pipelineTools.setGeoInfo('id', assetEntity['id']) return True