diff --git a/app.js b/app.js index 47d26e2..a07f155 100644 --- a/app.js +++ b/app.js @@ -1,86 +1,86 @@ -require("dotenv").config(); - - -let express = require("express"); -let passport = require("passport"); -let session = require("express-session"); -let cookieParser = require("cookie-parser"); -let SQLiteStore = require("connect-sqlite3")(session); - -let fs = require("fs"); -let path = require("path"); - -let authRouter = require("./routes/auth"); -let indexRouter = require("./routes/index"); - -let db = require("./db"); - -let app = express(); -app.enable("trust proxy"); - -// view engine setup -app.set("views", path.join(__dirname, "views")); -app.set("view engine", "ejs"); - -app.use(express.json()); -app.use(express.urlencoded({ - extended: false -})); -app.use(cookieParser()); -app.use(express.static(path.join(__dirname, "public"))); - -app.use(express.static(path.join(__dirname, "public"))); -app.use(session({ - secret: process.env.EBSECRET || "pleasechangeme", - resave: false, - saveUninitialized: false, - store: new SQLiteStore({ - db: "sessions.db", - dir: "./var/db" - }) -})); -app.use(passport.authenticate("session")); - -app.use("/", indexRouter); -app.use("/", authRouter); - -app.use("/uploads", express.static("uploads")); - -function prune () { - db.all("SELECT * FROM media", (err, rows) => { - console.log("Uploaded files: " + rows.length); - console.log(rows) - }); - - console.log("Vacuuming database..."); - db.run("VACUUM"); - - db.all("SELECT * FROM media WHERE expire < ?", [Date.now()], (err, rows) => { - console.log("Expired rows: " + rows); - if (err) return console.error(err); - rows.forEach((row) => { - console.log(`Deleting ${row.path}`); - fs.unlink(`uploads/${row.path}`, (err) => { - if (err) { - if(err.errno == -4058) { - console.log("File already deleted"); - db.all("DELETE FROM media WHERE path = ?", [row.path], (err) => { - if (err) return console.error(err); - }); - } else { - console.error(err); - } - } else { - db.all("DELETE FROM media WHERE path = ?", [row.path], (err) => { - if (err) return console.error(err); - }); - } - }); - console.log(`Deleted ${row.path}`); - }); - }); -} - -setInterval(prune, 1000 * 60); //prune every minute - -module.exports = app; +require("dotenv").config(); + + +let express = require("express"); +let passport = require("passport"); +let session = require("express-session"); +let cookieParser = require("cookie-parser"); +let SQLiteStore = require("connect-sqlite3")(session); + +let fs = require("fs"); +let path = require("path"); + +let authRouter = require("./routes/auth"); +let indexRouter = require("./routes/index"); + +let db = require("./db"); + +let app = express(); +app.enable("trust proxy"); + +// view engine setup +app.set("views", path.join(__dirname, "views")); +app.set("view engine", "ejs"); + +app.use(express.json()); +app.use(express.urlencoded({ + extended: false +})); +app.use(cookieParser()); +app.use(express.static(path.join(__dirname, "public"))); + +app.use(express.static(path.join(__dirname, "public"))); +app.use(session({ + secret: process.env.EBSECRET || "pleasechangeme", + resave: false, + saveUninitialized: false, + store: new SQLiteStore({ + db: "sessions.db", + dir: "./var/db" + }) +})); +app.use(passport.authenticate("session")); + +app.use("/", indexRouter); +app.use("/", authRouter); + +app.use("/uploads", express.static("uploads")); + +function prune () { + db.all("SELECT * FROM media", (err, rows) => { + console.log("Uploaded files: " + rows.length); + console.log(rows) + }); + + console.log("Vacuuming database..."); + db.run("VACUUM"); + + db.all("SELECT * FROM media WHERE expire < ?", [Date.now()], (err, rows) => { + console.log("Expired rows: " + rows); + if (err) return console.error(err); + rows.forEach((row) => { + console.log(`Deleting ${row.path}`); + fs.unlink(`uploads/${row.path}`, (err) => { + if (err) { + if(err.errno == -4058) { + console.log("File already deleted"); + db.all("DELETE FROM media WHERE path = ?", [row.path], (err) => { + if (err) return console.error(err); + }); + } else { + console.error(err); + } + } else { + db.all("DELETE FROM media WHERE path = ?", [row.path], (err) => { + if (err) return console.error(err); + }); + } + }); + console.log(`Deleted ${row.path}`); + }); + }); +} + +setInterval(prune, 1000 * 60); //prune every minute + +module.exports = app; diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh index fb5d46c..a97729d 100755 --- a/docker-entrypoint.sh +++ b/docker-entrypoint.sh @@ -1,12 +1,12 @@ -#!/bin/bash - -# Exit build script on first failure. -set -e - -# Exit on unset variable. -set -u - -set -x - -node db.js -npm start +#!/bin/bash + +# Exit build script on first failure. +set -e + +# Exit on unset variable. +set -u + +set -x + +node db.js +npm start diff --git a/middleware.js b/middleware.js index bc60fca..3e389c9 100644 --- a/middleware.js +++ b/middleware.js @@ -100,14 +100,23 @@ function handleUpload(req, res, next) { for (let file in req.files) { let currentdate = Date.now(); - let expireDate = new Date(currentdate + (req.body.expire * 24 * 60 * 60 * 1000)); + let expireDate= ""; + if (req.body.expire) { + expireDate = new Date(currentdate + (req.body.expire * 24 * 60 * 60 * 1000)); + console.log(req.body.expire); + console.log(expireDate); + } else + expireDate = null; db.run("INSERT INTO media (path, expire) VALUES (?, ?)", [req.files[file].filename, expireDate], function (err) { if (err) { console.log(err); return next(err); } - console.log("Uploaded " + req.files[file].filename + " to database"); - console.log("It will expire in " + req.body.expire + " days"); + console.log(`Uploaded ${req.files[file].filename} to database`); + if (expireDate != null || expireDate != undefined || expireDate != "") + console.log(`It will expire in ${req.body.expire} days`); + else + console.log("It will not expire"); }); }