def __init__(self, scenefile, parent=None): QDialog.__init__(self, parent) self.setupUi(self) self.scenefile = scenefile self.engineCombo.addItem("10.0.99.20") # read nuke nk = nuke.open(self.scenefile.pathname2()) self.info = nk.script_test() if self.info is None: QMessageBox.critical(self, "Error", "No Write Node") pass else: writeNodes = self.info.keys() writeNodes.pop(writeNodes.index("Root")) self.writeCombo.addItems(writeNodes) try: first = self.info["Root"]["first_frame"] except: first = "1" try: last = self.info["Root"]["last_frame"] except: last = "100" self.frameRangeLineEdit.setText("%s-%s" % (first, last)) self.packetSpin.setValue(1) self.update() self.connect(self.writeCombo, SIGNAL("currentIndexChanged(QString)"), self.update) self.setWindowTitle("Nuke to Tractor")
def on_multisubmit(self): if not os.path.exists(TRACTOR): QMessageBox.warning(self, "Warning", "Tractor does not exist") return start = time.time() lookup_file = os.path.join(self.lutpath, str(self.lutComboBox.currentText())) for scenefile_info in self.sequenceFileList: basename = scenefile_info.basename().rsplit(".", 1)[0] source = scenefile_info.pathname2() location = os.path.dirname(source).rsplit(os.sep, 1)[0] destination = os.path.join(location, "%s.mov" % basename) tempdir = os.path.join(os.path.dirname(source), ".tmp-%s" % str(start)) # print 'basename : ' , basename # print 'source : ' , source # print 'location : ' , location # print 'destination : ', destination # print 'path : ' , scenefile_info._path local_mov_file = os.path.join(MACMINI_LOCAL_PATH, "%s.mov" % basename) nuke_filename = os.path.join(tempdir, "%s.nk" % basename) nuke_filename2 = os.path.join(tempdir, "%s_mov.nk" % basename) alfred_filename = os.path.join(tempdir, "%s.alf" % basename) movefile = "/bin/mv %s %s" % (local_mov_file, destination) proxy_file = os.path.splitext(scenefile_info.filename())[0] proxy_file = os.path.join(tempdir, "%s.jpg" % proxy_file) extension = os.path.splitext(source)[1][1:] nk = nuke.open(NUKE_TEMPLATE_FILE) nk.set_source(source) # change path nk.set_slate(self.groupBox.isChecked()) nk.set_note(self.noteLineEdit.text()) nk.set_username(str(self.usernameLineEdit.text())) nk.set_jobname(self.workcodeLineEdit.text()) nk.set_status(str(self.statusComboBox.currentText())) nk.set_task(self.subjectLineEdit.text()) nk.set_shotname(self.shotLineEdit.text()) nk.set_version(self.versionSpinBox.value()) nk.set_cgi_version(self.cgiVersionSpinBox.value()) nk.set_lut(self.lutCheckBox.isChecked(), lookup_file) nk.set_codec(str(self.codecComboBox.currentText())) nk.set_quality(str(self.qualityComboBox.currentText())) nk.set_aspect_ratio(self.aspectRatioSpinBox.value()) nk.set_opacity(str(self.opacitySpinBox.value())) nk.set_format( str(self.widthSpin.value()), str(self.heightSpin.value()), str(self.ratioSpin.value()), self.short_format, ) nk.set_frame_range(scenefile_info.frame_range()) nk.set_fps(str(self.fpsComboBox.currentText())) nk.set_destination(local_mov_file) nk.set_proxy_file(proxy_file) nuke_script = nk.script() first_frame, last_frame = scenefile_info.frame_range().split("-") try: os.mkdir(tempdir) except: pass os.chmod(tempdir, 0777) f = open(nuke_filename, "w") for line in nuke_script: f.write(line.encode("utf-8")) f.close() os.chmod(nuke_filename, 0777) if extension == "jpg": alfred_script = alfredSubmission( [ basename, str(self.usernameLineEdit.text()), "", # note field first_frame, last_frame, nuke_filename, alfred_filename, nuke_filename, movefile, tempdir, ], self.groupBox.isChecked(), ) else: jpg_to_mov_nuke_script = nk.jpg_to_mov_script("template/jpg_to_mov.nk") f = open(nuke_filename2, "w") for line in jpg_to_mov_nuke_script: f.write(line.encode("utf-8")) f.close() os.chmod(nuke_filename2, 0777) alfred_script = alfredSubmissionHybrid( [ basename, str(self.usernameLineEdit.text()), "", # note field first_frame, last_frame, nuke_filename, alfred_filename, nuke_filename, movefile, nuke_filename2, tempdir, ], self.groupBox.isChecked(), ) f = open(alfred_filename, "w") f.write(alfred_script) f.close() os.chmod(alfred_filename, 0777) os.system("%s --engine=%s --user=idea %s &" % (TRACTOR, ENGINE_IP, alfred_filename)) msg = QMessageBox.information(self, "Submit", "Success", QMessageBox.Ok) if msg == QMessageBox.Ok: QDesktopServices.openUrl(QUrl(TRACTOR_HOME)) self.saveSettings() self.close()
def preset_summit(self): # CODEC = {'H.264':'avc1', 'Photo-JPEG':'jpeg', 'Apple ProRes 422':'apcn', 'Apple ProRes 422 (HQ)':'apch', 'Apple ProRes 422 (LT)':'apcs'} iMax = ["720", "Apple ProRes 422", 720, 576] daily = ["daily", "H.264", 2048, 900] twoK = ["HD", "Apple ProRes 422", 1920, 1080] originBaseName = self.basename for pre in [iMax, twoK]: if pre == iMax or pre == twoK: self.groupBox.setChecked(0) start = time.time() # write a nuke file self.basename = originBaseName + "_" + pre[0] tempdir = os.path.join(self.location, ".tmp-%s" % str(start)) # tempdir = os.path.join(self.location, 'tmp') local_mov_file = os.path.join(MACMINI_LOCAL_PATH, "%s.mov" % self.basename) nuke_filename = os.path.join(tempdir, "%s.nk" % self.basename) nuke_filename2 = os.path.join(tempdir, "%s_mov.nk" % self.basename) alfred_filename = os.path.join(tempdir, "%s.alf" % self.basename) newdest = os.path.splitext(self.destination)[0] + "_" + pre[0] + os.path.splitext(self.destination)[1] movefile = "/bin/mv %s %s" % (local_mov_file, newdest) proxy_file = os.path.splitext(self.scenefile_info.filename())[0] proxy_file = os.path.join(tempdir, "%s_%s.jpg" % (proxy_file, pre[0])) lookup_file = os.path.join(self.lutpath, str(self.lutComboBox.currentText())) # ------------------------------------------------------------------------------ nk = nuke.open(NUKE_TEMPLATE_FILE) nk.set_source(self.source) # change path nk.set_slate(self.groupBox.isChecked()) nk.set_note(self.noteLineEdit.text()) nk.set_username(str(self.usernameLineEdit.text())) nk.set_jobname(self.workcodeLineEdit.text()) nk.set_status(str(self.statusComboBox.currentText())) nk.set_task(self.subjectLineEdit.text()) nk.set_shotname(self.shotLineEdit.text()) nk.set_version(self.versionSpinBox.value()) nk.set_cgi_version(self.cgiVersionSpinBox.value()) nk.set_lut(self.lutCheckBox.isChecked(), lookup_file) # nk.set_codec(str(self.codecComboBox.currentText())) nk.set_codec(pre[1]) nk.set_quality(str(self.qualityComboBox.currentText())) nk.set_aspect_ratio(1) nk.set_opacity("1") nk.set_format(str(pre[2]), str(pre[3]), str(1), self.short_format) nk.set_frame_range(str(self.framerangeLineEdit.text())) nk.set_fps(str(self.fpsComboBox.currentText())) nk.set_destination(local_mov_file) nk.set_proxy_file(proxy_file) # result nuke_script = nk.script() # ------------------------------------------------------------------------------ first_frame, last_frame = str(self.framerangeLineEdit.text()).split("-") try: os.mkdir(tempdir) except: pass os.chmod(tempdir, 0777) f = open(nuke_filename, "w") for line in nuke_script: f.write(line.encode("utf-8")) f.close() os.chmod(nuke_filename, 0777) if self.extension == "jpg": alfred_script = alfredSubmission( [ self.basename, str(self.usernameLineEdit.text()), "", # note field first_frame, last_frame, nuke_filename, alfred_filename, nuke_filename, movefile, tempdir, ], self.groupBox.isChecked(), ) else: jpg_to_mov_nuke_script = nk.jpg_to_mov_script("template/jpg_to_mov.nk") f = open(nuke_filename2, "w") for line in jpg_to_mov_nuke_script: f.write(line.encode("utf-8")) f.close() os.chmod(nuke_filename2, 0777) alfred_script = alfredSubmissionHybrid( [ self.basename, str(self.usernameLineEdit.text()), "", # note field first_frame, last_frame, nuke_filename, alfred_filename, nuke_filename, movefile, nuke_filename2, tempdir, ], self.groupBox.isChecked(), ) f = open(alfred_filename, "w") f.write(alfred_script) f.close() os.chmod(alfred_filename, 0777) self.saveSettings() print "alfred_filename : ", alfred_filename os.system("%s --engine=%s --user=idea %s &" % (TRACTOR, ENGINE_IP, alfred_filename)) msg = QMessageBox.information(self, "Submit", "Success", QMessageBox.Ok) # if msg == QMessageBox.Ok: # QDesktopServices.openUrl(QUrl(TRACTOR_HOME)) self.close()
def process(self): dirPath = self.playblastFile.rsplit('/', 1)[0] # mov 파일이 저장될 폴더 basename = os.path.basename(self.playblastFile) base = os.path.splitext(basename)[0] sourceFile = os.path.join(dirPath, base+".####.jpg") version = int(base.split('_v')[1][:2]) if '_v' in base else 1 local_mov_file = os.path.join("/local", basename) tempdir = dirPath nuke_filename = os.path.join(tempdir, '%s.nk' % base) alfred_filename = os.path.join(tempdir, '%s.alf' % base) movefile = '/bin/mv %s %s' % (local_mov_file, os.path.dirname(dirPath)) deletefile = '/bin/rm %s' % (os.path.join(dirPath, '._%s' % (base+'.mov'))) nk = nuke.open( os.path.dirname( __file__) + '/../templete/master.nk' ) nk.set_source(sourceFile) nk.set_slate(True) nk.set_note("") nk.set_username(self.userName) nk.set_jobname(self.workcode) # workcode nk.set_status("TEMP") nk.set_task("") # subject nk.set_shotname(self.shot) # shot nk.set_version(version) # version nk.set_cgi_version(0) nk.set_lut(False, os.path.dirname( __file__) + "/../templates/default_lut.cube" ) nk.set_codec("Photo-JPEG") nk.set_quality("High") nk.set_opacity("0.7") nk.set_aspect_ratio(self.ratio) nk.set_format(str(self.width), str(self.height), "1", "Custom") nk.set_frame_range("%s-%s" % (self.startFrame, self.endFrame)) nk.set_fps( self.frameRate ) #nk.set_fps("24") nk.set_scale( self.previewscale ) # output nk.set_proxy_file( self.playblastFile ) nk.set_destination(local_mov_file) nuke_script = nk.script() try: os.mkdir(tempdir) try: os.chmod( tempdir , 0777 ) except : pass except: pass f = open(nuke_filename, 'w') for line in nuke_script: f.write(line.encode('utf-8')) f.close() os.chmod( nuke_filename , 0777 ) tractor_script = self.submit([ base, self.userName, '', # note field self.startFrame, self.endFrame, nuke_filename, alfred_filename, nuke_filename, movefile, tempdir, deletefile, self.pbias ], True ) f = open(alfred_filename, 'w') f.write(tractor_script) f.close() os.chmod( alfred_filename , 0777 ) os.system('%s --engine=%s --user=idea %s &' % ( TRACTOR, ENGINE_IP, alfred_filename) )