Refactor some areas for simplicity

This commit is contained in:
Benji 2017-09-14 14:02:38 +01:00
parent 2489909da4
commit 8e03504cd6
2 changed files with 28 additions and 34 deletions

View File

@ -8,7 +8,9 @@ function onReady(client, guildsData) {
return new Promise((resolve, reject) => {
parseLinksInGuilds(client.guilds, guildsData)
.then(() => checkFeedsInGuilds(client.guilds, guildsData))
.then(() => setInterval(() => checkFeedsInGuilds(client.guilds, guildsData), Config.feedCheckIntervalSec * 1000)); //set up an interval to check all the feeds
.then(() => setInterval(() => checkFeedsInGuilds(client.guilds, guildsData), Config.feedCheckIntervalSec * 1000))
.then(resolve)
.catch(reject);
});
}
@ -19,13 +21,12 @@ function onTextMessage(message, guildData) {
});
}
function addFeed(client, guildData, message, maxCacheSize) {
return new Promise((resolve, reject) => {
function addFeed({ guildData, message, client }) {
const feedUrl = [...GetUrls(message.content)][0];
const channel = message.mentions.channels.first();
if (!feedUrl || !channel)
reject("Please provide both a channel and an RSS feed URL. You can optionally @mention a role also.");
return Promise.reject("Please provide both a channel and an RSS feed URL. You can optionally @mention a role also.");
const role = message.mentions.roles.first();
@ -33,11 +34,12 @@ function addFeed(client, guildData, message, maxCacheSize) {
url: feedUrl,
channelName: channel.name,
roleName: role ? role.name : null,
maxCacheSize: maxCacheSize
maxCacheSize: Config.maxCacheSize
});
return new Promise((resolve, reject) => {
//ask the user if they're happy with the details they set up, save if yes, don't if no
Core.util.ask(client, message.channel, message.member, "Are you happy with this?\n" + feedData.toString())
Core.util.ask(client, message.channel, message.member, "Are you happy with this (yes/no)?\n" + feedData.toString())
.then(responseMessage => {
//if they responded yes, save the feed and let them know, else tell them to start again
@ -54,21 +56,13 @@ function addFeed(client, guildData, message, maxCacheSize) {
});
}
function removeFeed(guildData, message, botName) {
return new Promise((resolve, reject) => {
const parameters = message.content.split(" ");
if (parameters.length !== 3)
resolve(`Please use the command as such:\n\`\`\` ${botName} remove-feed feedid\`\`\``);
else {
const idx = guildData.feeds.findIndex(feed => feed.id === parameters[2]);
function removeFeed({ params, guildData, botName }) {
const idx = guildData.feeds.findIndex(feed => feed.id === params[2]);
if (!Number.isInteger(idx))
reject("Can't find feed with id " + parameters[2]);
else {
return Promise.reject("Can't find feed with id " + params[2]);
guildData.feeds.splice(idx, 1);
resolve("Feed removed!");
}
}
});
return Promise.resolve("Feed removed!");
}
function viewFeeds(guildData) {

View File

@ -39,7 +39,7 @@ function handleTextMessage({ client, commands, message, guildDataModel, guildsDa
break;
default:
if (invoke && params.length >= expectedParamCount) {
invoke({ command, params: params, guildData, botName, message, client })
invoke({ params, guildData, botName, message, client })
.then(msg => {
message.reply(msg);
writeFile();