Commit a654c7d5f7714ca664ced87b385285e70850c995

Authored by dhuy
1 parent 9f2b5732
Exists in master and in 1 other branch devel

Added subtitle endpoint

Showing 2 changed files with 53 additions and 1 deletions   Show diff stats
helpers/parameters.js
... ... @@ -7,6 +7,10 @@ function getServiceType(service_type) {
7 7 case 'texto':
8 8 return 4;
9 9 break;
  10 +
  11 + case 'legenda':
  12 + return 5;
  13 + break;
10 14 }
11 15 };
12 16  
... ...
server.js
... ... @@ -60,7 +60,6 @@ app.post('/api', function(req, res){
60 60 break;
61 61  
62 62 case 'video':
63   -
64 63 /* Verifica se os paramêtros [transparencia, texto] possuem algum valor */
65 64 if ((req.query.posicao !== '') && (req.query.tamanho !== '') && (req.query.transparencia !== '')) {
66 65 /* 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){
110 109 }
111 110 break;
112 111  
  112 + case 'legenda':
  113 + /* Verifica se os paramêtros [legenda, transparencia] possuem algum valor */
  114 + if ((req.files.legenda !== undefined) && (req.query.transparencia !== '')) {
  115 + /* Verifica se os paramêtros [transparencia] possuem os seus únicos valores possíveis */
  116 + if ((parameters.checkTransparency(req.query.transparencia) === true)) {
  117 + /* Checa se o arquivo de legenda submetivo possui uma extensão válida */
  118 + if (parameters.checkSubtitle(req.files.legenda.name)) {
  119 + /* Cria uma pasta cujo o nome é o ID */
  120 + child = exec('mkdir ' + __dirname + '/uploads/' + ID_FROM_BD);
  121 +
  122 + /* Listener que dispara quando a pasta é criada */
  123 + child.on('close', function(code, signal){
  124 + /* Move a legenda submetido para a pasta com o seu ID correspondente */
  125 + fs.rename(req.files.legenda.path, __dirname + '/uploads/' + ID_FROM_BD + '/' + req.files.legenda.name, function(error) {
  126 + if (error) { console.log(error); }
  127 + });
  128 +
  129 + /* Cria a linha de comando */
  130 + var command_line = 'vlibras_user/vlibras-core/./gtaaas ' + parameters.getServiceType(req.query.servico) + ' uploads/' + ID_FROM_BD + '/' +
  131 + req.files.legenda.name + ' ' + parameters.getTransparency(req.query.transparencia) + ' ' + ID_FROM_BD;
  132 +
  133 + /* Executa a linha de comando */
  134 + child = exec(command_line, function(err, stdout, stderr) {
  135 + // [stdout] = vlibras-core output
  136 + // console.log(stdout);
  137 + });
  138 +
  139 + /* Listener que dispara quando a requisição ao core finaliza */
  140 + child.on('close', function(code, signal){
  141 + res.send(200, { 'response' : 'http://' + SERVER_IP + ':' + port + '/' + ID_FROM_BD + '.flv' });
  142 + ID_FROM_BD++;
  143 + });
  144 +
  145 + /* Listener que dispara quando a requisição ao core da erro */
  146 + child.on('error', function(code, signal){
  147 + res.send(500, parameters.errorMessage('Erro na chamada ao core'));
  148 + });
  149 + });
  150 + } else {
  151 + res.send(500, parameters.errorMessage('Vídeo com Extensão Inválida'));
  152 + }
  153 + } else {
  154 + res.send(500, parameters.errorMessage('Parâmetros insuficientes ou inválidos'));
  155 + }
  156 + } else {
  157 + res.send(500, parameters.errorMessage('O valor de algum parâmetro está vazio'));
  158 + }
  159 + break;
  160 +
113 161 /* Case para um Tipo de Serviço inválido */
114 162 default:
115 163 res.send(500, parameters.errorMessage('Tipo do serviço inválido'));
... ...