Skip to content

Instantly share code, notes, and snippets.

@donpdonp
donpdonp / urlblast.js
Last active August 29, 2015 14:02
neuronbot urlblast
function(payload){
if(payload.type == "emessage"){
// match url
var url_match = payload.message.match(/(https?:\/\/\S+)/)
if(url_match){
var url = url_match[1]
var head = "off" // http.headers(url)
try {
// bot.say("#zrobo",""+head['content-type']+" "+url)
var msg = {type:'url', url:url, emessage:payload, head: head}
@donpdonp
donpdonp / worldcup.js
Last active August 29, 2015 14:02
worldcup
function(payload) {
var go = false
var ticktock = false
var key = "worldcup"
if(payload.type == "emessage") {
match = /^worldcup$/.exec(payload.message)
if(match) {
go = true
}
}
@donpdonp
donpdonp / heroku.js
Last active August 29, 2015 14:02
neuron heroku
function(msg) {
var override = false;
if(/^heroku$/.test(msg.message)) {
override = true;
}
if(override || (msg.type == "ticktock" && (new Date(Date.parse(msg.message))).getMinutes() % 10 == 0) ) {
var json = http.get("https://status.heroku.com/api/v3/current-status")
var heroku_new = JSON.parse(json)
var key = 'heroku:status'
@donpdonp
donpdonp / digitalocean.js
Last active August 29, 2015 14:03
neuronbot digialocean
function(payload) {
var override = false;
var timer = false;
override = (payload.type == "emessage" && /^digitalocean$/.test(payload.message))
timer = (payload.type == "ticktock" && (new Date(Date.parse(payload.message))).getMinutes() % 10 == 0)
if(override || timer) {
var do_json = http.get("https://status.digitalocean.com/api/v1/events/unresolved.json")
var docean = JSON.parse(do_json)["events"]
var db_key = 'digitalocean:status'
@donpdonp
donpdonp / 404am.js
Last active August 29, 2015 14:04
neuronbot time not found
function(payload){
if(payload.type == "ticktock"){
var go = false
var time = (new Date(Date.parse(payload.message)))
if(time.getHours() == 4 && time.getMinutes() == 4){
return {target:"#pdxbots",message:"4:04am - time not found"}
}
}
}
@donpdonp
donpdonp / ocw_setup.md
Last active August 29, 2015 14:04
OpenConferenceWare Dev setup

This setup guide will not pollute your system gem library and will use the local copy of the openconferenceware engine.

Clone the forked repo

$ git clone git@github.com:username/openconferenceware.git

Create a sample app to use the engine

tcpflow: listening on lo
127.000.000.001.37666-127.000.000.001.02040: GET /v2 HTTP/1.0
Host: localhost:2040
Connection: close
sec-websocket-version: 8
sec-websocket-key: Q+Rx0Dj1r3RK9i31uvwVMw==
write error to stdout
@donpdonp
donpdonp / gist:c7b0aa02fbbf11737dca
Created July 30, 2014 02:29
parking meter test
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
exports.factory = function() {
var dblib = {}
var db = rethink.connect()
function connectdb() {
db.then(function(conn){
var dbs = rethink.dbList().run(conn)
dbs.then(function(dbs){
if(dbs.indexOf('icecondor') == -1){
console.log("Warning: creating database icecondor")
@donpdonp
donpdonp / flickr.js
Last active August 29, 2015 14:05
neuronbot flickr
function(payload) {
var override = false;
override = (payload.type == "emessage" && /^flickr\s+(\w+)/.exec(payload.message))
if(override) {
var user = override[1]
var key = db.get('flickr:api_key')
var params = {method:"flickr.photos.search",
user_id: user,
per_page: 1,