Skip to content

Instantly share code, notes, and snippets.

@coleww
Last active October 1, 2015 12:49
Show Gist options
  • Save coleww/9dfd43c63aac6ef1a7fa to your computer and use it in GitHub Desktop.
Save coleww/9dfd43c63aac6ef1a7fa to your computer and use it in GitHub Desktop.
mojibot.js
var Twit = require('twit')
var emojiRegex = require('emoji-regex');
// PUT YO KEYS HERE. OR IN ENV VARS. DO WHAT YOU WANT. I AINT GONNA TELL ANYONE WHAT TO DO.
var T = new Twit({
"consumer_key": "SPIDERS!",
"consumer_secret": "MORESPIDERS!",
"access_token": "HECKA-SPIDERS",
"access_token_secret": "KITTENSPUPPIESNOLOLJKMOARSPIDERS!"
})
var thisHour = {}
var tot = 0
var sanFrancisco = [ '-122.75', '36.8', '-121.75', '37.8' ]
var stream = T.stream('statuses/filter', { locations: sanFrancisco })
var matches = []
var one_hour = 60 * 1000 * 60
var tweeting = false
var lastToot = (new Date().getTime()) - one_hour
console.log(lastToot)
stream.on('tweet', function (tweet) {
var text = tweet.text
var reg = emojiRegex()
while ((myArray = reg.exec(text)) !== null) {
var emoji = myArray[0]
if (!thisHour[emoji]) thisHour[emoji] = 0
thisHour[emoji]++
tot++
process.stdout.write(myArray[0])
}
})
setInterval(function(){
var tweet = Object.keys(thisHour).map(function(em){
var str = ''
var times = ~~(130 * (thisHour[em] / tot))
for(var i = 0; i < times; i++){
str += em
}
console.log(times, em, str)
return str
}).join("")
console.log(tweet)
tot = 0
thisHour = {}
T.post('statuses/update', { status: tweet }, function(err, data, response) {
if(err) console.log(err)
var lastToot = Date.parse(data.created_at)
console.log(lastToot)
console.log(data)
tweeting = false
})
}, one_hour)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment