Last active
October 1, 2015 12:49
-
-
Save coleww/9dfd43c63aac6ef1a7fa to your computer and use it in GitHub Desktop.
mojibot.js
This file contains hidden or 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
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