upload to kitsu

This commit is contained in:
“christopheseux”
2023-04-20 18:16:34 +02:00
parent d2caf90ea2
commit 299c240385
4 changed files with 127 additions and 39 deletions
+71 -19
View File
@@ -116,7 +116,10 @@ class Kitsu(Tracker):
return gazu.shot.all_episodes_for_project(project)
def get_task_type(self, task_type=None):
print('get_task_type', task_type)
task_type_id = self.get_id(task_type)
if task_type_id:
return task_type_id
return gazu.task.get_task_type_by_name(task_type)
def get_shot_task_types(self, project=None):
@@ -192,17 +195,32 @@ class Kitsu(Tracker):
entity = self.get_id(entity)
task_type = self.get_task_type(task)
print('task_type', task_type)
print('task_type', task_type)
task = gazu.task.get_task_by_name(entity, task_type)
if not task:
return
#task = gazu.task.get_task(task['id'])
task['last_comment'] = self.get_last_comment(task)
return task
def new_preview(self, task, comment, preview, set_main_preview=False):
#print('new_preview', task, comment, preview, set_main_preview)
task = self.get_id(task)
comment = self.get_id(comment)
preview_data = gazu.task.add_preview(
task=task,
comment=comment,
preview_file_path=preview )
if set_main_preview:
gazu.task.set_main_preview(preview_data)
return preview_data
def new_comment(self, task, status=None, comment='', preview=None, set_main_preview=False):
#task = self.get_task(task)
@@ -213,26 +231,24 @@ class Kitsu(Tracker):
else:
status = self.get_task_status(status)
comment = gazu.task.add_comment(
task=task,
task_status=status,
comment=comment )
if preview:
logging.info(f'Adding Preview to Kitsu {preview}')
preview = self.add_preview(
#logging.info(f'Adding Preview to Kitsu {preview}')
preview = self.new_preview(
task=task,
comment=comment,
preview=str(preview) )
if set_main_preview:
gazu.task.set_main_preview(preview)
preview=str(preview),
set_main_preview=set_main_preview )
return comment
def remove_comment(self, comment):
return gazu.task.remove_comment(comment)
def download_preview(self, preview_id, filepath):
if isinstance(filepath, str):
filepath = Path(filepath)
@@ -243,6 +259,12 @@ class Kitsu(Tracker):
filepath.parent.mkdir(parents=True, exist_ok=True)
gazu.files.download_preview_file_thumbnail(preview_id, filepath.as_posix())
def new_task(self, entity, task_type, status=None, project=None):
task_type = self.get_task_type(task_type)
if status:
status = self.get_task_status(status)
return gazu.task.new_task(entity, task_type=task_type, task_status=status)
def new_sequence(self, sequence, episode=None, project=None):
project = self.get_project(project)
@@ -254,7 +276,7 @@ class Kitsu(Tracker):
return gazu.shot.new_sequence(**params)
def new_shot(self, shot, sequence, nb_frames=None, frame_in=None,
frame_out=None, description='', custom_data=None, project=None):
frame_out=None, description='', custom_data=None, with_tasks=True, project=None):
project = self.get_project(project)
sequence = self.get_sequence(sequence)
@@ -273,11 +295,41 @@ class Kitsu(Tracker):
params["nb_frames"] = nb_frames
shot = self.get_shot(shot=shot, sequence=sequence)
if shot:
return shot
else:
if not shot:
path = f"data/projects/{self.get_id(project)}/shots"
return gazu.client.post(path, params)
shot = gazu.client.post(path, params)
if with_tasks:
for task_type in self.get_shot_task_types(project=project):
self.new_task(shot, task_type)
return shot
def update_data(self, entity, data, name=None, description=None, frames=None, clear=False):
if isinstance(entity, dict):
entity_id = entity['id']
else:
entity_id = self.get_id(entity)
entity = gazu.client.fetch_one('entities', entity_id)
if data.get('custom_data'):
data['data'] = data.pop('custom_data')
if name:
entity['name'] = name
if description:
entity['description'] = description
if frames:
entity['nb_frames'] = frames
if clear or not entity['data']:
entity['data'] = data
else:
entity['data'].update(data)
entity_data = gazu.client.put(f"data/entities/{entity_id}", entity)
return entity_data['data']
def draw_prefs(self, layout):
layout.prop(self, 'url', text='Url')