const { SSL_OP_SSLEAY_080_CLIENT_DH_BUG } = require('constants') console.log('#### OMEM-Gallery Server ####') console.log('by ToNetwork UG') require('log-timestamp') console.log('lädt: modules...') const express = require('express') const server = express() const http = require('http').Server(server) const https = require('https') const fs = require('fs') const path = require('path') const cors = require('cors') const session = require('express-session') const basicAuth = require('express-basic-auth') var compression = require('compression') require('dotenv').config() console.log('lädt: consts...') // var privateKey = fs.readFileSync('privkey.pem').toString() // var certificate = fs.readFileSync('cert.pem').toString() // var credentials = { key: privateKey, cert: certificate } let port = process.env.PORT let portS = process.env.SSL_PORT const sliderpath = path.join(__dirname, 'uploaded', 'slider'); const fourpicpath = path.join(__dirname, 'uploaded', '4pic'); console.log('startet server...') server.use(cors({ origin: '*', methods: ['GET', 'POST', 'DELETE', 'UPDATE', 'PUT', 'PATCH', 'OPTIONS', 'HEAD'] })) server.set('trust proxy', 0) server.use(compression()) server.use(express.json()) server.use(session({ secret: 'thwGalleryOMEM1955madebyToN', cookie: { maxAge: 60000 } })) server.get('/', function (req, res) { return res.send('

OMEM-Gallery Server


There is no webservice on this port!') }) var picturelist = [] var pictureliststr = "" var counter = 0 var count = 0 server.get('/getonepic', async function (req, res) { fs.readdir(sliderpath, function (err, files) { if (err) { res.status(500).send("Unable to scan directory: " + err) return console.log('Unable to scan directory: ' + err) } console.log(files.length) let newpictureliststr = "" files.forEach(function (file) { newpictureliststr += file }) console.log(req.session.pictureliststr) console.log(newpictureliststr) if (req.session.pictureliststr != newpictureliststr) { console.log("New files in folder") req.session.picturelist = files req.session.count = files.length req.session.counter = 0 req.session.pictureliststr = newpictureliststr } if (req.session.count == 0) { console.log("Empty directory"); return res.status(500).send("Empty directory") } if (req.session.counter == req.session.count) { console.log("Starting over") req.session.counter = 0 } let currcounter = req.session.counter req.session.counter++ // res.set("Content-Disposition", 'attachment; filename="picture.png"') // res.set("Content-Disposition", 'inline; filename="picture.png"') // res.setHeader('content-type', 'image/jpeg') return res.status(200).sendFile(sliderpath + "/" + req.session.picturelist[currcounter], { headers: { 'Content-Type': 'image/jpeg', 'Refresh': '10;url=/getonepic' } }) }) }) server.get('/getonepic-norefresh', async function (req, res) { fs.readdir(sliderpath, function (err, files) { if (err) { res.status(500).send("Unable to scan directory: " + err) return console.log('Unable to scan directory: ' + err) } console.log(files.length) let newpictureliststr = "" files.forEach(function (file) { newpictureliststr += file }) console.log(req.session.pictureliststr) console.log(newpictureliststr) if (req.session.pictureliststr != newpictureliststr) { console.log("New files in folder") req.session.picturelist = files req.session.count = files.length req.session.counter = 0 req.session.pictureliststr = newpictureliststr } if (req.session.count == 0) { console.log("Empty directory"); return res.status(500).send("Empty directory") } if (req.session.counter == req.session.count) { console.log("Starting over") req.session.counter = 0 } let currcounter = req.session.counter req.session.counter++ // res.set("Content-Disposition", 'attachment; filename="picture.png"') // res.set("Content-Disposition", 'inline; filename="picture.png"') // res.setHeader('content-type', 'image/jpeg') return res.status(200).sendFile(sliderpath + "/" + req.session.picturelist[currcounter], { headers: { 'Content-Type': 'image/jpeg' } }) }) }) // server.get('/getonepic-old', async function (req, res) { // fs.readdir(sliderpath, function (err, files) { // if (err) { // res.status(500).send("Unable to scan directory: " + err) // return console.log('Unable to scan directory: ' + err) // } // console.log(files.length) // let newpictureliststr = "" // files.forEach(function (file) { // newpictureliststr += file // }) // console.log(pictureliststr) // console.log(newpictureliststr) // if (pictureliststr != newpictureliststr) { // console.log("New files in folder") // picturelist = files // count = files.length // counter = 0 // pictureliststr = newpictureliststr // } // if (count == 0) { // console.log("Empty directory"); // return res.status(500).send("Empty directory") // } // if (counter == count) { // console.log("Starting over") // counter = 0 // } // let currcounter = counter // counter++ // // res.set("Content-Disposition", 'attachment; filename="picture.png"') // // res.set("Content-Disposition", 'inline; filename="picture.png"') // // res.setHeader('content-type', 'image/jpeg') // return res.status(200).sendFile(sliderpath + "/" + picturelist[currcounter], { headers: { 'Content-Type': 'image/jpeg' } }) // }) // }) server.get('/get4pic/:id', async function (req, res) { let currid = req.params.id try { currid = parseInt(currid) // if (currid == 1 || currid == 2 || currid == 3 || currid == 4) { // } else { // throw new Error('Parameter is not in range!'); // } } catch (e) { console.log("Unvalid ID") return res.status(400).send("Unvalid ID") } let currpath = "" let trypathjpg = fourpicpath + "/" + currid + ".jpg" let trypathpng = fourpicpath + "/" + currid + ".png" try { if (fs.existsSync(trypathjpg)) { currpath = trypathjpg } else if (fs.existsSync(trypathpng)) { currpath = trypathpng } else { console.log("No file found") return res.status(404).send("No file found") } } catch (err) { console.error(err) console.log("Unvalid path") return res.status(500).send("Unvalid path") } return res.status(200).sendFile(currpath, { headers: { 'Content-Type': 'image/jpeg' } }) }) // server.get('/getonepic-test', async function (req, res) { // fs.readdir(sliderpath, function (err, files) { // if (err) { // res.status(500).send("Unable to scan directory: " + err) // return console.log('Unable to scan directory: ' + err) // } // console.log(files.length) // let newpictureliststr = "" // files.forEach(function (file) { // newpictureliststr += file // }) // console.log(pictureliststr) // console.log(newpictureliststr) // if (pictureliststr != newpictureliststr) { // console.log("New files in folder") // picturelist = files // count = files.length // counter = 0 // pictureliststr = newpictureliststr // } // if (count == 0) { // console.log("Empty directory"); // return res.status(500).send("Empty directory") // } // if (counter == count) { // console.log("Starting over") // counter = 0 // } // let currcounter = counter // counter++ // res.set("Content-Disposition", 'attachment; filename="picture.png"') // return res.status(200).sendFile(sliderpath + "/" + picturelist[currcounter]) // }) // }) server.get('*', async function (req, res) { return res.status(404).send("404 - NOT FOUND - NICHT GEFUNDEN") }) // var hsS = https.createServer(credentials, server) // hsS.listen(portS, function() { // console.log('▶ HTTPS-Server läuft. Port: ' + portS) // }) http.listen(port, function () { console.log('▶ HTTP-Server läuft. Port: ' + port) })