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.use('/p', 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('plop listening at http://5.k:%s', server.address().port) }) app.get("/p/:id", function(req, res){ res.sendFile("index.html", {root: './public'}) }) app.get("/p/get/random", function(req, res){ db.getRandom().then(function(img){ res.json(img) }) }) app.get("/p/get/latest", function(req, res){ db.getLatest().then(function(img){ res.json(img) }) }) app.get("/p/get/:id/hotlink", function(req, res){ db.getImage(req.params.id).then(function(img){ res.redirect(img.url) }) }) app.get("/p/get/:id", function(req, res){ db.getImage(req.params.id).then(function(img){ res.json(img) }) }) app.post("/p/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) }) } }) }) /* shaderblaster / asciiblaster apis */ app.post("/cgi-bin/im/shader/upload", multer_upload.single('qqfile'), function(req, res){ upload.put("shader", req.file, { unacceptable: function(err){ res.json({ error: err }) }, success: function(url){ db.createShaderImage({ username: req.body.username, tag: req.body.tag, url, }).then(function(image){ res.json(image) }) } }) }) }