summaryrefslogtreecommitdiff
path: root/lib/index.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/index.js')
-rw-r--r--lib/index.js31
1 files changed, 31 insertions, 0 deletions
diff --git a/lib/index.js b/lib/index.js
index ef1aa5c..6bdb722 100644
--- a/lib/index.js
+++ b/lib/index.js
@@ -70,5 +70,36 @@ site.init = function(){
}
})
})
+
+ /* shaderblaster / asciiblaster apis */
+ app.post("/cgi-bin/im/shader/upload", multer_upload.single('qqfile'), function(req, res){
+ var now = Math.floor(Date.now() / 1000)
+ var filename = sanitize(req.body.filename) + '_' + now + '.' + upload.getExtension()
+ var path = '/im/ab/'
+ upload.put("shader", req.file, {
+ filename, path,
+ unacceptable: function(err){
+ res.json({ error: err })
+ },
+ success: function(url){
+ db.createShaderImage({
+ // date, name, dir, newfile, tag, remote_addr
+ date: now,
+ name: sanitize(req.body.username),
+ dir: 'ab',
+ newfile: filename,
+ tag: sanitize(req.body.tag) || 'plop',
+ remote_addr: req.ip || '127.0.0.1',
+ }).then(function(image){
+ res.json(image)
+ })
+ }
+ })
+ })
+
+ /* public urls last */
app.use('/p/', express.static(path.join(__dirname, '../public')))
}
+
+function sanitize (s){ return (s || "").replace(new RegExp("[^-_a-zA-Z0-9]", 'g'), "") }
+