Last active
December 28, 2015 08:49
-
-
Save d48/7474667 to your computer and use it in GitHub Desktop.
loudbot.coffee
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Description: | |
# Display a random tweet from loudbot if someone YELLS in chat | |
# | |
# Dependencies: | |
# "ntwitter" : "https://github.com/sebhildebrandt/ntwitter/tarball/master", | |
# | |
# Configuration: | |
# HUBOT_TWITTER_CONSUMER_KEY | |
# HUBOT_TWITTER_CONSUMER_SECRET | |
# HUBOT_TWITTER_ACCESS_TOKEN_KEY | |
# HUBOT_TWITTER_ACCESS_TOKEN_SECRET | |
# | |
# Commands: | |
# CHAT LIKE THIS - Returns a random tweet from loudbot in caps | |
# | |
# | |
# Author: | |
# d48 | |
ntwitter = require 'ntwitter' | |
inspect = require('util').inspect | |
# return random number in range suuplied | |
getRandom = (number) -> | |
Math.floor(Math.random() * number) + 1 | |
# set range for tweets | |
count = 15 | |
module.exports = (robot) -> | |
auth = | |
consumer_key: process.env.HUBOT_TWITTER_CONSUMER_KEY | |
consumer_secret: process.env.HUBOT_TWITTER_CONSUMER_SECRET | |
access_token_key: process.env.HUBOT_TWITTER_ACCESS_TOKEN_KEY | |
access_token_secret: process.env.HUBOT_TWITTER_ACCESS_TOKEN_SECRET | |
twit = undefined | |
myRobot = process.env.HUBOT_NAME | |
robot.hear /(^[A-Z\W\_]+$)/, (msg) -> | |
unless auth.consumer_key | |
msg.send "Please set the HUBOT_TWITTER_CONSUMER_KEY environment variable." | |
return | |
unless auth.consumer_secret | |
msg.send "Please set the HUBOT_TWITTER_CONSUMER_SECRET environment variable." | |
return | |
unless auth.access_token_key | |
msg.send "Please set the HUBOT_TWITTER_ACCESS_TOKEN_KEY environment variable." | |
return | |
unless auth.access_token_secret | |
msg.send "Please set the HUBOT_TWITTER_ACCESS_TOKEN_SECRET environment variable." | |
return | |
twit ?= new ntwitter auth | |
twit.verifyCredentials (err, data) -> | |
if err | |
msg.send "Encountered a problem verifying twitter credentials :(", inspect err | |
return | |
if not robot.brain.data.statuses? | |
twit.getUserTimeline {'screen_name':'loudbot', 'count': count}, (err, data) -> | |
if err | |
msg.send "Encountered a problem twitter searching :(", inspect err | |
return | |
if data | |
num = getRandom(count) | |
robot.brain.data.statuses = data | |
robot.brain.emit 'save' | |
tweet = data[num].text | |
msg.send tweet.replace(/@[\w]+ /, '') | |
else | |
num = getRandom(count) | |
stats = robot.brain.data.statuses | |
tweet = stats[num].text | |
msg.send tweet.replace(/@[\w]+ /, '') |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment