summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJules Laplace <jules@okfoc.us>2016-11-14 13:24:59 -0500
committerJules Laplace <jules@okfoc.us>2016-11-14 13:24:59 -0500
commit2a1c5755fc76e5b660d8d608b15a4e9fb9bf7d56 (patch)
treed85c54d502e6d6ca3ddb9da773f60ac868a50cf1
parent4d6690ccc48266e7755829d32bf0440177d8c391 (diff)
logging into plinko
-rw-r--r--index.js2
-rw-r--r--lib/client.js28
-rw-r--r--lib/index.js16
-rw-r--r--lib/panda.js94
-rw-r--r--lib/server.js19
-rw-r--r--package.json11
6 files changed, 129 insertions, 41 deletions
diff --git a/index.js b/index.js
index 0563f80..c29b4b7 100644
--- a/index.js
+++ b/index.js
@@ -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"
}
}