diff --git a/openpype/hosts/flame/utility_scripts/openpype_flame_to_ftrack/modules/ftrack_lib.py b/openpype/hosts/flame/utility_scripts/openpype_flame_to_ftrack/modules/ftrack_lib.py index 215e3d69ec..6ea35f6c22 100644 --- a/openpype/hosts/flame/utility_scripts/openpype_flame_to_ftrack/modules/ftrack_lib.py +++ b/openpype/hosts/flame/utility_scripts/openpype_flame_to_ftrack/modules/ftrack_lib.py @@ -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 diff --git a/openpype/hosts/flame/utility_scripts/openpype_flame_to_ftrack/modules/panel_app.py b/openpype/hosts/flame/utility_scripts/openpype_flame_to_ftrack/modules/panel_app.py index 82e9d3ba02..c5a4ffea97 100644 --- a/openpype/hosts/flame/utility_scripts/openpype_flame_to_ftrack/modules/panel_app.py +++ b/openpype/hosts/flame/utility_scripts/openpype_flame_to_ftrack/modules/panel_app.py @@ -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