diff --git a/Makefile b/Makefile index 28f9202..3320046 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,11 @@ install: - @npm install - @sudo npm install -g forever + @read -p "Você deseja instalar o módulo Forever? (y/n) " choice; \ + if [ "$$choice" = "y" ]; then \ + sudo npm install -g forever; \ + npm install; \ + else \ + npm install; \ + fi run: @forever start server.js diff --git a/helpers/parameters.js b/helpers/parameters.js index 9a09224..c69cc3b 100644 --- a/helpers/parameters.js +++ b/helpers/parameters.js @@ -1,13 +1,65 @@ -function service_type(parameter) { - switch(parameter) { +function getServiceType(service_type) { + switch(service_type) { + case "video": + return 3; + break; + case "texto": return 4; break; } }; -function transparency(parameter) { - switch(parameter) { +function getLanguage(language) { + switch(language) { + case "portugues": + return 1; + break; + + case "glosa": + return 2; + break; + } +}; + +function getPosition(position) { + switch(position) { + case "superior-esquerdo": + return 1; + break; + + case "superior-direito": + return 2; + break; + + case "inferior-direito": + return 3; + break; + + case "inferior-esquerdo": + return 4; + break; + } +}; + +function getSize(size) { + switch(size) { + case "pequeno": + return 1; + break; + + case "medio": + return 2; + break; + + case "grande": + return 3; + break; + } +}; + +function getTransparency(transparency) { + switch(transparency) { case "opaco": return 0; break; @@ -18,7 +70,63 @@ function transparency(parameter) { } }; -function verifyTransparency(transparency) { +function checkServiceType(service_type) { + var t_types = ["video", "texto"]; + + for (var i = 0; i < t_types.length; i++){ + if (service_type === t_types[i]) { + return true; + } + + if ((i + 1) === t_types.length) { + return false; + } + } +}; + +function checkLanguage(language) { + var t_types = ["portugues", "glosa"]; + + for (var i = 0; i < t_types.length; i++){ + if (language === t_types[i]) { + return true; + } + + if ((i + 1) === t_types.length) { + return false; + } + } +}; + +function checkPosition(position) { + var t_types = ["superior-esquerdo", "superior-direito", "inferior-esquerdo", "inferior-direito"]; + + for (var i = 0; i < t_types.length; i++){ + if (position === t_types[i]) { + return true; + } + + if ((i + 1) === t_types.length) { + return false; + } + } +}; + +function checkSize(size) { + var t_types = ["pequeno", "medio", "grande"]; + + for (var i = 0; i < t_types.length; i++){ + if (size === t_types[i]) { + return true; + } + + if ((i + 1) === t_types.length) { + return false; + } + } +}; + +function checkTransparency(transparency) { var t_types = ["opaco", "transparente"]; for (var i = 0; i < t_types.length; i++){ @@ -32,6 +140,54 @@ function verifyTransparency(transparency) { } }; -module.exports.service_type = service_type; -module.exports.transparency = transparency; -module.exports.verifyTransparency = verifyTransparency; +function errorMessage(message) { + return { "error": message } +}; + +function checkVideo(file) { + var accepted_file_types = ["flv", "ts", "avi", "mp4", "mov", "webm", "wmv", "mkv",]; + return check_type(file, accepted_file_types) +}; + +function checkSubtitle(file) { + var accepted_file_types = ["srt"]; + return check_type(file, accepted_file_types) +}; + +function check_type(file, accepted_file_types) { + + console.log(file); + + var ext = file.substring(file.lastIndexOf('.') + 1).toLowerCase(); + var isValidFile = false; + + for (var i = 0; i < accepted_file_types.length; i++) { + if (ext == accepted_file_types[i]) { + isValidFile = true; + break; + } + } + + if (!isValidFile) { + file.value = null; + } + + return isValidFile; +}; + +module.exports.getServiceType = getServiceType; +module.exports.getLanguage = getLanguage; +module.exports.getPosition = getPosition; +module.exports.getSize = getSize; +module.exports.getTransparency = getTransparency; + +module.exports.checkServiceType = checkServiceType; +module.exports.checkLanguage = checkLanguage; +module.exports.checkPosition = checkPosition; +module.exports.checkSize = checkSize; +module.exports.checkTransparency = checkTransparency; + +module.exports.checkVideo = checkVideo; +module.exports.checkSubtitle = checkSubtitle; + +module.exports.errorMessage = errorMessage; \ No newline at end of file diff --git a/server.js b/server.js index 5b99c87..8ef34d1 100644 --- a/server.js +++ b/server.js @@ -1,5 +1,7 @@ var parameters = require('./helpers/parameters'); var exec = require('child_process').exec, child; +var path = require('path'); +var fs = require('fs'); var express = require("express"); var host = '0.0.0.0'; @@ -7,10 +9,11 @@ var port = 5000; var app = express(); -var ID_FROM_BD = 0; +var ID_FROM_BD = 1; var SERVER_IP = "150.165.204.30"; -app.use(express.static(__dirname + "/videos")); +app.use(express.static(path.join(__dirname, "/videos"))); +app.use(express.bodyParser({ keepExtensions: true, uploadDir: path.join(__dirname, '/uploads') })); app.get("/", function(req, res){ res.send(200, "