Last active
January 27, 2018 10:52
-
-
Save chtzvt/1133ccdd685515912f476a766f9ee49e to your computer and use it in GitHub Desktop.
Let cleverbot.io manage your Twitter DMs for you
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
var CONFIG = { | |
BOT_NAME: ' ', | |
TWITTER_API_KEYS: { | |
consumer_key: ' ', | |
consumer_secret: ' ', | |
access_token: ' ', | |
access_token_secret: ' ', | |
}, | |
CLEVERBOTIO_API_USER: ' ', | |
CLEVERBOTIO_API_KEY: ' ', | |
CLEVERBOTIO_NICK: 'none', | |
ONLY_USERS: ["*"], // List of users to send shit meme responses to. Default is ANY. | |
getResponseTime: function(){ | |
return Math.floor((Math.random() * 5) + 1) * 60000; | |
} | |
}; | |
var Twit = require('twit'); | |
var cleverbot = require('cleverbot.io'); | |
var T = new Twit(CONFIG.TWITTER_API_KEYS); | |
var stream = T.stream('user', { | |
stringify_friend_ids: true | |
}); | |
var bot = new cleverbot(CONFIG.CLEVERBOTIO_API_USER, CONFIG.CLEVERBOTIO_API_KEY); | |
if(CONFIG.CLEVERBOTIO_NICK !== 'none') | |
bot.setNick(CONFIG.CLEVERBOTIO_NICK); | |
stream.on('direct_message', function(directMsg) { | |
//Never reply to self. | |
if (directMsg.direct_message.sender.screen_name == CONFIG.BOT_NAME) | |
return; | |
if(CONFIG.ONLY_USERS.indexOf('*') || CONFIG.ONLY_USERS.indexOf(directMsg.direct_message.sender.screen_name) && directMsg.direct_message.text.length > 0) | |
setTimeout(function(){ getBotResponse(directMsg.direct_message.sender.screen_name, directMsg.direct_message.text, sendResponse)}, CONFIG.getResponseTime()); | |
}); | |
function getBotResponse(user, text, callback) { | |
bot.ask(text, function (err, response) { | |
if (err) | |
console.info('SHITMEMEBOT_DEBUG: ' + JSON.stringify(err)); | |
callback(user, response); | |
}.bind({user:user, text:text, callback:callback})); | |
} | |
function sendResponse(user, link) { | |
var params = { | |
screen_name: user, | |
text: link | |
}; | |
T.post('direct_messages/new', params, function(err, data, response) { | |
if (err) | |
console.info('SHITMEMEBOT_DEBUG: ' + JSON.stringify(err)); | |
}); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment