Commit a654c7d5f7714ca664ced87b385285e70850c995
1 parent
9f2b5732
Exists in
master
and in
1 other branch
Added subtitle endpoint
Showing
2 changed files
with
53 additions
and
1 deletions
Show diff stats
helpers/parameters.js
server.js
@@ -60,7 +60,6 @@ app.post('/api', function(req, res){ | @@ -60,7 +60,6 @@ app.post('/api', function(req, res){ | ||
60 | break; | 60 | break; |
61 | 61 | ||
62 | case 'video': | 62 | case 'video': |
63 | - | ||
64 | /* Verifica se os paramêtros [transparencia, texto] possuem algum valor */ | 63 | /* Verifica se os paramêtros [transparencia, texto] possuem algum valor */ |
65 | if ((req.query.posicao !== '') && (req.query.tamanho !== '') && (req.query.transparencia !== '')) { | 64 | if ((req.query.posicao !== '') && (req.query.tamanho !== '') && (req.query.transparencia !== '')) { |
66 | /* 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 */ |
@@ -110,6 +109,55 @@ app.post('/api', function(req, res){ | @@ -110,6 +109,55 @@ app.post('/api', function(req, res){ | ||
110 | } | 109 | } |
111 | break; | 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 | /* Case para um Tipo de Serviço inválido */ | 161 | /* Case para um Tipo de Serviço inválido */ |
114 | default: | 162 | default: |
115 | res.send(500, parameters.errorMessage('Tipo do serviço inválido')); | 163 | res.send(500, parameters.errorMessage('Tipo do serviço inválido')); |