Updated chat commands to be stored in objects along with actions
- Also re-worked the config a bit, altogether making it a bit easier to add config items. - Added 'developers' list to config to lock developer commands to developers only
This commit is contained in:
parent
5e6c06add9
commit
6bd695e8bb
20
config.json
20
config.json
|
@ -4,11 +4,19 @@
|
||||||
"pollingInterval": 5000,
|
"pollingInterval": 5000,
|
||||||
"numLinksToCache": 10,
|
"numLinksToCache": 10,
|
||||||
"youtubeMode": true,
|
"youtubeMode": true,
|
||||||
"logRequestMessage": "!logsplease",
|
|
||||||
"subscribeRequestMessage": "!subscribe",
|
|
||||||
"unsubscribeRequestMessage": "!unsubscribe",
|
|
||||||
"subscribersListRequestMessage": "!sublist",
|
|
||||||
"helpRequestMessage": "!help",
|
|
||||||
"logFile": "./log",
|
"logFile": "./log",
|
||||||
"subscribersFile": "./subscribers.json"
|
"subscribersFile": "./subscribers.json",
|
||||||
|
"userCommands": {
|
||||||
|
"subscribe": "!subscribe",
|
||||||
|
"unsubscribe": "!unsubscribe",
|
||||||
|
"subscribersList": "!sublist",
|
||||||
|
"help": "!help"
|
||||||
|
},
|
||||||
|
"developerCommands": {
|
||||||
|
"logUpload": "!logsplease",
|
||||||
|
"cacheList": "!cacheList"
|
||||||
|
},
|
||||||
|
"developers":[
|
||||||
|
"117966411548196870"
|
||||||
|
]
|
||||||
}
|
}
|
102
feed-bot.js
102
feed-bot.js
|
@ -61,36 +61,17 @@ var DiscordClient = {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
switch (message) {
|
//iterate over all of our message triggers to see if the message sent requires any action
|
||||||
case Config.subscribeRequestMessage:
|
for (var i = 0; i < DiscordClient.messageTriggers.length; i++) {
|
||||||
Subscriptions.subscribe(channelID, userID, user);
|
var messageTrigger = DiscordClient.messageTriggers[i];
|
||||||
break;
|
if (message === messageTrigger.message) {
|
||||||
case Config.unsubscribeRequestMessage:
|
//check if its locked to a channel or to a specific user
|
||||||
Subscriptions.unsubscribe(channelID, userID, user);
|
if ((messageTrigger.channelID && messageTrigger.channelID === channelID) || (messageTrigger.userIDs && messageTrigger.userIDs.includes(userID)))
|
||||||
break;
|
messageTrigger.action(user, userID, channelID, message);
|
||||||
case Config.subscribersListRequestMessage:
|
}
|
||||||
DiscordClient.bot.sendMessage({
|
|
||||||
to: Config.channelID,
|
|
||||||
message: DiscordClient.bot.fixMessage("<@" + Subscriptions.subscribers.join("> <@") + ">")
|
|
||||||
});
|
|
||||||
break;
|
|
||||||
case Config.helpRequestMessage:
|
|
||||||
DiscordClient.bot.sendMessage({
|
|
||||||
to: Config.channelID,
|
|
||||||
message: Config.subscribeRequestMessage + ", " + Config.unsubscribeRequestMessage + ", " + Config.subscribersListRequestMessage
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (message === Config.logRequestMessage) {
|
|
||||||
DiscordClient.bot.uploadFile({
|
|
||||||
to: channelID,
|
|
||||||
file: Config.logFile
|
|
||||||
}, (err, message) => {
|
|
||||||
if (err) Log.error("Failed to upload log file: " + message, err);
|
|
||||||
else Log.event("Uploaded log file for user " + user + "(" + userID + ")");
|
|
||||||
});
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
checkPastMessagesForLinks: function () {
|
checkPastMessagesForLinks: function () {
|
||||||
var limit = 100;
|
var limit = 100;
|
||||||
|
@ -121,22 +102,65 @@ var DiscordClient = {
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
post: function (link) {
|
post: function (link) {
|
||||||
var tags = "";
|
|
||||||
for (var userID in Subscriptions.subscribers)
|
|
||||||
tags += "<@" + Subscriptions.subscribers[userID] + "> ";
|
|
||||||
|
|
||||||
//send a messsage containing the new feed link to our discord channel
|
//send a messsage containing the new feed link to our discord channel
|
||||||
DiscordClient.bot.sendMessage({
|
DiscordClient.bot.sendMessage({
|
||||||
to: Config.channelID,
|
to: Config.channelID,
|
||||||
message: tags + link
|
message: "<@" + Subscriptions.subscribers.join("> <@") + ">" + link
|
||||||
}, function (err, message) {
|
|
||||||
if (err) {
|
|
||||||
Log.error("ERROR: Failed to send message" + message ? message : "", err);
|
|
||||||
//if there is an error posting the message, check if it is because the bot isn't connected
|
|
||||||
if (!DiscordClient.bot.connected) DiscordClient.onDisconnect();
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
}
|
},
|
||||||
|
//actions to perform when certain messages are detected, along with channel or user requirements
|
||||||
|
messageTriggers: [
|
||||||
|
{
|
||||||
|
message: Config.userCommands.subscribe,
|
||||||
|
action: (user, userID, channelID, message) => { Subscriptions.subscribe(channelID, userID, user); },
|
||||||
|
channelID: Config.channelID
|
||||||
|
},
|
||||||
|
{
|
||||||
|
message: Config.userCommands.unsubscribe,
|
||||||
|
action: (user, userID, channelID, message) => { Subscriptions.unsubscribe(channelID, userID, user); },
|
||||||
|
channelID: Config.channelID
|
||||||
|
},
|
||||||
|
{
|
||||||
|
message: Config.userCommands.subscribersList,
|
||||||
|
action: (user, userID, channelID, message) => {
|
||||||
|
DiscordClient.bot.sendMessage({
|
||||||
|
to: Config.channelID,
|
||||||
|
message: DiscordClient.bot.fixMessage("<@" + Subscriptions.subscribers.join("> <@") + ">")
|
||||||
|
});
|
||||||
|
},
|
||||||
|
channelID: Config.channelID
|
||||||
|
},
|
||||||
|
{
|
||||||
|
message: Config.userCommands.help,
|
||||||
|
action: (user, userID, channelID, message) => {
|
||||||
|
DiscordClient.bot.sendMessage({
|
||||||
|
to: Config.channelID,
|
||||||
|
message: Config.userCommands.join(" + ")
|
||||||
|
});
|
||||||
|
},
|
||||||
|
channelID: Config.channelID
|
||||||
|
},
|
||||||
|
{
|
||||||
|
message: Config.developerCommands.logUpload,
|
||||||
|
action: (user, userID, channelID, message) => {
|
||||||
|
DiscordClient.bot.uploadFile({
|
||||||
|
to: channelID,
|
||||||
|
file: Config.logFile
|
||||||
|
});
|
||||||
|
},
|
||||||
|
userIDs: Config.developers
|
||||||
|
},
|
||||||
|
{
|
||||||
|
message: Config.developerCommands.cacheList,
|
||||||
|
action: (user, userID, channelID, message) => {
|
||||||
|
DiscordClient.bot.sendMessage({
|
||||||
|
to: channelID,
|
||||||
|
message: Links.cached.join(", ")
|
||||||
|
});
|
||||||
|
},
|
||||||
|
userIDs: Config.developers
|
||||||
|
}
|
||||||
|
]
|
||||||
};
|
};
|
||||||
|
|
||||||
var Subscriptions = {
|
var Subscriptions = {
|
||||||
|
|
Loading…
Reference in a new issue