Skip to content

Instantly share code, notes, and snippets.

@saucecode
Created August 5, 2015 11:31
Show Gist options
  • Save saucecode/e7b24d8a62ec8a95d5dd to your computer and use it in GitHub Desktop.
Save saucecode/e7b24d8a62ec8a95d5dd to your computer and use it in GitHub Desktop.
var vapor = require('vapor');
var request = require('request');
var username = "[REDACTED]";
var password = "[REDACTED]";
var config = {
username: username,
password: password,
displayName: "[REDACTED]",
state: "Online",
admins: [],
logs: {
dateFormat: "YYYY-MM-DD HH:mm:ss",
consoleLevel: "debug",
fileLevel: "debug"
},
dataDir: "./botdata"
};
var bot = vapor();
bot.init(config);
bot.use(vapor.plugins.essentials);
chatPlugin = function(api){
var steam = api.getSteam();
var friends = api.getHandler("steamFriends");
var log = api.getLogger();
api.registerHandler(
{
emitter: "steamFriends",
event: "friendMsg"
},
function(user, message, type){
if(type == steam.EChatEntryType.ChatMsg){
friends.sendMessage(user, "You said " + message);
}
}
);
api.registerHandler(
{
emitter: "steamFriends",
event: "chatInvite"
},
function(chatID, chatName, userID){
friends.joinChat(chatID);
log.info("ChatID %s named %s from %s", chatID, chatName, userID);
}
);
api.registerHandler(
{
emitter: "steamFriends",
event: "chatEnter"
},
function(steamID, enterResponse){
friends.sendMessage(steamID, "Type .commands to have my commands sent to you.");
log.info("SteamID %s response %s", steamID, enterResponse);
log.info("%s", steam.EChatRoomEnterResponse);
}
);
api.registerHandler(
{
emitter: "steamFriends",
event: "chatMsg"
},
function(chatID, message, messageType, steamID){
if(message == ".ping"){
friends.sendMessage(chatID, "Pong, mother fucker.");
}else if(message == ".commands"){
friends.sendMessage(steamID, ".commands .ping .time .boobs\n.rr (random reddit)");
}else if(message == ".time"){
friends.sendMessage(chatID, (new Date()).toISOString());
}else if(message == ".boobs"){
friends.sendMessage(chatID, "One moment please.");
request("http://reddit.com/r/boobs/.json", function(err, res, body){
var obj = JSON.parse(body);
friends.sendMessage(chatID, obj.data.children[Math.floor(Math.random() * obj.data.children.length)].data.url + " NSFW");
});
}else if(message.substring(0, 4) == ".rr "){
try{
var subreddit = message.substring(4);
friends.sendMessage(chatID, "Fetching from /r/" + subreddit);
request("http://reddit.com/r/"+subreddit+"/.json", function(err, res, body){
try{
var obj = JSON.parse(body);
friends.sendMessage(chatID, obj.data.children[Math.floor(Math.random() * obj.data.children.length)].data.url);
}catch(err){
log.info("Error occured when trying to parse random reddit request:");
log.info("%s", err.message);
friends.sendMessage(chatID, "Error.");
}
});
}catch(err){
log.info("Error occured when trying to parse random reddit request:");
log.info("%s", err.message);
friends.sendMessage(chatID, "Error.");
}
}
}
);
api.registerHandler(
{
emitter: "steamFriends",
event: "chatStateChange"
},
function(state, departed, chatID, deporter){
log.info("State change %s", state);
}
);
}
bot.use(
{name: "hello-world", plugin:chatPlugin}
);
bot.connect();
process.on("SIGINT", function(){
bot.disconnect();
setTimeout(process.exit, 1000, 0);
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment