Commit 022ebf654eba65db49a0be82562d6665535d81e2

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

Including module pattern

endpoints/ios.js 0 → 100644
@@ -0,0 +1,41 @@ @@ -0,0 +1,41 @@
  1 +var parameters = require('../helpers/parameters');
  2 +var properties = require('../helpers/properties');
  3 +
  4 +var exec = require('child_process').exec, child;
  5 +var fs = require('fs');
  6 +
  7 +function init(req, res) {
  8 + /* Verifica se os paramêtros [transparencia, texto] possuem algum valor */
  9 + if ((req.body.transparencia !== '') && (req.body.texto !== '')) {
  10 + /* Verifica se o paramêtro [transparencia] possui os únicos valores possíveis [opaco, transparente] */
  11 + if (parameters.checkTransparency(req.body.transparencia)) {
  12 + /* Cria a linha de comando */
  13 + var command_line = 'echo ' + req.body.texto + ' >> ' + __dirname + '/text_files/' + properties.ID_FROM_BD + ' && cd ../vlibras-core' +
  14 + ' && ./vlibras ' + parameters.getServiceType(req.body.servico) + ' ../vlibras-api/text_files/' +
  15 + properties.ID_FROM_BD + ' ' + parameters.getTransparency(req.body.transparencia) + ' ' + properties.ID_FROM_BD + ' IOS';
  16 +
  17 + /* Executa a linha de comando */
  18 + child = exec(command_line, function(err, stdout, stderr) {
  19 + // [stdout] = vlibras-core output
  20 + // console.log(stdout);
  21 + });
  22 +
  23 + /* Listener que dispara quando a requisição ao core finaliza */
  24 + child.on('close', function(code, signal){
  25 + res.send(200, { 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + properties.ID_FROM_BD + '.avi' });
  26 + properties.ID_FROM_BD++;
  27 + });
  28 +
  29 + /* Listener que dispara quando a requisição ao core da erro */
  30 + child.on('error', function(code, signal){
  31 + res.send(500, parameters.errorMessage('Erro na chamada ao core'));
  32 + });
  33 + } else {
  34 + res.send(500, parameters.errorMessage('Parâmetros insuficientes ou inválidos'));
  35 + }
  36 + } else {
  37 + res.send(500, parameters.errorMessage('O valor de algum parâmetro está vazio'));
  38 + }
  39 +};
  40 +
  41 +module.exports.init = init;
0 \ No newline at end of file 42 \ No newline at end of file
endpoints/legenda.js 0 → 100644
@@ -0,0 +1,56 @@ @@ -0,0 +1,56 @@
  1 +var parameters = require('../helpers/parameters');
  2 +var properties = require('../helpers/properties');
  3 +
  4 +var exec = require('child_process').exec, child;
  5 +var fs = require('fs');
  6 +
  7 +function init(req, res) {
  8 + /* Verifica se o paramêtro [transparencia] possue algum valor */
  9 + if (req.body.transparencia !== '') {
  10 + /* Verifica se os paramêtros [transparencia] possuem os seus únicos valores possíveis */
  11 + if ((parameters.checkTransparency(req.body.transparencia) === true)) {
  12 + /* Checa se o arquivo de legenda submetivo possui uma extensão válida */
  13 + if (parameters.checkSubtitle(req.files.legenda.name)) {
  14 + /* Cria uma pasta cujo o nome é o ID */
  15 + child = exec('mkdir ' + __dirname + '/uploads/' + properties.ID_FROM_BD);
  16 +
  17 + /* Listener que dispara quando a pasta é criada */
  18 + child.on('close', function(code, signal){
  19 + /* Move a legenda submetido para a pasta com o seu ID correspondente */
  20 + fs.rename(req.files.legenda.path, __dirname + '/uploads/' + properties.ID_FROM_BD + '/' + req.files.legenda.name, function(error) {
  21 + if (error) { console.log(error); }
  22 + });
  23 +
  24 + /* Cria a linha de comando */
  25 + var command_line = 'vlibras_user/vlibras-core/./vlibras ' + parameters.getServiceType(req.body.servico) + ' uploads/' + properties.ID_FROM_BD + '/' +
  26 + req.files.legenda.name + ' ' + parameters.getTransparency(req.body.transparencia) + ' ' + properties.ID_FROM_BD;
  27 +
  28 + /* Executa a linha de comando */
  29 + child = exec(command_line, function(err, stdout, stderr) {
  30 + // [stdout] = vlibras-core output
  31 + // console.log(stdout);
  32 + });
  33 +
  34 + /* Listener que dispara quando a requisição ao core finaliza */
  35 + child.on('close', function(code, signal){
  36 + res.send(200, { 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + properties.ID_FROM_BD + '.flv' });
  37 + properties.ID_FROM_BD++;
  38 + });
  39 +
  40 + /* Listener que dispara quando a requisição ao core da erro */
  41 + child.on('error', function(code, signal){
  42 + res.send(500, parameters.errorMessage('Erro na chamada ao core'));
  43 + });
  44 + });
  45 + } else {
  46 + res.send(500, parameters.errorMessage('Legenda com Extensão Inválida'));
  47 + }
  48 + } else {
  49 + res.send(500, parameters.errorMessage('Parâmetros insuficientes ou inválidos'));
  50 + }
  51 + } else {
  52 + res.send(500, parameters.errorMessage('O valor de algum parâmetro está vazio'));
  53 + }
  54 +};
  55 +
  56 +module.exports.init = init;
0 \ No newline at end of file 57 \ No newline at end of file
endpoints/texto.js 0 → 100644
@@ -0,0 +1,40 @@ @@ -0,0 +1,40 @@
  1 +var parameters = require('../helpers/parameters');
  2 +var properties = require('../helpers/properties');
  3 +
  4 +var exec = require('child_process').exec, child;
  5 +var fs = require('fs');
  6 +
  7 +function init(req, res) {
  8 + /* Verifica se os paramêtros [transparencia, texto] possuem algum valor */
  9 + if ((req.body.transparencia !== '') && (req.body.texto !== '')) {
  10 + /* Verifica se o paramêtro [transparencia] possui os únicos valores possíveis [opaco, transparente] */
  11 + if (parameters.checkTransparency(req.body.transparencia)) {
  12 + /* Cria a linha de comando */
  13 + var command_line = 'echo ' + req.body.texto + ' >> ' + __dirname + '/text_files/' + properties.ID_FROM_BD + ' && cd ../vlibras-core' +
  14 + ' && ./vlibras ' + parameters.getServiceType(req.body.servico) + ' ../vlibras-api/text_files/' +
  15 + properties.ID_FROM_BD + ' ' + parameters.getTransparency(req.body.transparencia) + ' ' + properties.ID_FROM_BD + ' WEB';
  16 +
  17 + /* Executa a linha de comando */
  18 + child = exec(command_line, function(err, stdout, stderr) {
  19 + // [stdout] = vlibras-core output
  20 + });
  21 +
  22 + /* Listener que dispara quando a requisição ao core finaliza */
  23 + child.on('close', function(code, signal){
  24 + res.send(200, { 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + properties.ID_FROM_BD + '.webm' });
  25 + properties.ID_FROM_BD++;
  26 + });
  27 +
  28 + /* Listener que dispara quando a requisição ao core da erro */
  29 + child.on('error', function(code, signal){
  30 + res.send(500, parameters.errorMessage('Erro na chamada ao core'));
  31 + });
  32 + } else {
  33 + res.send(500, parameters.errorMessage('Parâmetros insuficientes ou inválidos'));
  34 + }
  35 + } else {
  36 + res.send(500, parameters.errorMessage('O valor de algum parâmetro está vazio'));
  37 + }
  38 +};
  39 +
  40 +module.exports.init = init;
0 \ No newline at end of file 41 \ No newline at end of file
endpoints/video.js 0 → 100644
@@ -0,0 +1,116 @@ @@ -0,0 +1,116 @@
  1 +var parameters = require('../helpers/parameters');
  2 +var properties = require('../helpers/properties');
  3 +
  4 +var exec = require('child_process').exec, child;
  5 +var querystring = require('querystring');
  6 +var http = require('http');
  7 +var url = require('url');
  8 +var fs = require('fs');
  9 +
  10 +function init(req, res) {
  11 + /* Verifica se os paramêtros [posicao, tamanho, transparencia] possuem algum valor */
  12 + if ((req.body.posicao !== '') && (req.body.tamanho !== '') && (req.body.transparencia !== '')) {
  13 + /* Verifica se os paramêtros [linguagem, posicao, tamanho, transparencia] possuem os seus únicos valores possíveis */
  14 + if ((parameters.checkPosition(req.body.posicao) === true) && (parameters.checkSize(req.body.tamanho) === true) && (parameters.checkTransparency(req.body.transparencia) === true)) {
  15 + /* Checa se o arquivo de vídeo submetivo possui uma extensão válida */
  16 + if (parameters.checkVideo(req.files.video.name)) {
  17 + /* Cria uma pasta cujo o nome é o ID */
  18 + child = exec('mkdir ' + __dirname + '/uploads/' + properties.ID_FROM_BD);
  19 +
  20 + /* Listener que dispara quando a pasta é criada */
  21 + child.on('close', function(code, signal){
  22 + /* Move o vídeo submetido para a pasta com o seu ID correspondente */
  23 + fs.rename(req.files.video.path, __dirname + '/uploads/' + properties.ID_FROM_BD + '/' + req.files.video.name, function(error) {
  24 + if (error) { console.log(error); }
  25 + });
  26 +
  27 + /* Cria a linha de comando */
  28 + var command_line = 'vlibras_user/vlibras-core/./vlibras ' + parameters.getServiceType(req.body.servico) + ' uploads/' + properties.ID_FROM_BD + '/' +
  29 + req.files.video.name + ' 1 ' + parameters.getPosition(req.body.posicao) + ' ' + parameters.getSize(req.body.tamanho) + ' ' +
  30 + parameters.getTransparency(req.body.transparencia) + ' ' + properties.ID_FROM_BD;
  31 +
  32 + /* Executa a linha de comando */
  33 + child = exec(command_line, function(err, stdout, stderr) {
  34 + // [stdout] = vlibras-core output
  35 + });
  36 +
  37 + if (req.body.callback === undefined) {
  38 + /* Listener que dispara quando a requisição ao core finaliza */
  39 + child.on('close', function(code, signal){
  40 + res.send(200, { 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + properties.ID_FROM_BD + '.flv' });
  41 + properties.ID_FROM_BD++;
  42 + });
  43 +
  44 + child.on('error', function(code, signal){
  45 + res.send(500, parameters.errorMessage('Erro na chamada ao core'));
  46 + });
  47 + } else {
  48 +
  49 + child.on('close', function(code, signal){
  50 + var path = url.parse(req.body.callback);
  51 +
  52 + var data = querystring.stringify({ 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + properties.ID_FROM_BD + '.flv' });
  53 +
  54 + var options = {
  55 + host: path.hostname,
  56 + port: path.port,
  57 + path: path.path,
  58 + method: 'POST',
  59 + headers: {
  60 + 'Content-Type': 'application/x-www-form-urlencoded',
  61 + 'Content-Length': Buffer.byteLength(data)
  62 + }
  63 + };
  64 +
  65 + var requesting = http.request(options, function(res) {
  66 + res.setEncoding('utf8');
  67 + // res.on('data', function (chunk) {
  68 + // console.log("req.body: " + chunk);
  69 + // });
  70 + });
  71 +
  72 + requesting.write(data);
  73 + requesting.end();
  74 +
  75 + properties.ID_FROM_BD++;
  76 + });
  77 +
  78 + /* Listener que dispara quando a requisição ao core da erro */
  79 + child.on('error', function(code, signal){
  80 +
  81 + var data = querystring.stringify(parameters.errorMessage('Erro na chamada ao core'));
  82 +
  83 + var options = {
  84 + host: path.hostname,
  85 + port: path.port,
  86 + path: path.path,
  87 + method: 'POST',
  88 + headers: {
  89 + 'Content-Type': 'application/x-www-form-urlencoded',
  90 + 'Content-Length': Buffer.byteLength(data)
  91 + }
  92 + };
  93 +
  94 + var requesting = http.request(options, function(res) {
  95 + res.setEncoding('utf8');
  96 + });
  97 +
  98 + requesting.write(data);
  99 + requesting.end();
  100 + });
  101 +
  102 + res.send(200);
  103 + }
  104 + });
  105 + } else {
  106 + res.send(500, parameters.errorMessage('Vídeo com Extensão Inválida'));
  107 + }
  108 + } else {
  109 + res.send(500, parameters.errorMessage('Parâmetros insuficientes ou inválidos'));
  110 + }
  111 + } else {
  112 + res.send(500, parameters.errorMessage('O valor de algum parâmetro está vazio'));
  113 + }
  114 +};
  115 +
  116 +module.exports.init = init;
0 \ No newline at end of file 117 \ No newline at end of file
endpoints/video_legenda.js 0 → 100644
@@ -0,0 +1,128 @@ @@ -0,0 +1,128 @@
  1 +var parameters = require('../helpers/parameters');
  2 +var properties = require('../helpers/properties');
  3 +
  4 +var exec = require('child_process').exec, child;
  5 +var querystring = require('querystring');
  6 +var http = require('http');
  7 +var url = require('url');
  8 +var fs = require('fs');
  9 +
  10 +function init(req, res) {
  11 + /* Verifica se os paramêtros [transparencia, texto] possuem algum valor */
  12 + if ((req.body.linguagem !== '') && (req.body.posicao !== '') && (req.body.tamanho !== '') && (req.body.transparencia !== '')) {
  13 + /* Verifica se os paramêtros [linguagem, posicao, tamanho, transparencia] possuem os seus únicos valores possíveis */
  14 + 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)) {
  15 + /* Checa se o arquivo de vídeo submetivo possui uma extensão válida */
  16 + if (parameters.checkVideo(req.files.video.name)) {
  17 + /* Checa se o arquivo de legenda submetivo possui uma extensão válida */
  18 + if (parameters.checkSubtitle(req.files.legenda.name)) {
  19 + /* Cria uma pasta cujo o nome é o ID */
  20 + child = exec('mkdir ' + __dirname + '/uploads/' + properties.ID_FROM_BD);
  21 +
  22 + /* Listener que dispara quando a pasta é criada */
  23 + child.on('close', function(code, signal){
  24 +
  25 + /* Move o vídeo submetido para a pasta com o seu ID correspondente */
  26 + fs.rename(req.files.video.path, __dirname + '/uploads/' + properties.ID_FROM_BD + '/' + req.files.video.name, function(error) {
  27 + if (error) { console.log(error); }
  28 + });
  29 +
  30 + /* Move a legenda submetido para a pasta com o seu ID correspondente */
  31 + fs.rename(req.files.legenda.path, __dirname + '/uploads/' + properties.ID_FROM_BD + '/' + req.files.legenda.name, function(error) {
  32 + if (error) { console.log(error); }
  33 + });
  34 +
  35 + /* Cria a linha de comando */
  36 + var command_line = 'vlibras_user/vlibras-core/./vlibras ' + parameters.getServiceType(req.body.servico) + ' uploads/' + properties.ID_FROM_BD + '/' +
  37 + req.files.video.name + ' uploads/' + properties.ID_FROM_BD + '/' + req.files.legenda.name + ' ' + parameters.getLanguage(req.body.linguagem) +
  38 + ' ' + parameters.getPosition(req.body.posicao) + ' ' + parameters.getSize(req.body.tamanho) + ' ' +
  39 + parameters.getTransparency(req.body.transparencia) + ' ' + properties.ID_FROM_BD;
  40 +
  41 + /* Executa a linha de comando */
  42 + child = exec(command_line, function(err, stdout, stderr) {
  43 + // [stdout] = vlibras-core output
  44 + });
  45 +
  46 + if (req.body.callback === undefined) {
  47 + /* Listener que dispara quando a requisição ao core finaliza */
  48 + child.on('close', function(code, signal){
  49 + res.send(200, { 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + properties.ID_FROM_BD + '.flv' });
  50 + properties.ID_FROM_BD++;
  51 + });
  52 +
  53 + child.on('error', function(code, signal){
  54 + res.send(500, parameters.errorMessage('Erro na chamada ao core'));
  55 + });
  56 + } else {
  57 +
  58 + child.on('close', function(code, signal){
  59 + var path = url.parse(req.body.callback);
  60 +
  61 + var data = querystring.stringify({ 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + properties.ID_FROM_BD + '.flv' });
  62 +
  63 + var options = {
  64 + host: path.hostname,
  65 + port: path.port,
  66 + path: path.path,
  67 + method: 'POST',
  68 + headers: {
  69 + 'Content-Type': 'application/x-www-form-urlencoded',
  70 + 'Content-Length': Buffer.byteLength(data)
  71 + }
  72 + };
  73 +
  74 + var requesting = http.request(options, function(res) {
  75 + res.setEncoding('utf8');
  76 + // res.on('data', function (chunk) {
  77 + // console.log("req.body: " + chunk);
  78 + // });
  79 + });
  80 +
  81 + requesting.write(data);
  82 + requesting.end();
  83 +
  84 + properties.ID_FROM_BD++;
  85 + });
  86 +
  87 + /* Listener que dispara quando a requisição ao core da erro */
  88 + child.on('error', function(code, signal){
  89 +
  90 + var data = querystring.stringify(parameters.errorMessage('Erro na chamada ao core'));
  91 +
  92 + var options = {
  93 + host: path.hostname,
  94 + port: path.port,
  95 + path: path.path,
  96 + method: 'POST',
  97 + headers: {
  98 + 'Content-Type': 'application/x-www-form-urlencoded',
  99 + 'Content-Length': Buffer.byteLength(data)
  100 + }
  101 + };
  102 +
  103 + var requesting = http.request(options, function(res) {
  104 + res.setEncoding('utf8');
  105 + });
  106 +
  107 + requesting.write(data);
  108 + requesting.end();
  109 + });
  110 +
  111 + res.send(200);
  112 + }
  113 + });
  114 + } else {
  115 + res.send(500, parameters.errorMessage('Legenda com Extensão Inválida'));
  116 + }
  117 + } else {
  118 + res.send(500, parameters.errorMessage('Vídeo com Extensão Inválida'));
  119 + }
  120 + } else {
  121 + res.send(500, parameters.errorMessage('Parâmetros insuficientes ou inválidos'));
  122 + }
  123 + } else {
  124 + res.send(500, parameters.errorMessage('O valor de algum parâmetro está vazio'));
  125 + }
  126 +};
  127 +
  128 +module.exports.init = init;
0 \ No newline at end of file 129 \ No newline at end of file
helpers/.gitempty
helpers/properties.js 0 → 100644
@@ -0,0 +1,9 @@ @@ -0,0 +1,9 @@
  1 +var host = '0.0.0.0';
  2 +var port = 5000;
  3 +var ID_FROM_BD = 1;
  4 +var SERVER_IP = '150.165.204.30';
  5 +
  6 +module.exports.host = host;
  7 +module.exports.port = port;
  8 +module.exports.ID_FROM_BD = ID_FROM_BD;
  9 +module.exports.SERVER_IP = SERVER_IP;
0 \ No newline at end of file 10 \ No newline at end of file
1 var parameters = require('./helpers/parameters'); 1 var parameters = require('./helpers/parameters');
2 -var exec = require('child_process').exec, child;  
3 -var path = require('path');  
4 -var http = require('http');  
5 -var url = require('url');  
6 -var fs = require('fs');  
7 -var querystring = require('querystring');  
8 -var express = require('express'); 2 +var properties = require('./helpers/properties');
9 3
10 -var host = '0.0.0.0';  
11 -var port = 5000; 4 +var ep_texto = require('./endpoints/texto');
  5 +var ep_ios = require('./endpoints/ios');
  6 +var ep_video = require('./endpoints/video');
  7 +var ep_legenda = require('./endpoints/legenda');
  8 +var ep_video_legenda = require('./endpoints/video_legenda');
12 9
  10 +var path = require('path');
  11 +var express = require('express');
13 var app = express(); 12 var app = express();
14 13
15 -var ID_FROM_BD = 1;  
16 -var SERVER_IP = '150.165.204.30';  
17 -  
18 app.use(express.static(path.join(__dirname, '/videos'))); 14 app.use(express.static(path.join(__dirname, '/videos')));
19 app.use(express.bodyParser({ keepExtensions: true, uploadDir: path.join(__dirname, '/uploads') })); 15 app.use(express.bodyParser({ keepExtensions: true, uploadDir: path.join(__dirname, '/uploads') }));
20 16
@@ -23,341 +19,33 @@ app.get('/', function(req, res){ @@ -23,341 +19,33 @@ app.get('/', function(req, res){
23 }); 19 });
24 20
25 app.post('/api', function(req, res){ 21 app.post('/api', function(req, res){
26 - console.log(req.body);  
27 /* Verifica se o paramêtro [servico] possui algum valor */ 22 /* Verifica se o paramêtro [servico] possui algum valor */
28 if (req.body.servico !== '') { 23 if (req.body.servico !== '') {
29 /* Verifica qual é o Tipo de Serviço fornecido */ 24 /* Verifica qual é o Tipo de Serviço fornecido */
30 switch(req.body.servico) { 25 switch(req.body.servico) {
31 - /* Case para o Tipo de Serviço: Texto */ 26 + /* Tipo de Serviço: Texto */
32 case 'texto': 27 case 'texto':
33 - /* Verifica se os paramêtros [transparencia, texto] possuem algum valor */  
34 - if ((req.body.transparencia !== '') && (req.body.texto !== '')) {  
35 - /* Verifica se o paramêtro [transparencia] possui os únicos valores possíveis [opaco, transparente] */  
36 - if (parameters.checkTransparency(req.body.transparencia)) {  
37 - /* Cria a linha de comando */  
38 - var command_line = 'echo ' + req.body.texto + ' >> ' + __dirname + '/text_files/' + ID_FROM_BD + ' && cd ../vlibras-core' +  
39 - ' && ./vlibras ' + parameters.getServiceType(req.body.servico) + ' ../vlibras-api/text_files/' +  
40 - ID_FROM_BD + ' ' + parameters.getTransparency(req.body.transparencia) + ' ' + ID_FROM_BD + ' WEB';  
41 -  
42 - /* Executa a linha de comando */  
43 - child = exec(command_line, function(err, stdout, stderr) {  
44 - // [stdout] = vlibras-core output  
45 - // console.log(stdout);  
46 - });  
47 -  
48 - /* Listener que dispara quando a requisição ao core finaliza */  
49 - child.on('close', function(code, signal){  
50 - res.send(200, { 'response' : 'http://' + SERVER_IP + ':' + port + '/' + ID_FROM_BD + '.webm' });  
51 - ID_FROM_BD++;  
52 - });  
53 -  
54 - /* Listener que dispara quando a requisição ao core da erro */  
55 - child.on('error', function(code, signal){  
56 - res.send(500, parameters.errorMessage('Erro na chamada ao core'));  
57 - });  
58 - } else {  
59 - res.send(500, parameters.errorMessage('Parâmetros insuficientes ou inválidos'));  
60 - }  
61 - } else {  
62 - res.send(500, parameters.errorMessage('O valor de algum parâmetro está vazio'));  
63 - } 28 + ep_texto.init(req, res);
64 break; 29 break;
65 30
66 - /* Case para o Tipo de Serviço: iOS */ 31 + /* Tipo de Serviço: iOS */
67 case 'ios': 32 case 'ios':
68 - /* Verifica se os paramêtros [transparencia, texto] possuem algum valor */  
69 - if ((req.body.transparencia !== '') && (req.body.texto !== '')) {  
70 - /* Verifica se o paramêtro [transparencia] possui os únicos valores possíveis [opaco, transparente] */  
71 - if (parameters.checkTransparency(req.body.transparencia)) {  
72 - /* Cria a linha de comando */  
73 - var command_line = 'echo ' + req.body.texto + ' >> ' + __dirname + '/text_files/' + ID_FROM_BD + ' && cd ../vlibras-core' +  
74 - ' && ./vlibras ' + parameters.getServiceType(req.body.servico) + ' ../vlibras-api/text_files/' +  
75 - ID_FROM_BD + ' ' + parameters.getTransparency(req.body.transparencia) + ' ' + ID_FROM_BD + ' IOS';  
76 -  
77 - /* Executa a linha de comando */  
78 - child = exec(command_line, function(err, stdout, stderr) {  
79 - // [stdout] = vlibras-core output  
80 - // console.log(stdout);  
81 - });  
82 -  
83 - /* Listener que dispara quando a requisição ao core finaliza */  
84 - child.on('close', function(code, signal){  
85 - res.send(200, { 'response' : 'http://' + SERVER_IP + ':' + port + '/' + ID_FROM_BD + '.avi' });  
86 - ID_FROM_BD++;  
87 - });  
88 -  
89 - /* Listener que dispara quando a requisição ao core da erro */  
90 - child.on('error', function(code, signal){  
91 - res.send(500, parameters.errorMessage('Erro na chamada ao core'));  
92 - });  
93 - } else {  
94 - res.send(500, parameters.errorMessage('Parâmetros insuficientes ou inválidos'));  
95 - }  
96 - } else {  
97 - res.send(500, parameters.errorMessage('O valor de algum parâmetro está vazio'));  
98 - } 33 + ep_ios.init(req, res);
99 break; 34 break;
100 35
  36 + /* Tipo de Serviço: Só o Vídeo */
101 case 'video': 37 case 'video':
102 - /* Verifica se os paramêtros [posicao, tamanho, transparencia] possuem algum valor */  
103 - if ((req.body.posicao !== '') && (req.body.tamanho !== '') && (req.body.transparencia !== '')) {  
104 - /* Verifica se os paramêtros [linguagem, posicao, tamanho, transparencia] possuem os seus únicos valores possíveis */  
105 - if ((parameters.checkPosition(req.body.posicao) === true) && (parameters.checkSize(req.body.tamanho) === true) && (parameters.checkTransparency(req.body.transparencia) === true)) {  
106 - /* Checa se o arquivo de vídeo submetivo possui uma extensão válida */  
107 - if (parameters.checkVideo(req.files.video.name)) {  
108 - /* Cria uma pasta cujo o nome é o ID */  
109 - child = exec('mkdir ' + __dirname + '/uploads/' + ID_FROM_BD);  
110 -  
111 - /* Listener que dispara quando a pasta é criada */  
112 - child.on('close', function(code, signal){  
113 - /* Move o vídeo submetido para a pasta com o seu ID correspondente */  
114 - fs.rename(req.files.video.path, __dirname + '/uploads/' + ID_FROM_BD + '/' + req.files.video.name, function(error) {  
115 - if (error) { console.log(error); }  
116 - });  
117 -  
118 - /* Cria a linha de comando */  
119 - var command_line = 'vlibras_user/vlibras-core/./vlibras ' + parameters.getServiceType(req.body.servico) + ' uploads/' + ID_FROM_BD + '/' +  
120 - req.files.video.name + ' 1 ' + parameters.getPosition(req.body.posicao) + ' ' + parameters.getSize(req.body.tamanho) + ' ' +  
121 - parameters.getTransparency(req.body.transparencia) + ' ' + ID_FROM_BD;  
122 -  
123 - console.log(command_line);  
124 -  
125 - /* Executa a linha de comando */  
126 - child = exec(command_line, function(err, stdout, stderr) {  
127 - // [stdout] = vlibras-core output  
128 - console.log(err);  
129 - console.log(stdout);  
130 - console.log(stderr);  
131 - });  
132 -  
133 - if (req.body.callback === undefined) {  
134 - /* Listener que dispara quando a requisição ao core finaliza */  
135 - child.on('close', function(code, signal){  
136 - res.send(200, { 'response' : 'http://' + SERVER_IP + ':' + port + '/' + ID_FROM_BD + '.flv' });  
137 - ID_FROM_BD++;  
138 - });  
139 -  
140 - /* Listener que dispara quando a requisição ao core da erro */  
141 - child.on('error', function(code, signal){  
142 - res.send(500, parameters.errorMessage('Erro na chamada ao core'));  
143 - });  
144 - } else {  
145 -  
146 - var path = url.parse(req.body.callback);  
147 -  
148 - var data = querystring.stringify({ 'response' : 'http://' + SERVER_IP + ':' + port + '/' + ID_FROM_BD + '.flv' });  
149 -  
150 - var options = {  
151 - host: path.hostname,  
152 - port: path.port,  
153 - path: path.path,  
154 - method: 'POST',  
155 - headers: {  
156 - 'Content-Type': 'application/x-www-form-urlencoded',  
157 - 'Content-Length': Buffer.byteLength(data)  
158 - }  
159 - };  
160 -  
161 - var requesting = http.request(options, function(res) {  
162 - res.setEncoding('utf8');  
163 - });  
164 -  
165 - requesting.write(data);  
166 - requesting.end();  
167 -  
168 - /* Listener que dispara quando a requisição ao core da erro */  
169 - child.on('error', function(code, signal){  
170 -  
171 - var data = querystring.stringify(parameters.errorMessage('Erro na chamada ao core'));  
172 -  
173 - var options = {  
174 - host: path.hostname,  
175 - port: path.port,  
176 - path: path.path,  
177 - method: 'POST',  
178 - headers: {  
179 - 'Content-Type': 'application/x-www-form-urlencoded',  
180 - 'Content-Length': Buffer.byteLength(data)  
181 - }  
182 - };  
183 -  
184 - var requesting = http.request(options, function(res) {  
185 - res.setEncoding('utf8');  
186 - });  
187 -  
188 - requesting.write(data);  
189 - requesting.end();  
190 - });  
191 -  
192 - res.send(200);  
193 - }  
194 - });  
195 - } else {  
196 - res.send(500, parameters.errorMessage('Vídeo com Extensão Inválida'));  
197 - }  
198 - } else {  
199 - res.send(500, parameters.errorMessage('Parâmetros insuficientes ou inválidos'));  
200 - }  
201 - } else {  
202 - res.send(500, parameters.errorMessage('O valor de algum parâmetro está vazio'));  
203 - } 38 + ep_video.init(req, res);
204 break; 39 break;
205 40
  41 + /* Tipo de Serviço: Só a Legenda */
206 case 'legenda': 42 case 'legenda':
207 - /* Verifica se o paramêtro [transparencia] possue algum valor */  
208 - if (req.body.transparencia !== '') {  
209 - /* Verifica se os paramêtros [transparencia] possuem os seus únicos valores possíveis */  
210 - if ((parameters.checkTransparency(req.body.transparencia) === true)) {  
211 - /* Checa se o arquivo de legenda submetivo possui uma extensão válida */  
212 - if (parameters.checkSubtitle(req.files.legenda.name)) {  
213 - /* Cria uma pasta cujo o nome é o ID */  
214 - child = exec('mkdir ' + __dirname + '/uploads/' + ID_FROM_BD);  
215 -  
216 - /* Listener que dispara quando a pasta é criada */  
217 - child.on('close', function(code, signal){  
218 - /* Move a legenda submetido para a pasta com o seu ID correspondente */  
219 - fs.rename(req.files.legenda.path, __dirname + '/uploads/' + ID_FROM_BD + '/' + req.files.legenda.name, function(error) {  
220 - if (error) { console.log(error); }  
221 - });  
222 -  
223 - /* Cria a linha de comando */  
224 - var command_line = 'vlibras_user/vlibras-core/./vlibras ' + parameters.getServiceType(req.body.servico) + ' uploads/' + ID_FROM_BD + '/' +  
225 - req.files.legenda.name + ' ' + parameters.getTransparency(req.body.transparencia) + ' ' + ID_FROM_BD;  
226 -  
227 - /* Executa a linha de comando */  
228 - child = exec(command_line, function(err, stdout, stderr) {  
229 - // [stdout] = vlibras-core output  
230 - // console.log(stdout);  
231 - });  
232 -  
233 - /* Listener que dispara quando a requisição ao core finaliza */  
234 - child.on('close', function(code, signal){  
235 - res.send(200, { 'response' : 'http://' + SERVER_IP + ':' + port + '/' + ID_FROM_BD + '.flv' });  
236 - ID_FROM_BD++;  
237 - });  
238 -  
239 - /* Listener que dispara quando a requisição ao core da erro */  
240 - child.on('error', function(code, signal){  
241 - res.send(500, parameters.errorMessage('Erro na chamada ao core'));  
242 - });  
243 - });  
244 - } else {  
245 - res.send(500, parameters.errorMessage('Legenda com Extensão Inválida'));  
246 - }  
247 - } else {  
248 - res.send(500, parameters.errorMessage('Parâmetros insuficientes ou inválidos'));  
249 - }  
250 - } else {  
251 - res.send(500, parameters.errorMessage('O valor de algum parâmetro está vazio'));  
252 - } 43 + ep_legenda.init(req, res);
253 break; 44 break;
254 45
  46 + /* Tipo de Serviço: Video + Legenda */
255 case 'video-legenda': 47 case 'video-legenda':
256 - /* Verifica se os paramêtros [transparencia, texto] possuem algum valor */  
257 - if ((req.body.linguagem !== '') && (req.body.posicao !== '') && (req.body.tamanho !== '') && (req.body.transparencia !== '')) {  
258 - /* Verifica se os paramêtros [linguagem, posicao, tamanho, transparencia] possuem os seus únicos valores possíveis */  
259 - 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)) {  
260 - /* Checa se o arquivo de vídeo submetivo possui uma extensão válida */  
261 - if (parameters.checkVideo(req.files.video.name)) {  
262 - /* Checa se o arquivo de legenda submetivo possui uma extensão válida */  
263 - if (parameters.checkSubtitle(req.files.legenda.name)) {  
264 - /* Cria uma pasta cujo o nome é o ID */  
265 - child = exec('mkdir ' + __dirname + '/uploads/' + ID_FROM_BD);  
266 -  
267 - /* Listener que dispara quando a pasta é criada */  
268 - child.on('close', function(code, signal){  
269 -  
270 - /* Move o vídeo submetido para a pasta com o seu ID correspondente */  
271 - fs.rename(req.files.video.path, __dirname + '/uploads/' + ID_FROM_BD + '/' + req.files.video.name, function(error) {  
272 - if (error) { console.log(error); }  
273 - });  
274 -  
275 - /* Move a legenda submetido para a pasta com o seu ID correspondente */  
276 - fs.rename(req.files.legenda.path, __dirname + '/uploads/' + ID_FROM_BD + '/' + req.files.legenda.name, function(error) {  
277 - if (error) { console.log(error); }  
278 - });  
279 -  
280 - /* Cria a linha de comando */  
281 - var command_line = 'vlibras_user/vlibras-core/./vlibras ' + parameters.getServiceType(req.body.servico) + ' uploads/' + ID_FROM_BD + '/' +  
282 - req.files.video.name + ' uploads/' + ID_FROM_BD + '/' + req.files.legenda.name + ' ' + parameters.getLanguage(req.body.linguagem) +  
283 - ' ' + parameters.getPosition(req.body.posicao) + ' ' + parameters.getSize(req.body.tamanho) + ' ' +  
284 - parameters.getTransparency(req.body.transparencia) + ' ' + ID_FROM_BD;  
285 -  
286 - /* Executa a linha de comando */  
287 - child = exec(command_line, function(err, stdout, stderr) {  
288 - // [stdout] = vlibras-core output  
289 - });  
290 -  
291 - if (req.body.callback === undefined) {  
292 - /* Listener que dispara quando a requisição ao core finaliza */  
293 - child.on('close', function(code, signal){  
294 - res.send(200, { 'response' : 'http://' + SERVER_IP + ':' + port + '/' + ID_FROM_BD + '.flv' });  
295 - ID_FROM_BD++;  
296 - });  
297 - } else {  
298 -  
299 - var path = url.parse(req.body.callback);  
300 -  
301 - var data = querystring.stringify({ 'response' : 'http://' + SERVER_IP + ':' + port + '/' + ID_FROM_BD + '.flv' });  
302 -  
303 - var options = {  
304 - host: path.hostname,  
305 - port: path.port,  
306 - path: path.path,  
307 - method: 'POST',  
308 - headers: {  
309 - 'Content-Type': 'application/x-www-form-urlencoded',  
310 - 'Content-Length': Buffer.byteLength(data)  
311 - }  
312 - };  
313 -  
314 - var requesting = http.request(options, function(res) {  
315 - res.setEncoding('utf8');  
316 - res.on('data', function (chunk) {  
317 - console.log("body: " + chunk);  
318 - });  
319 - });  
320 -  
321 - requesting.write(data);  
322 - requesting.end();  
323 - }  
324 -  
325 - /* Listener que dispara quando a requisição ao core da erro */  
326 - child.on('error', function(code, signal){  
327 -  
328 - var data = querystring.stringify(parameters.errorMessage('Erro na chamada ao core'));  
329 -  
330 - var options = {  
331 - host: path.hostname,  
332 - port: path.port,  
333 - path: path.path,  
334 - method: 'POST',  
335 - headers: {  
336 - 'Content-Type': 'application/x-www-form-urlencoded',  
337 - 'Content-Length': Buffer.byteLength(data)  
338 - }  
339 - };  
340 -  
341 - var requesting = http.request(options, function(res) {  
342 - res.setEncoding('utf8');  
343 - });  
344 -  
345 - requesting.write(data);  
346 - requesting.end();  
347 - });  
348 - });  
349 - } else {  
350 - res.send(500, parameters.errorMessage('Legenda com Extensão Inválida'));  
351 - }  
352 - } else {  
353 - res.send(500, parameters.errorMessage('Vídeo com Extensão Inválida'));  
354 - }  
355 - } else {  
356 - res.send(500, parameters.errorMessage('Parâmetros insuficientes ou inválidos'));  
357 - }  
358 - } else {  
359 - res.send(500, parameters.errorMessage('O valor de algum parâmetro está vazio'));  
360 - } 48 + ep_video_legenda.init(req, res);
361 break; 49 break;
362 50
363 /* Case para um Tipo de Serviço inválido */ 51 /* Case para um Tipo de Serviço inválido */
@@ -370,6 +58,6 @@ app.post('/api', function(req, res){ @@ -370,6 +58,6 @@ app.post('/api', function(req, res){
370 } 58 }
371 }); 59 });
372 60
373 -app.listen(port, host, function(){  
374 - console.log('Server running on ' + host + ':' + port); 61 +app.listen(properties.port, properties.host, function(){
  62 + console.log('Server running on ' + properties.host + ':' + properties.port);
375 }); 63 });