Commit 9793ede04cf4282b97e0bd0330dd4596760936c8
1 parent
edb69bc6
Exists in
master
and in
1 other branch
Added video and subtitle endpoint
Showing
2 changed files
with
70 additions
and
4 deletions
Show diff stats
helpers/parameters.js
server.js
| @@ -60,7 +60,7 @@ app.post('/api', function(req, res){ | @@ -60,7 +60,7 @@ app.post('/api', function(req, res){ | ||
| 60 | break; | 60 | break; |
| 61 | 61 | ||
| 62 | case 'video': | 62 | case 'video': |
| 63 | - /* Verifica se os paramêtros [transparencia, texto] possuem algum valor */ | 63 | + /* Verifica se os paramêtros [posicao, tamanho, transparencia] possuem algum valor */ |
| 64 | if ((req.query.posicao !== '') && (req.query.tamanho !== '') && (req.query.transparencia !== '')) { | 64 | if ((req.query.posicao !== '') && (req.query.tamanho !== '') && (req.query.transparencia !== '')) { |
| 65 | /* Verifica se os paramêtros [linguagem, posicao, tamanho, transparencia] possuem os seus únicos valores possíveis */ | 65 | /* Verifica se os paramêtros [linguagem, posicao, tamanho, transparencia] possuem os seus únicos valores possíveis */ |
| 66 | if ((parameters.checkPosition(req.query.posicao) === true) && (parameters.checkSize(req.query.tamanho) === true) && (parameters.checkTransparency(req.query.transparencia) === true)) { | 66 | if ((parameters.checkPosition(req.query.posicao) === true) && (parameters.checkSize(req.query.tamanho) === true) && (parameters.checkTransparency(req.query.transparencia) === true)) { |
| @@ -110,8 +110,8 @@ app.post('/api', function(req, res){ | @@ -110,8 +110,8 @@ app.post('/api', function(req, res){ | ||
| 110 | break; | 110 | break; |
| 111 | 111 | ||
| 112 | case 'legenda': | 112 | case 'legenda': |
| 113 | - /* Verifica se os paramêtros [legenda, transparencia] possuem algum valor */ | ||
| 114 | - if ((req.files.legenda !== undefined) && (req.query.transparencia !== '')) { | 113 | + /* Verifica se o paramêtro [transparencia] possue algum valor */ |
| 114 | + if (req.query.transparencia !== '') { | ||
| 115 | /* Verifica se os paramêtros [transparencia] possuem os seus únicos valores possíveis */ | 115 | /* Verifica se os paramêtros [transparencia] possuem os seus únicos valores possíveis */ |
| 116 | if ((parameters.checkTransparency(req.query.transparencia) === true)) { | 116 | if ((parameters.checkTransparency(req.query.transparencia) === true)) { |
| 117 | /* Checa se o arquivo de legenda submetivo possui uma extensão válida */ | 117 | /* Checa se o arquivo de legenda submetivo possui uma extensão válida */ |
| @@ -148,6 +148,68 @@ app.post('/api', function(req, res){ | @@ -148,6 +148,68 @@ app.post('/api', function(req, res){ | ||
| 148 | }); | 148 | }); |
| 149 | }); | 149 | }); |
| 150 | } else { | 150 | } else { |
| 151 | + res.send(500, parameters.errorMessage('Legenda 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 | + | ||
| 161 | + case 'video-legenda': | ||
| 162 | + /* Verifica se os paramêtros [transparencia, texto] possuem algum valor */ | ||
| 163 | + if ((req.query.linguagem !== '') && (req.query.posicao !== '') && (req.query.tamanho !== '') && (req.query.transparencia !== '')) { | ||
| 164 | + /* Verifica se os paramêtros [linguagem, posicao, tamanho, transparencia] possuem os seus únicos valores possíveis */ | ||
| 165 | + if ((parameters.checkLanguage(req.query.linguagem) === true) && (parameters.checkPosition(req.query.posicao) === true) && (parameters.checkSize(req.query.tamanho) === true) && (parameters.checkTransparency(req.query.transparencia) === true)) { | ||
| 166 | + /* Checa se o arquivo de vídeo submetivo possui uma extensão válida */ | ||
| 167 | + if (parameters.checkVideo(req.files.video.name)) { | ||
| 168 | + /* Checa se o arquivo de legenda submetivo possui uma extensão válida */ | ||
| 169 | + if (parameters.checkSubtitle(req.files.legenda.name)) { | ||
| 170 | + /* Cria uma pasta cujo o nome é o ID */ | ||
| 171 | + child = exec('mkdir ' + __dirname + '/uploads/' + ID_FROM_BD); | ||
| 172 | + | ||
| 173 | + /* Listener que dispara quando a pasta é criada */ | ||
| 174 | + child.on('close', function(code, signal){ | ||
| 175 | + | ||
| 176 | + /* Move o vídeo submetido para a pasta com o seu ID correspondente */ | ||
| 177 | + fs.rename(req.files.video.path, __dirname + '/uploads/' + ID_FROM_BD + '/' + req.files.video.name, function(error) { | ||
| 178 | + if (error) { console.log(error); } | ||
| 179 | + }); | ||
| 180 | + | ||
| 181 | + /* Move a legenda submetido para a pasta com o seu ID correspondente */ | ||
| 182 | + fs.rename(req.files.legenda.path, __dirname + '/uploads/' + ID_FROM_BD + '/' + req.files.legenda.name, function(error) { | ||
| 183 | + if (error) { console.log(error); } | ||
| 184 | + }); | ||
| 185 | + | ||
| 186 | + /* Cria a linha de comando */ | ||
| 187 | + var command_line = 'vlibras_user/vlibras-core/./gtaaas ' + parameters.getServiceType(req.query.servico) + ' uploads/' + ID_FROM_BD + '/' + | ||
| 188 | + req.files.video.name + ' uploads/' + ID_FROM_BD + '/' + req.files.legenda.name + ' ' + parameters.getLanguage(req.params.linguagem) + | ||
| 189 | + ' ' + parameters.getPosition(req.query.posicao) + ' ' + parameters.getSize(req.query.tamanho) + ' ' + | ||
| 190 | + parameters.getTransparency(req.query.transparencia) + ' ' + ID_FROM_BD; | ||
| 191 | + | ||
| 192 | + /* Executa a linha de comando */ | ||
| 193 | + child = exec(command_line, function(err, stdout, stderr) { | ||
| 194 | + // [stdout] = vlibras-core output | ||
| 195 | + // console.log(stdout); | ||
| 196 | + }); | ||
| 197 | + | ||
| 198 | + /* Listener que dispara quando a requisição ao core finaliza */ | ||
| 199 | + child.on('close', function(code, signal){ | ||
| 200 | + res.send(200, { 'response' : 'http://' + SERVER_IP + ':' + port + '/' + ID_FROM_BD + '.flv' }); | ||
| 201 | + ID_FROM_BD++; | ||
| 202 | + }); | ||
| 203 | + | ||
| 204 | + /* Listener que dispara quando a requisição ao core da erro */ | ||
| 205 | + child.on('error', function(code, signal){ | ||
| 206 | + res.send(500, parameters.errorMessage('Erro na chamada ao core')); | ||
| 207 | + }); | ||
| 208 | + }); | ||
| 209 | + } else { | ||
| 210 | + res.send(500, parameters.errorMessage('Legenda com Extensão Inválida')); | ||
| 211 | + } | ||
| 212 | + } else { | ||
| 151 | res.send(500, parameters.errorMessage('Vídeo com Extensão Inválida')); | 213 | res.send(500, parameters.errorMessage('Vídeo com Extensão Inválida')); |
| 152 | } | 214 | } |
| 153 | } else { | 215 | } else { |