From a654c7d5f7714ca664ced87b385285e70850c995 Mon Sep 17 00:00:00 2001 From: dhuy Date: Fri, 11 Apr 2014 01:53:51 -0300 Subject: [PATCH] Added subtitle endpoint --- helpers/parameters.js | 4 ++++ server.js | 50 +++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 53 insertions(+), 1 deletion(-) diff --git a/helpers/parameters.js b/helpers/parameters.js index 7f3d69a..3bae141 100644 --- a/helpers/parameters.js +++ b/helpers/parameters.js @@ -7,6 +7,10 @@ function getServiceType(service_type) { case 'texto': return 4; break; + + case 'legenda': + return 5; + break; } }; diff --git a/server.js b/server.js index 56e96bd..ba7f178 100644 --- a/server.js +++ b/server.js @@ -60,7 +60,6 @@ app.post('/api', function(req, res){ break; case 'video': - /* Verifica se os paramêtros [transparencia, texto] possuem algum valor */ if ((req.query.posicao !== '') && (req.query.tamanho !== '') && (req.query.transparencia !== '')) { /* Verifica se os paramêtros [linguagem, posicao, tamanho, transparencia] possuem os seus únicos valores possíveis */ @@ -110,6 +109,55 @@ app.post('/api', function(req, res){ } break; + case 'legenda': + /* Verifica se os paramêtros [legenda, transparencia] possuem algum valor */ + if ((req.files.legenda !== undefined) && (req.query.transparencia !== '')) { + /* Verifica se os paramêtros [transparencia] possuem os seus únicos valores possíveis */ + if ((parameters.checkTransparency(req.query.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/' + 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/' + 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/./gtaaas ' + parameters.getServiceType(req.query.servico) + ' uploads/' + ID_FROM_BD + '/' + + req.files.legenda.name + ' ' + parameters.getTransparency(req.query.transparencia) + ' ' + 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://' + SERVER_IP + ':' + port + '/' + ID_FROM_BD + '.flv' }); + 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('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')); + } + break; + /* Case para um Tipo de Serviço inválido */ default: res.send(500, parameters.errorMessage('Tipo do serviço inválido')); -- libgit2 0.21.2