require('dotenv').load(); var fs = require('fs') var app, express = require('express'); var http = require('http'); var https = require('https'); var bodyParser = require('body-parser') var cookieParser = require('cookie-parser') var path = require('path') var ejs = require('ejs') var multer = require('multer') var storage = multer.memoryStorage() var multer_upload = multer({ storage: storage }) var app, server var db = require("./db") var upload = require("./upload") var site = module.exports = {} site.init = function(){ app = express() app.set('view engine', 'ejs') app.set('views', path.join(__dirname, '../views')) app.use(express.static(path.join(__dirname, '../public'))) app.use(bodyParser.json()) app.use(bodyParser.urlencoded({ extended: false })) app.use(express.query()) server = http.createServer(app).listen(process.env.PORT, function () { console.log('LuCkYPLoP listening at http://5.k:%s', server.address().port) }) app.get("/p/:id", function(req, res){ res.sendFile("index.html", {root: './public'}) }) app.get("/get/random", function(req, res){ db.getRandom().then(function(img){ res.json(img) }) }) app.get("/get/latest", function(req, res){ db.getLatest().then(function(img){ res.json(img) }) }) app.get("/get/:id/hotlink", function(req, res){ db.getImage(req.params.id).then(function(img){ res.redirect(img.url) }) }) app.get("/get/:id", function(req, res){ db.getImage(req.params.id).then(function(img){ res.json(img) }) }) app.post("/upload", multer_upload.single('image'), function(req, res){ upload.put("image", req.file, { unacceptable: function(err){ res.json({ error: err }) }, success: function(url){ db.createImage(url).then(function(image){ res.json(image) }) } }) }) }