diff options
| author | Jules Laplace <jules@okfoc.us> | 2016-11-14 13:24:59 -0500 |
|---|---|---|
| committer | Jules Laplace <jules@okfoc.us> | 2016-11-14 13:24:59 -0500 |
| commit | 2a1c5755fc76e5b660d8d608b15a4e9fb9bf7d56 (patch) | |
| tree | d85c54d502e6d6ca3ddb9da773f60ac868a50cf1 | |
| parent | 4d6690ccc48266e7755829d32bf0440177d8c391 (diff) | |
logging into plinko
| -rw-r--r-- | index.js | 2 | ||||
| -rw-r--r-- | lib/client.js | 28 | ||||
| -rw-r--r-- | lib/index.js | 16 | ||||
| -rw-r--r-- | lib/panda.js | 94 | ||||
| -rw-r--r-- | lib/server.js | 19 | ||||
| -rw-r--r-- | package.json | 11 |
6 files changed, 129 insertions, 41 deletions
@@ -1,5 +1,3 @@ require('dotenv').config() var app = require('./lib') -app.init() - diff --git a/lib/client.js b/lib/client.js deleted file mode 100644 index 913731d..0000000 --- a/lib/client.js +++ /dev/null @@ -1,28 +0,0 @@ - -var irc = require('node-irc') - -var client = irc.Client( irc.jollo.org, process.env.IRC_NICK, { - userName: process.env.IRC_NAME - realName: process.env.IRC_REALNAME, - port: 5000, - localAddress: null, - debug: false, - showErrors: false, - autoRejoin: false, - autoConnect: true, - channels: ["#sally","#afxchat"], - secure: true, - selfSigned: false, - certExpired: false, - floodProtection: false, - floodProtectionDelay: 1000, - sasl: false, - retryCount: 10, - retryDelay: 2000, - stripColors: false, - channelPrefixes: "&#", - messageSplit: 512, - encoding: '' -}) - -module.exports = client diff --git a/lib/index.js b/lib/index.js index b604082..8770fe1 100644 --- a/lib/index.js +++ b/lib/index.js @@ -1,17 +1,31 @@ require('dotenv').config() -var client = require('./client') +var panda = require('./panda') var server = require('./server') var router = server.init() +// + +var multer = require('multer') +var storage = multer.memoryStorage() +var multer_upload = multer({ storage: storage }) +var upload = require("./upload") + router.post("/service/image", multer_upload.single('image'), function(req, res){ upload.put("image", req.file, { unacceptable: function(err){ res.json({ error: err }) }, success: function(url){ + server.io.send("link", {url: url}) } }) }) + +router.get("/irc/links", function(req, res){ + panda.query("links", function(links){ + res.json(links) + }) +}) diff --git a/lib/panda.js b/lib/panda.js new file mode 100644 index 0000000..906aeb5 --- /dev/null +++ b/lib/panda.js @@ -0,0 +1,94 @@ + +var irc = require('irc') +var async = require('async') + +var TASK_DELAY = 800 + +var panda = {} + +var client = panda.client = new irc.Client( 'irc.jollo.org', process.env.IRC_NICK, { + userName: process.env.IRC_NAME, + realName: process.env.IRC_REALNAME, + port: 9999, + localAddress: null, + debug: false, + showErrors: false, + autoRejoin: false, + autoConnect: true, + channels: ["#sally"], + secure: true, + selfSigned: true, + certExpired: false, + floodProtection: false, + floodProtectionDelay: 1000, + sasl: false, + retryCount: 10, + retryDelay: 2000, + stripColors: false, + channelPrefixes: "&#", + messageSplit: 512, + encoding: '' +}) + +panda.query = function(msg, cb){ + message_queue.push({ + msg: msg, + cb: cb, + }) +} + +process.on('uncaughtException', function (err) { + client.disconnect() +}) + +var current_task +var message_queue = async.queue(function(task, done){ + current_task = task + current_task.response = [] + current_task.timeout = 0 + current_task.done = done + client.say("plinko", task.msg) +}, 1) + +console.log("connecting..") + +client.addListener('registered', function (message) { + console.log("..registered!") +}) +client.addListener('motd', function (motd) { + console.log("..got motd!") +}) +client.addListener('error', function (err) { + console.log("..error!", err) +}) +client.addListener('join', function (channel, nick, message) { + console.log("* " + nick + " joined " + channel) + if (nick == 'panda' && channel == '#sally') { + console.log("logging in..") + panda.query("login b1gb34rc4t", function(msg){ + console.log("..logged in", msg) + panda.ready = true + }) + } +}) +client.addListener('pm', function (nick, text, message) { + if (! current_task) return + if (nick === "plinko") { + clearTimeout(current_task.timeout) + current_task.timeout = setTimeout(task_over, TASK_DELAY) + current_task.response.push(text) + } +}) + +function task_over (){ + done = current_task.done + current_task.cb(current_task.response) + current_task.response = null + current_task.done = null + current_task.cb = null + current_task = null + done() +} + + +module.exports = panda diff --git a/lib/server.js b/lib/server.js index 8adb8d2..887b9aa 100644 --- a/lib/server.js +++ b/lib/server.js @@ -3,14 +3,13 @@ var path = require('path') var app, express = require('express') var http = require('http') var https = require('https') -var upload = require("./lib/upload") var expressLiquid = require('express-liquid') +var session = require('express-session') +var csrf = require('csurf') -var app, server, io +var OK_PRODUCTION = process.env.OK_PRODUCTION == "true" -var multer = require('multer') -var storage = multer.memoryStorage() -var multer_upload = multer({ storage: storage }) +var app, server, io var site = {} site.init = function(){ @@ -20,9 +19,9 @@ site.init = function(){ app.use(require('body-parser').urlencoded({ extended: true })) app.set('trust proxy', 1) app.use(session({ - store: sessionStore, - secret: 'orAngEDju1CeZlOl', - name: 'orange-juice', + // store: sessionStore, + secret: 'b4mb00pl1nk0$yn3rgY', + name: 'panda', resave: false, saveUninitialized: true, cookie: { secure: true } @@ -52,7 +51,9 @@ site.init = function(){ // client.on('disconnect', function(){}) }) - var router = app.Router () + var router = new express.Router + app.use(router) + return router } site.http = function(app){ diff --git a/package.json b/package.json index 7d4663a..53d268c 100644 --- a/package.json +++ b/package.json @@ -14,8 +14,17 @@ "private": true, "license": "SEE LICENSE IN LNT-1.txt", "dependencies": { + "async": "^2.1.2", + "body-parser": "^1.15.2", + "cookie-parser": "^1.4.3", + "csurf": "^1.9.0", "dotenv": "^2.0.0", "express": "^4.14.0", - "node-irc": "0.0.4" + "express-liquid": "^0.2.6", + "express-session": "^1.14.2", + "irc": "^0.5.0", + "knox": "^0.9.2", + "multer": "^1.2.0", + "socket.io": "^1.5.1" } } |
