moving temp data generator to ftrack component creator

This commit is contained in:
Jakub Jezek 2021-11-22 11:59:56 +01:00
parent b7a5eef4bf
commit 62a6269694
No known key found for this signature in database
GPG key ID: D8548FBF690B100A
2 changed files with 53 additions and 33 deletions

View file

@ -5,6 +5,9 @@ import re
import json
from contextlib import contextmanager
import app_utils
reload(app_utils)
# Fill following constants or set them via environment variable
FTRACK_MODULE_PATH = None
FTRACK_API_KEY = None
@ -96,11 +99,44 @@ def maintained_ftrack_session():
class FtrackComponentCreator:
default_location = "ftrack.server"
ftrack_locations = {}
thumbnails = []
videos = []
temp_dir = None
def __init__(self, session):
self.session = session
self._get_ftrack_location()
def generate_temp_data(self, selection, temp_folder, change_preset_data):
print(">>>>> self.temp_dir: " + self.temp_dir)
print(">>>>> self.thumbnails: " + str(self.thumbnails))
print(">>>>> self.videos: " + str(self.videos))
if temp_folder == self.temp_dir:
return temp_folder
with app_utils.make_temp_dir() as tempdir_path:
for seq in selection:
app_utils.export_thumbnail(
seq, tempdir_path, change_preset_data)
app_utils.export_video(seq, tempdir_path, change_preset_data)
temp_files = os.listdir(temp_folder)
self.thumbnails = [f for f in temp_files if "jpg" in f]
self.videos = [f for f in temp_files if "mov" in f]
self.temp_dir = tempdir_path
return tempdir_path
def get_thumb_path(shot_name):
# get component files
thumb_f = next((f for f in self.thumbnails if shot_name in f), None)
return os.path.join(self.temp_dir, thumb_f)
def get_video_path(shot_name):
# get component files
video_f = next((f for f in self.videos if shot_name in f), None)
return os.path.join(self.temp_dir, video_f)
def close(self):
self.ftrack_locations = {}
self.session = None

View file

@ -74,9 +74,13 @@ class FlameToFtrackPanel(object):
self.window.setStyleSheet('background-color: #313131')
with maintained_ftrack_session() as session:
print(1)
self._create_project_widget(session)
print(2)
self._create_tree_widget()
print(3)
self._set_sequence_params()
print(4)
self._generate_widgets()
print(5)
self._generate_layouts()
@ -312,17 +316,13 @@ class FlameToFtrackPanel(object):
session, self.project_entity)
component_creator = FtrackComponentCreator(session)
self.generate_temp_data({
"nbHandles": handles
})
temp_files = os.listdir(self.temp_data_dir)
thumbnails = [f for f in temp_files if "jpg" in f]
videos = [f for f in temp_files if "mov" in f]
print(temp_files)
print(thumbnails)
print(videos)
self.temp_data_dir = component_creator.generate_temp_data(
self.selection,
self.temp_data_dir,
{
"nbHandles": handles
}
)
# Get all selected items from treewidget
for item in self.tree.selectedItems():
@ -338,18 +338,13 @@ class FlameToFtrackPanel(object):
sequence_name = item.text(0)
shot_name = item.text(1)
# get component files
thumb_f = next((f for f in thumbnails if shot_name in f), None)
video_f = next((f for f in videos if shot_name in f), None)
thumb_fp = os.path.join(self.temp_data_dir, thumb_f)
video_fp = os.path.join(self.temp_data_dir, video_f)
print(thumb_fp)
print(video_fp)
thumb_fp = component_creator.get_thumb_path(shot_name)
video_fp = component_creator.get_video_path(shot_name)
print("processed comps: {}".format(self.processed_components))
processed = False
if thumb_f not in self.processed_components:
self.processed_components.append(thumb_f)
if thumb_fp not in self.processed_components:
self.processed_components.append(thumb_fp)
else:
processed = True
@ -504,22 +499,11 @@ class FlameToFtrackPanel(object):
self.tree.selectAll()
def clear_temp_data(self):
self.processed_components = []
import shutil
self.processed_components = []
if self.temp_data_dir:
shutil.rmtree(self.temp_data_dir)
self.temp_data_dir = None
print("All Temp data were destroied ...")
def generate_temp_data(self, change_preset_data):
if self.temp_data_dir:
return True
with app_utils.make_temp_dir() as tempdir_path:
for seq in self.selection:
app_utils.export_thumbnail(seq, tempdir_path, change_preset_data)
app_utils.export_video(seq, tempdir_path, change_preset_data)
self.temp_data_dir = tempdir_path
break