From 32390a326dbf2abc783b4604f6d79f9ace212b24 Mon Sep 17 00:00:00 2001 From: dhuy Date: Mon, 26 May 2014 11:27:21 -0300 Subject: [PATCH] Refactoring the source code of endpoints files --- endpoints/ios.js | 56 +++++++++++++++++++++++++++++--------------------------- endpoints/legenda.js | 87 +++++++++++++++++++++++++++++++++++++++++++++------------------------------------------ endpoints/texto.js | 54 ++++++++++++++++++++++++++++-------------------------- endpoints/video.js | 201 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------------------------------------------------------------------------- endpoints/video_legenda.js | 226 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------------------------------------------------------------------------------------- 5 files changed, 319 insertions(+), 305 deletions(-) diff --git a/endpoints/ios.js b/endpoints/ios.js index e14f249..4850934 100644 --- a/endpoints/ios.js +++ b/endpoints/ios.js @@ -7,35 +7,37 @@ var fs = require('fs'); function init(req, res) { /* Verifica se os paramêtros [transparencia, texto] possuem algum valor */ if ((req.body.transparencia !== '') && (req.body.texto !== '')) { - /* Verifica se o paramêtro [transparencia] possui os únicos valores possíveis [opaco, transparente] */ - if (parameters.checkTransparency(req.body.transparencia)) { - /* Cria a linha de comando */ - var command_line = 'echo ' + req.body.texto + ' >> ' + __dirname + '/text_files/' + properties.ID_FROM_BD + ' && cd ../vlibras-core' + - ' && ./vlibras ' + parameters.getServiceType(req.body.servico) + ' ../vlibras-api/text_files/' + - properties.ID_FROM_BD + ' ' + parameters.getTransparency(req.body.transparencia) + ' ' + properties.ID_FROM_BD + ' IOS'; - - /* Executa a linha de comando */ - child = exec(command_line, function(err, stdout, stderr) { - // [stdout] = vlibras-core output - // console.log(stdout); - }); - - /* Listener que dispara quando a requisição ao core finaliza */ - child.on('close', function(code, signal){ - res.send(200, { 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + properties.ID_FROM_BD + '.avi' }); - properties.ID_FROM_BD++; - }); - - /* Listener que dispara quando a requisição ao core da erro */ - child.on('error', function(code, signal){ - res.send(500, parameters.errorMessage('Erro na chamada ao core')); - }); - } else { - res.send(500, parameters.errorMessage('Parâmetros insuficientes ou inválidos')); - } - } else { res.send(500, parameters.errorMessage('O valor de algum parâmetro está vazio')); + return; } + + /* Verifica se o paramêtro [transparencia] possui os únicos valores possíveis [opaco, transparente] */ + if (parameters.checkTransparency(req.body.transparencia)) { + res.send(500, parameters.errorMessage('Parâmetros insuficientes ou inválidos')); + return; + } + + /* Cria a linha de comando */ + var command_line = 'echo ' + req.body.texto + ' >> ' + __dirname + '/text_files/' + properties.ID_FROM_BD + ' && cd ../vlibras-core' + + ' && ./vlibras ' + parameters.getServiceType(req.body.servico) + ' ../vlibras-api/text_files/' + + properties.ID_FROM_BD + ' ' + parameters.getTransparency(req.body.transparencia) + ' ' + properties.ID_FROM_BD + ' IOS'; + + /* Executa a linha de comando */ + child = exec(command_line, function(err, stdout, stderr) { + // [stdout] = vlibras-core output + // console.log(stdout); + }); + + /* Listener que dispara quando a requisição ao core finaliza */ + child.on('close', function(code, signal){ + res.send(200, { 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + properties.ID_FROM_BD + '.avi' }); + properties.ID_FROM_BD++; + }); + + /* Listener que dispara quando a requisição ao core da erro */ + child.on('error', function(code, signal){ + res.send(500, parameters.errorMessage('Erro na chamada ao core')); + }); }; module.exports.init = init; \ No newline at end of file diff --git a/endpoints/legenda.js b/endpoints/legenda.js index 05da687..095d8a0 100644 --- a/endpoints/legenda.js +++ b/endpoints/legenda.js @@ -7,50 +7,53 @@ var fs = require('fs'); function init(req, res) { /* Verifica se o paramêtro [transparencia] possue algum valor */ if (req.body.transparencia !== '') { - /* Verifica se os paramêtros [transparencia] possuem os seus únicos valores possíveis */ - if ((parameters.checkTransparency(req.body.transparencia) === true)) { - /* Checa se o arquivo de legenda submetivo possui uma extensão válida */ - if (parameters.checkSubtitle(req.files.legenda.name)) { - /* Cria uma pasta cujo o nome é o ID */ - child = exec('mkdir ' + __dirname + '/uploads/' + properties.ID_FROM_BD); - - /* Listener que dispara quando a pasta é criada */ - child.on('close', function(code, signal){ - /* Move a legenda submetido para a pasta com o seu ID correspondente */ - fs.rename(req.files.legenda.path, __dirname + '/uploads/' + properties.ID_FROM_BD + '/' + req.files.legenda.name, function(error) { - if (error) { console.log(error); } - }); - - /* Cria a linha de comando */ - var command_line = 'vlibras_user/vlibras-core/./vlibras ' + parameters.getServiceType(req.body.servico) + ' uploads/' + properties.ID_FROM_BD + '/' + - req.files.legenda.name + ' ' + parameters.getTransparency(req.body.transparencia) + ' ' + properties.ID_FROM_BD; - - /* Executa a linha de comando */ - child = exec(command_line, function(err, stdout, stderr) { - // [stdout] = vlibras-core output - // console.log(stdout); - }); - - /* Listener que dispara quando a requisição ao core finaliza */ - child.on('close', function(code, signal){ - res.send(200, { 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + properties.ID_FROM_BD + '.flv' }); - properties.ID_FROM_BD++; - }); - - /* Listener que dispara quando a requisição ao core da erro */ - child.on('error', function(code, signal){ - res.send(500, parameters.errorMessage('Erro na chamada ao core')); - }); - }); - } else { - res.send(500, parameters.errorMessage('Legenda com Extensão Inválida')); - } - } else { - res.send(500, parameters.errorMessage('Parâmetros insuficientes ou inválidos')); - } - } else { res.send(500, parameters.errorMessage('O valor de algum parâmetro está vazio')); + return; } + + /* Verifica se os paramêtros [transparencia] possuem os seus únicos valores possíveis */ + if ((parameters.checkTransparency(req.body.transparencia) === true)) { + res.send(500, parameters.errorMessage('Parâmetros insuficientes ou inválidos')); + return; + } + + /* Checa se o arquivo de legenda submetivo possui uma extensão válida */ + if (parameters.checkSubtitle(req.files.legenda.name)) { + res.send(500, parameters.errorMessage('Legenda com Extensão Inválida')); + return; + } + + /* Cria uma pasta cujo o nome é o ID */ + child = exec('mkdir ' + __dirname + '/uploads/' + properties.ID_FROM_BD); + + /* Listener que dispara quando a pasta é criada */ + child.on('close', function(code, signal){ + /* Move a legenda submetido para a pasta com o seu ID correspondente */ + fs.rename(req.files.legenda.path, __dirname + '/uploads/' + properties.ID_FROM_BD + '/' + req.files.legenda.name, function(error) { + if (error) { console.log(error); } + }); + + /* Cria a linha de comando */ + var command_line = 'vlibras_user/vlibras-core/./vlibras ' + parameters.getServiceType(req.body.servico) + ' uploads/' + properties.ID_FROM_BD + '/' + + req.files.legenda.name + ' ' + parameters.getTransparency(req.body.transparencia) + ' ' + properties.ID_FROM_BD; + + /* Executa a linha de comando */ + child = exec(command_line, function(err, stdout, stderr) { + // [stdout] = vlibras-core output + // console.log(stdout); + }); + + /* Listener que dispara quando a requisição ao core finaliza */ + child.on('close', function(code, signal){ + res.send(200, { 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + properties.ID_FROM_BD + '.flv' }); + properties.ID_FROM_BD++; + }); + + /* Listener que dispara quando a requisição ao core da erro */ + child.on('error', function(code, signal){ + res.send(500, parameters.errorMessage('Erro na chamada ao core')); + }); + }); }; module.exports.init = init; \ No newline at end of file diff --git a/endpoints/texto.js b/endpoints/texto.js index c3c8b22..39d1768 100644 --- a/endpoints/texto.js +++ b/endpoints/texto.js @@ -7,34 +7,36 @@ var fs = require('fs'); function init(req, res) { /* Verifica se os paramêtros [transparencia, texto] possuem algum valor */ if ((req.body.transparencia !== '') && (req.body.texto !== '')) { - /* Verifica se o paramêtro [transparencia] possui os únicos valores possíveis [opaco, transparente] */ - if (parameters.checkTransparency(req.body.transparencia)) { - /* Cria a linha de comando */ - var command_line = 'echo ' + req.body.texto + ' >> ' + __dirname + '/text_files/' + properties.ID_FROM_BD + ' && cd ../vlibras-core' + - ' && ./vlibras ' + parameters.getServiceType(req.body.servico) + ' ../vlibras-api/text_files/' + - properties.ID_FROM_BD + ' ' + parameters.getTransparency(req.body.transparencia) + ' ' + properties.ID_FROM_BD + ' WEB'; - - /* Executa a linha de comando */ - child = exec(command_line, function(err, stdout, stderr) { - // [stdout] = vlibras-core output - }); - - /* Listener que dispara quando a requisição ao core finaliza */ - child.on('close', function(code, signal){ - res.send(200, { 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + properties.ID_FROM_BD + '.webm' }); - properties.ID_FROM_BD++; - }); - - /* Listener que dispara quando a requisição ao core da erro */ - child.on('error', function(code, signal){ - res.send(500, parameters.errorMessage('Erro na chamada ao core')); - }); - } else { - res.send(500, parameters.errorMessage('Parâmetros insuficientes ou inválidos')); - } - } else { res.send(500, parameters.errorMessage('O valor de algum parâmetro está vazio')); + return; } + + /* Verifica se o paramêtro [transparencia] possui os únicos valores possíveis [opaco, transparente] */ + if (parameters.checkTransparency(req.body.transparencia)) { + res.send(500, parameters.errorMessage('Parâmetros insuficientes ou inválidos')); + return; + } + + /* Cria a linha de comando */ + var command_line = 'echo ' + req.body.texto + ' >> ' + __dirname + '/text_files/' + properties.ID_FROM_BD + ' && cd ../vlibras-core' + + ' && ./vlibras ' + parameters.getServiceType(req.body.servico) + ' ../vlibras-api/text_files/' + + properties.ID_FROM_BD + ' ' + parameters.getTransparency(req.body.transparencia) + ' ' + properties.ID_FROM_BD + ' WEB'; + + /* Executa a linha de comando */ + child = exec(command_line, function(err, stdout, stderr) { + // [stdout] = vlibras-core output + }); + + /* Listener que dispara quando a requisição ao core finaliza */ + child.on('close', function(code, signal){ + res.send(200, { 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + properties.ID_FROM_BD + '.webm' }); + properties.ID_FROM_BD++; + }); + + /* Listener que dispara quando a requisição ao core da erro */ + child.on('error', function(code, signal){ + res.send(500, parameters.errorMessage('Erro na chamada ao core')); + }); }; module.exports.init = init; \ No newline at end of file diff --git a/endpoints/video.js b/endpoints/video.js index a2c79ed..9d43825 100644 --- a/endpoints/video.js +++ b/endpoints/video.js @@ -10,107 +10,110 @@ var fs = require('fs'); function init(req, res) { /* Verifica se os paramêtros [posicao, tamanho, transparencia] possuem algum valor */ if ((req.body.posicao !== '') && (req.body.tamanho !== '') && (req.body.transparencia !== '')) { - /* Verifica se os paramêtros [linguagem, posicao, tamanho, transparencia] possuem os seus únicos valores possíveis */ - if ((parameters.checkPosition(req.body.posicao) === true) && (parameters.checkSize(req.body.tamanho) === true) && (parameters.checkTransparency(req.body.transparencia) === true)) { - /* Checa se o arquivo de vídeo submetivo possui uma extensão válida */ - if (parameters.checkVideo(req.files.video.name)) { - /* Cria uma pasta cujo o nome é o ID */ - child = exec('mkdir ' + __dirname + '/uploads/' + properties.ID_FROM_BD); - - /* Listener que dispara quando a pasta é criada */ - child.on('close', function(code, signal){ - /* Move o vídeo submetido para a pasta com o seu ID correspondente */ - fs.rename(req.files.video.path, __dirname + '/uploads/' + properties.ID_FROM_BD + '/' + req.files.video.name, function(error) { - if (error) { console.log(error); } - }); - - /* Cria a linha de comando */ - var command_line = 'vlibras_user/vlibras-core/./vlibras ' + parameters.getServiceType(req.body.servico) + ' uploads/' + properties.ID_FROM_BD + '/' + - req.files.video.name + ' 1 ' + parameters.getPosition(req.body.posicao) + ' ' + parameters.getSize(req.body.tamanho) + ' ' + - parameters.getTransparency(req.body.transparencia) + ' ' + properties.ID_FROM_BD; - - /* Executa a linha de comando */ - child = exec(command_line, function(err, stdout, stderr) { - // [stdout] = vlibras-core output - }); - - if (req.body.callback === undefined) { - /* Listener que dispara quando a requisição ao core finaliza */ - child.on('close', function(code, signal){ - res.send(200, { 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + properties.ID_FROM_BD + '.flv' }); - properties.ID_FROM_BD++; - }); - - child.on('error', function(code, signal){ - res.send(500, parameters.errorMessage('Erro na chamada ao core')); - }); - } else { - - child.on('close', function(code, signal){ - var path = url.parse(req.body.callback); - - var data = querystring.stringify({ 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + properties.ID_FROM_BD + '.flv' }); - - var options = { - host: path.hostname, - port: path.port, - path: path.path, - method: 'POST', - headers: { - 'Content-Type': 'application/x-www-form-urlencoded', - 'Content-Length': Buffer.byteLength(data) - } - }; - - var requesting = http.request(options, function(res) { - res.setEncoding('utf8'); - // res.on('data', function (chunk) { - // console.log("req.body: " + chunk); - // }); - }); - - requesting.write(data); - requesting.end(); - - properties.ID_FROM_BD++; - }); - - /* Listener que dispara quando a requisição ao core da erro */ - child.on('error', function(code, signal){ - - var data = querystring.stringify(parameters.errorMessage('Erro na chamada ao core')); - - var options = { - host: path.hostname, - port: path.port, - path: path.path, - method: 'POST', - headers: { - 'Content-Type': 'application/x-www-form-urlencoded', - 'Content-Length': Buffer.byteLength(data) - } - }; - - var requesting = http.request(options, function(res) { - res.setEncoding('utf8'); - }); - - requesting.write(data); - requesting.end(); - }); - - res.send(200); - } - }); - } else { - res.send(500, parameters.errorMessage('Vídeo com Extensão Inválida')); - } - } else { - res.send(500, parameters.errorMessage('Parâmetros insuficientes ou inválidos')); - } - } else { res.send(500, parameters.errorMessage('O valor de algum parâmetro está vazio')); + return; } + + /* Verifica se os paramêtros [linguagem, posicao, tamanho, transparencia] possuem os seus únicos valores possíveis */ + if ((parameters.checkPosition(req.body.posicao) === true) && (parameters.checkSize(req.body.tamanho) === true) && (parameters.checkTransparency(req.body.transparencia) === true)) { + res.send(500, parameters.errorMessage('Parâmetros insuficientes ou inválidos')); + return; + } + + /* Checa se o arquivo de vídeo submetivo possui uma extensão válida */ + if (parameters.checkVideo(req.files.video.name)) { + res.send(500, parameters.errorMessage('Vídeo com Extensão Inválida')); + return; + } + + /* Cria uma pasta cujo o nome é o ID */ + child = exec('mkdir ' + __dirname + '/uploads/' + properties.ID_FROM_BD); + + /* Listener que dispara quando a pasta é criada */ + child.on('close', function(code, signal){ + /* Move o vídeo submetido para a pasta com o seu ID correspondente */ + fs.rename(req.files.video.path, __dirname + '/uploads/' + properties.ID_FROM_BD + '/' + req.files.video.name, function(error) { + if (error) { console.log(error); } + }); + + /* Cria a linha de comando */ + var command_line = 'vlibras_user/vlibras-core/./vlibras ' + parameters.getServiceType(req.body.servico) + ' uploads/' + properties.ID_FROM_BD + '/' + + req.files.video.name + ' 1 ' + parameters.getPosition(req.body.posicao) + ' ' + parameters.getSize(req.body.tamanho) + ' ' + + parameters.getTransparency(req.body.transparencia) + ' ' + properties.ID_FROM_BD; + + /* Executa a linha de comando */ + child = exec(command_line, function(err, stdout, stderr) { + // [stdout] = vlibras-core output + }); + + if (req.body.callback === undefined) { + /* Listener que dispara quando a requisição ao core finaliza */ + child.on('close', function(code, signal){ + res.send(200, { 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + properties.ID_FROM_BD + '.flv' }); + properties.ID_FROM_BD++; + }); + + child.on('error', function(code, signal){ + res.send(500, parameters.errorMessage('Erro na chamada ao core')); + }); + } else { + + child.on('close', function(code, signal){ + var path = url.parse(req.body.callback); + + var data = querystring.stringify({ 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + properties.ID_FROM_BD + '.flv' }); + + var options = { + host: path.hostname, + port: path.port, + path: path.path, + method: 'POST', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded', + 'Content-Length': Buffer.byteLength(data) + } + }; + + var requesting = http.request(options, function(res) { + res.setEncoding('utf8'); + // res.on('data', function (chunk) { + // console.log("req.body: " + chunk); + // }); + }); + + requesting.write(data); + requesting.end(); + + properties.ID_FROM_BD++; + }); + + /* Listener que dispara quando a requisição ao core da erro */ + child.on('error', function(code, signal){ + + var data = querystring.stringify(parameters.errorMessage('Erro na chamada ao core')); + + var options = { + host: path.hostname, + port: path.port, + path: path.path, + method: 'POST', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded', + 'Content-Length': Buffer.byteLength(data) + } + }; + + var requesting = http.request(options, function(res) { + res.setEncoding('utf8'); + }); + + requesting.write(data); + requesting.end(); + }); + + res.send(200); + } + }); }; module.exports.init = init; \ No newline at end of file diff --git a/endpoints/video_legenda.js b/endpoints/video_legenda.js index ebaab0a..4fed954 100644 --- a/endpoints/video_legenda.js +++ b/endpoints/video_legenda.js @@ -10,119 +10,123 @@ var fs = require('fs'); function init(req, res) { /* Verifica se os paramêtros [transparencia, texto] possuem algum valor */ if ((req.body.linguagem !== '') && (req.body.posicao !== '') && (req.body.tamanho !== '') && (req.body.transparencia !== '')) { - /* Verifica se os paramêtros [linguagem, posicao, tamanho, transparencia] possuem os seus únicos valores possíveis */ - if ((parameters.checkLanguage(req.body.linguagem) === true) && (parameters.checkPosition(req.body.posicao) === true) && (parameters.checkSize(req.body.tamanho) === true) && (parameters.checkTransparency(req.body.transparencia) === true)) { - /* Checa se o arquivo de vídeo submetivo possui uma extensão válida */ - if (parameters.checkVideo(req.files.video.name)) { - /* Checa se o arquivo de legenda submetivo possui uma extensão válida */ - if (parameters.checkSubtitle(req.files.legenda.name)) { - /* Cria uma pasta cujo o nome é o ID */ - child = exec('mkdir ' + __dirname + '/uploads/' + properties.ID_FROM_BD); - - /* Listener que dispara quando a pasta é criada */ - child.on('close', function(code, signal){ - - /* Move o vídeo submetido para a pasta com o seu ID correspondente */ - fs.rename(req.files.video.path, __dirname + '/uploads/' + properties.ID_FROM_BD + '/' + req.files.video.name, function(error) { - if (error) { console.log(error); } - }); - - /* Move a legenda submetido para a pasta com o seu ID correspondente */ - fs.rename(req.files.legenda.path, __dirname + '/uploads/' + properties.ID_FROM_BD + '/' + req.files.legenda.name, function(error) { - if (error) { console.log(error); } - }); - - /* Cria a linha de comando */ - var command_line = 'vlibras_user/vlibras-core/./vlibras ' + parameters.getServiceType(req.body.servico) + ' uploads/' + properties.ID_FROM_BD + '/' + - req.files.video.name + ' uploads/' + properties.ID_FROM_BD + '/' + req.files.legenda.name + ' ' + parameters.getLanguage(req.body.linguagem) + - ' ' + parameters.getPosition(req.body.posicao) + ' ' + parameters.getSize(req.body.tamanho) + ' ' + - parameters.getTransparency(req.body.transparencia) + ' ' + properties.ID_FROM_BD; - - /* Executa a linha de comando */ - child = exec(command_line, function(err, stdout, stderr) { - // [stdout] = vlibras-core output - }); - - if (req.body.callback === undefined) { - /* Listener que dispara quando a requisição ao core finaliza */ - child.on('close', function(code, signal){ - res.send(200, { 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + properties.ID_FROM_BD + '.flv' }); - properties.ID_FROM_BD++; - }); - - child.on('error', function(code, signal){ - res.send(500, parameters.errorMessage('Erro na chamada ao core')); - }); - } else { - - child.on('close', function(code, signal){ - var path = url.parse(req.body.callback); - - var data = querystring.stringify({ 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + properties.ID_FROM_BD + '.flv' }); - - var options = { - host: path.hostname, - port: path.port, - path: path.path, - method: 'POST', - headers: { - 'Content-Type': 'application/x-www-form-urlencoded', - 'Content-Length': Buffer.byteLength(data) - } - }; - - var requesting = http.request(options, function(res) { - res.setEncoding('utf8'); - // res.on('data', function (chunk) { - // console.log("req.body: " + chunk); - // }); - }); - - requesting.write(data); - requesting.end(); - - properties.ID_FROM_BD++; - }); - - /* Listener que dispara quando a requisição ao core da erro */ - child.on('error', function(code, signal){ - - var data = querystring.stringify(parameters.errorMessage('Erro na chamada ao core')); - - var options = { - host: path.hostname, - port: path.port, - path: path.path, - method: 'POST', - headers: { - 'Content-Type': 'application/x-www-form-urlencoded', - 'Content-Length': Buffer.byteLength(data) - } - }; - - var requesting = http.request(options, function(res) { - res.setEncoding('utf8'); - }); - - requesting.write(data); - requesting.end(); - }); - - res.send(200); - } - }); - } else { - res.send(500, parameters.errorMessage('Legenda com Extensão Inválida')); - } - } else { - res.send(500, parameters.errorMessage('Vídeo com Extensão Inválida')); - } - } else { - res.send(500, parameters.errorMessage('Parâmetros insuficientes ou inválidos')); - } - } else { res.send(500, parameters.errorMessage('O valor de algum parâmetro está vazio')); + return; + } + + /* Verifica se os paramêtros [linguagem, posicao, tamanho, transparencia] possuem os seus únicos valores possíveis */ + if ((parameters.checkLanguage(req.body.linguagem) === true) && (parameters.checkPosition(req.body.posicao) === true) && (parameters.checkSize(req.body.tamanho) === true) && (parameters.checkTransparency(req.body.transparencia) === true)) { + res.send(500, parameters.errorMessage('Parâmetros insuficientes ou inválidos')); + return; + } + + /* Checa se o arquivo de vídeo submetivo possui uma extensão válida */ + if (parameters.checkVideo(req.files.video.name)) { + res.send(500, parameters.errorMessage('Vídeo com Extensão Inválida')); + return; } + + /* Checa se o arquivo de legenda submetivo possui uma extensão válida */ + if (parameters.checkSubtitle(req.files.legenda.name)) { + res.send(500, parameters.errorMessage('Legenda com Extensão Inválida')); + return; + } + + /* Cria uma pasta cujo o nome é o ID */ + child = exec('mkdir ' + __dirname + '/uploads/' + properties.ID_FROM_BD); + + /* Listener que dispara quando a pasta é criada */ + child.on('close', function(code, signal){ + + /* Move o vídeo submetido para a pasta com o seu ID correspondente */ + fs.rename(req.files.video.path, __dirname + '/uploads/' + properties.ID_FROM_BD + '/' + req.files.video.name, function(error) { + if (error) { console.log(error); } + }); + + /* Move a legenda submetido para a pasta com o seu ID correspondente */ + fs.rename(req.files.legenda.path, __dirname + '/uploads/' + properties.ID_FROM_BD + '/' + req.files.legenda.name, function(error) { + if (error) { console.log(error); } + }); + + /* Cria a linha de comando */ + var command_line = 'vlibras_user/vlibras-core/./vlibras ' + parameters.getServiceType(req.body.servico) + ' uploads/' + properties.ID_FROM_BD + '/' + + req.files.video.name + ' uploads/' + properties.ID_FROM_BD + '/' + req.files.legenda.name + ' ' + parameters.getLanguage(req.body.linguagem) + + ' ' + parameters.getPosition(req.body.posicao) + ' ' + parameters.getSize(req.body.tamanho) + ' ' + + parameters.getTransparency(req.body.transparencia) + ' ' + properties.ID_FROM_BD; + + /* Executa a linha de comando */ + child = exec(command_line, function(err, stdout, stderr) { + // [stdout] = vlibras-core output + }); + + if (req.body.callback === undefined) { + /* Listener que dispara quando a requisição ao core finaliza */ + child.on('close', function(code, signal){ + res.send(200, { 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + properties.ID_FROM_BD + '.flv' }); + properties.ID_FROM_BD++; + }); + + child.on('error', function(code, signal){ + res.send(500, parameters.errorMessage('Erro na chamada ao core')); + }); + } else { + + child.on('close', function(code, signal){ + var path = url.parse(req.body.callback); + + var data = querystring.stringify({ 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + properties.ID_FROM_BD + '.flv' }); + + var options = { + host: path.hostname, + port: path.port, + path: path.path, + method: 'POST', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded', + 'Content-Length': Buffer.byteLength(data) + } + }; + + var requesting = http.request(options, function(res) { + res.setEncoding('utf8'); + // res.on('data', function (chunk) { + // console.log("req.body: " + chunk); + // }); + }); + + requesting.write(data); + requesting.end(); + + properties.ID_FROM_BD++; + }); + + /* Listener que dispara quando a requisição ao core da erro */ + child.on('error', function(code, signal){ + + var data = querystring.stringify(parameters.errorMessage('Erro na chamada ao core')); + + var options = { + host: path.hostname, + port: path.port, + path: path.path, + method: 'POST', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded', + 'Content-Length': Buffer.byteLength(data) + } + }; + + var requesting = http.request(options, function(res) { + res.setEncoding('utf8'); + }); + + requesting.write(data); + requesting.end(); + }); + + res.send(200); + } + }); }; module.exports.init = init; \ No newline at end of file -- libgit2 0.21.2