[Blender_Kitsu] Publish VSE Edit as Revision on Kitsu #7
@ -24,7 +24,7 @@ import colorsys
|
|||||||
import random
|
import random
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import Dict, List, Set, Optional, Tuple, Any
|
from typing import Dict, List, Set, Optional, Tuple, Any
|
||||||
|
import datetime
|
||||||
import bpy
|
import bpy
|
||||||
|
|
||||||
from blender_kitsu import gazu, cache, util, prefs, bkglobals
|
from blender_kitsu import gazu, cache, util, prefs, bkglobals
|
||||||
@ -40,7 +40,7 @@ from blender_kitsu.types import (
|
|||||||
Task,
|
Task,
|
||||||
)
|
)
|
||||||
|
|
||||||
from blender_kitsu.playblast.core import override_render_path
|
from blender_kitsu.playblast.core import override_render_path, override_render_format
|
||||||
|
|
||||||
logger = LoggerFactory.getLogger()
|
logger = LoggerFactory.getLogger()
|
||||||
|
|
||||||
@ -326,6 +326,14 @@ class KITSU_OT_sqe_push_new_edit(bpy.types.Operator):
|
|||||||
comment: bpy.props.StringProperty(name="comment")
|
comment: bpy.props.StringProperty(name="comment")
|
||||||
edit_entry: bpy.props.EnumProperty(name="Edit Entry", items=get_edit_entry_enum)
|
edit_entry: bpy.props.EnumProperty(name="Edit Entry", items=get_edit_entry_enum)
|
||||||
task: bpy.props.EnumProperty(name="Edit Tasks", items=get_edit_task_items)
|
task: bpy.props.EnumProperty(name="Edit Tasks", items=get_edit_task_items)
|
||||||
|
render_dir: bpy.props.StringProperty(
|
||||||
|
name="Render Directory",
|
||||||
|
subtype="DIR_PATH",
|
||||||
|
)
|
||||||
|
render_name: bpy.props.StringProperty(
|
||||||
|
name="Render Name",
|
||||||
|
description="Name of Render file WITHOUT extension",
|
||||||
|
)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def poll(cls, context: bpy.types.Context) -> bool:
|
def poll(cls, context: bpy.types.Context) -> bool:
|
||||||
@ -335,6 +343,8 @@ class KITSU_OT_sqe_push_new_edit(bpy.types.Operator):
|
|||||||
)
|
)
|
||||||
|
|
||||||
def invoke(self, context, event):
|
def invoke(self, context, event):
|
||||||
|
self.render_dir = context.scene.render.filepath.rsplit("\\", 1)[0]
|
||||||
|
self.render_name = bpy.path.basename(context.blend_data.filepath).replace('.blend','')
|
||||||
return context.window_manager.invoke_props_dialog(self)
|
return context.window_manager.invoke_props_dialog(self)
|
||||||
|
|
||||||
def draw(self, context: bpy.types.Context) -> None:
|
def draw(self, context: bpy.types.Context) -> None:
|
||||||
@ -342,19 +352,33 @@ class KITSU_OT_sqe_push_new_edit(bpy.types.Operator):
|
|||||||
layout.prop(self, "edit_entry")
|
layout.prop(self, "edit_entry")
|
||||||
layout.prop(self, "task")
|
layout.prop(self, "task")
|
||||||
layout.prop(self, "comment")
|
layout.prop(self, "comment")
|
||||||
|
layout.prop(self, "render_dir")
|
||||||
|
layout.prop(self, "render_name")
|
||||||
|
|
||||||
def execute(self, context: bpy.types.Context) -> Set[str]:
|
def execute(self, context: bpy.types.Context) -> Set[str]:
|
||||||
render_path = f"{context.scene.kitsu.playblast_dir}{self.name}.mp4" # TODO FIX RENDER PATH/FILENAME
|
# Build render_path
|
||||||
with override_render_path(self, context, render_path):
|
render_dir = bpy.path.abspath(self.render_dir)
|
||||||
bpy.ops.render.opengl(animation=True, sequencer=True)
|
render_name = f"{self.render_name.replace('.','_')}.mp4"
|
||||||
|
render_path = Path(render_dir).joinpath(render_name)
|
||||||
|
|
||||||
|
# Build Comment
|
||||||
|
time = str(datetime.datetime.now())
|
||||||
|
message = f"{self.comment}\n\n\nFile: {render_name} \n\nSubmitted on: {time}"
|
||||||
|
|
||||||
|
# Render Sequence to .mp4
|
||||||
|
with override_render_path(self, context, render_path.as_posix()):
|
||||||
|
with override_render_format(self, context):
|
||||||
|
bpy.ops.render.opengl(animation=True, sequencer=True)
|
||||||
|
|
||||||
|
# Submit to Kitsu Edit Task
|
||||||
gazu.edit.add_comment_on_edit_task(
|
gazu.edit.add_comment_on_edit_task(
|
||||||
self.task,
|
self.task,
|
||||||
render_path,
|
render_path,
|
||||||
self.comment
|
message
|
||||||
)
|
)
|
||||||
self.report(
|
self.report(
|
||||||
{"INFO"},
|
{"INFO"},
|
||||||
f"Submitted new comment '{self.name}'"
|
f"Submitted new comment for render'{self.render_name}'"
|
||||||
)
|
)
|
||||||
return {"FINISHED"}
|
return {"FINISHED"}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user