diff --git a/checkout.py b/checkout.py index 5738932..8ce4cc4 100644 --- a/checkout.py +++ b/checkout.py @@ -4,6 +4,7 @@ import json import os import subprocess import pyutil +import shutil getcwd=os.path.dirname(os.path.abspath(__file__)) bpy_script_action=os.path.join(getcwd, "bpy_checkout.py") @@ -55,7 +56,7 @@ def check_action(blend_file="", action_name="", action_fake_is_valid=True, min_f pyutil.log("Blend file not exists", 4) return 3 -def render_video(upload_dir="", blend_file="", sign_name="", convert_to_webm=True, rm_original_video=True, hide_output=False): +def render_video(upload_dir="", blend_file="", sign_name="", convert_to_webm=True, rm_original_video=True, hide_output=False, convert_to_mp4_web_format=True): if (file_exists(blend_file)): if not ((isinstance(upload_dir, str) and isinstance(blend_file, str)) or (isinstance(upload_dir, unicode) and isinstance(blend_file, unicode)) or @@ -63,21 +64,27 @@ def render_video(upload_dir="", blend_file="", sign_name="", convert_to_webm=Tru pyutil.log("Args to render_video no match types", 4) return 1 try: - json_object= json.JSONEncoder().encode( + json_object = json.JSONEncoder().encode( { "upload_dir": upload_dir, "sign_name": sign_name } ) if (hide_output): - dev_null=open(os.devnull, 'w') - result_code=subprocess.call(['blender', '-b', blend_file, '-noaudio', '-P', bpy_script_render, "--", json_object], stdout=dev_null, stderr=dev_null) + dev_null = open(os.devnull, 'w') + result_code = subprocess.call(['blender', '-b', blend_file, '-noaudio', '-P', bpy_script_render, "--", json_object], stdout=dev_null, stderr=dev_null) else: result_code=subprocess.call(['blender', '-b', blend_file, '-noaudio', '-P', bpy_script_render, "--", json_object]) if (convert_to_webm): - video_mp4=os.path.join(upload_dir, sign_name + ".mp4") - video_webm=os.path.join(upload_dir, sign_name + ".webm") + video_mp4 = os.path.join(upload_dir, sign_name + ".mp4") + video_webm = os.path.join(upload_dir, sign_name + ".webm") subprocess.call(["avconv", "-loglevel", "0", "-y", "-i", video_mp4, "-r", "24", "-vcodec", "libvpx", video_webm]) + if (convert_to_mp4_web_format): + video_mp4 = os.path.join(upload_dir, sign_name + ".mp4") + video_mp4_tmp = os.path.join(upload_dir, sign_name + "-tmp.mp4") + shutil.copy(video_mp4, video_mp4_tmp) + subprocess.call(["avconv", "-loglevel", "0", "-y", "-i", video_mp4_tmp, "-r", "24", "-vcodec", "libx264", video_mp4]) + video_mp4 = video_mp4_tmp if (rm_original_video): subprocess.call(["rm", video_mp4]) if (result_code == 4): diff --git a/view/js/corretor.js b/view/js/corretor.js index e43b3e5..58ab4f4 100755 --- a/view/js/corretor.js +++ b/view/js/corretor.js @@ -148,10 +148,10 @@ function _createAnswer(task, status) { var answer = {}; - var last_answer = task.info.last_answer; - var hasLastAnswer = typeof last_answer != 'undefined'; + var lastAnswer = task.info.last_answer; + var hasLastAnswer = typeof lastAnswer != 'undefined'; if (hasLastAnswer) { - answer = last_answer; + answer = lastAnswer; } else { answer = { 'number_of_fixes' : 0, @@ -194,9 +194,9 @@ function _finishTask(task, deferred, answer) { _enableLoading(); - var last_answer = task.info.last_answer; - var hasLastAnswer = typeof last_answer != 'undefined'; - var toSubmitUploadSessionId = hasLastAnswer ? last_answer.upload_session_id + var lastAnswer = task.info.last_answer; + var hasLastAnswer = typeof lastAnswer != 'undefined'; + var toSubmitUploadSessionId = hasLastAnswer ? lastAnswer.upload_session_id : uploadSessionId; $.ajax({ type : 'POST', @@ -243,31 +243,35 @@ function _loadTaskInfo(task, deferred) { currentTaskId = task.id; - var sign_name = task.info.sign_name; - var blend_link = videosUrl + sign_name + '_AVATAR.blend'; - var avatar_vid_link = videosUrl + sign_name + '_AVATAR.webm'; - var ref_vid_link = videosUrl + sign_name + '_REF.webm'; - $('.sign-label').text(sign_name); + var signName = task.info.sign_name; + var blendLink = videosUrl + signName + '_AVATAR.blend'; + var baseAvatarVidUrl = videosUrl + signName + '_AVATAR'; + var avatarVidUrl = baseAvatarVidUrl + '.webm'; + var baseRefVidUrl = videosUrl + signName + '_REF'; + var refVidUrl = baseRefVidUrl + '.webm'; + + $('.sign-label').text(signName); $('#submission-date').text( moment(task.info.submission_date).format('DD/MM/YYYY')); - $('#ref-video').attr('src', ref_vid_link); - $('#ref-video-link').attr('href', ref_vid_link); + $('#ref-video').html(videoHelper.getSource(baseRefVidUrl)); + $('#ref-video-link').attr('href', refVidUrl); - var last_answer = task.info.last_answer; - var hasLastAnswer = typeof last_answer != 'undefined'; + var lastAnswer = task.info.last_answer; + var hasLastAnswer = typeof lastAnswer != 'undefined'; if (hasLastAnswer - && typeof last_answer.upload_session_id != 'undefined') { - blend_link = uploadsUrl + last_answer.upload_session_id + '/' - + sign_name + '.blend'; - avatar_vid_link = uploadsUrl + last_answer.upload_session_id + '/' - + sign_name + '.webm'; + && typeof lastAnswer.upload_session_id != 'undefined') { + blendLink = uploadsUrl + lastAnswer.upload_session_id + '/' + + signName + '.blend'; + baseAvatarVidUrl = uploadsUrl + lastAnswer.upload_session_id + '/' + + signName; + avatarVidUrl = baseAvatarVidUrl + '.webm'; $('#last-edit-date').text( - moment(last_answer.last_edit_date).format('DD/MM/YYYY')); - $('#number-of-fixes').text(last_answer.number_of_fixes); + moment(lastAnswer.last_edit_date).format('DD/MM/YYYY')); + $('#number-of-fixes').text(lastAnswer.number_of_fixes); _showApprovalGUI(task, deferred); } - $('#blend-link').attr('href', blend_link); - $('#avatar-video').attr('src', avatar_vid_link); + $('#blend-link').attr('href', blendLink); + $('#avatar-video').html(videoHelper.getSource(baseAvatarVidUrl)); } function _loadMainComponents() { diff --git a/view/js/helpers/video-helper.js b/view/js/helpers/video-helper.js new file mode 100644 index 0000000..d280023 --- /dev/null +++ b/view/js/helpers/video-helper.js @@ -0,0 +1,31 @@ +(function(videoHelper, $, undefined) { + + function _getSource(videoBaseUrl) { + return '' + + 'Sem suporte a vídeos'; + } + + function _controlVideo(elId, toPlay) { + if ($(elId).length === 0) + return; + if (toPlay) { + $(elId).get(0).play(); + } else { + $(elId).get(0).pause(); + } + } + + videoHelper.play = function(elId) { + _controlVideo(elId, true); + }; + + videoHelper.pause = function(elId) { + _controlVideo(elId, false); + }; + + videoHelper.getSource = function(videoBaseUrl) { + return _getSource(videoBaseUrl); + }; + +}(window.videoHelper = window.videoHelper || {}, jQuery)); diff --git a/view/templates/index.html b/view/templates/index.html index 4c20fc3..6b03972 100755 --- a/view/templates/index.html +++ b/view/templates/index.html @@ -7,6 +7,7 @@ + @@ -69,10 +70,9 @@ ANIMAÇÃO ATUAL "": -
-
-