const fs = require('fs'); const uuid = require('uuid').v4; const { exec } = require('child_process'); const express = require('express'); const bodyParser = require('body-parser'); const formidable = require('formidable'); const nodemailer = require("nodemailer"); const app = express(); const port = 3000; const transporter = nodemailer.createTransport(JSON.parse(fs.readFileSync(__dirname + '/auth.json', 'utf-8'))); const root = "https://easy-editing.tforgione.fr/"; function responseText(id) { return "Votre video est prête!\n\nVous pouvez télécharger votre video à l'adresse " + root + 'video/' + id; } function responseHtml(id) { return "
Cliquez ici pour télécharger votre video
"; } function sorryText() { return "Nous sommes désolés!\n\nUne erreur s'est produite pendant l'encodage de la vidéo. L'administrateur a été contacté et reviendra vers vous."; } function sorryHtml() { return "Une erreur s'est produite pendant l'encodage de la vidéo. L'administrateur a été contacté et reviendra vers vous.
"; } function failureText(id, email, stdout, stderr) { return ( "Une erreur a eu lieu !\n\nQuelque chose s'est mal passé pendant l'encodage de la video de " + email + " (" + id + + ")\n\n" + "STDOUT\n" + stdout + "\n\nSTDERR\n" + stderr ); } function failureHtml(id, email, stdout, stderr) { return ( "Une erreur a eu lieu !\n\nQuelque chose s'est mal passé pendant l'encodage de la video de " + email + " (" + id + + ")
" + "
" + stdout + "
" + stderr + "
"
);
}
app.use(bodyParser.urlencoded({ extended: false }));
app.use((req, res, next) => {
console.log("Received request");
next();
});
app.get('/', (req, res) => {
res.sendFile(__dirname + '/html/index.html');
});
app.get('/video/:id', (req, res) => {
fs.stat(__dirname + '/data/' + req.params.id + '/final.mp4', (err, stats) => {
if (err) {
res.send("Nope");
} else {
res.download(__dirname + '/data/' + req.params.id + '/final.mp4');
}
});
});
app.post('/easy-edit', async (req, res, next) => {
const form = formidable({ multiples: true });
form.parse(req, async (err, fields, files) => {
if (err) {
console.log(err);
next(err);
return;
}
let id = uuid();
fs.mkdir(__dirname + '/data/' + id, () => {
exec('unzip ' + files.archive.path + ' -d ' + __dirname + '/data/' + id, (err, stdout, stderr) => {
if (err) {
next(err);
return;
}
exec(__dirname + '/test-merge', {cwd: __dirname + '/data/' + id}, (err, stdout, stderr) => {
if (err) {
res.status(400).send(stderr);
} else {
res.send("");
exec(__dirname + '/merge', {cwd: __dirname + '/data/' + id}, (err, stdout, stderr) => {
if (err) {
transporter.sendMail({
from: '"Easy-Editing"