Fix links not being properly cached with camo integration

This commit is contained in:
benji7425 2017-12-07 22:48:49 +00:00
parent fe9781bdfe
commit c93fe0d6ce
2 changed files with 6 additions and 9 deletions

View File

@ -24,13 +24,12 @@ client.on("message", message => {
client.guildDataModel.findOne({ guildID: message.guild.id }) client.guildDataModel.findOne({ guildID: message.guild.id })
.then(guildData => { .then(guildData => {
if (guildData) if (guildData) {
guildData.feeds.forEach(feedData => { guildData.feeds.forEach(feedData =>
if (message.channel.id === feedData.channelID) message.channel.id === feedData.channelID && feedData.cache(...GetUrls(message.content)));
feedData.cachedLinks.push(...GetUrls(message.content)); guildData.save();
}); }
}); });
}); });
client.bootstrap(); client.bootstrap();

View File

@ -41,7 +41,7 @@ module.exports = class FeedData extends Camo.EmbeddedDocument {
.then(messages => { .then(messages => {
/* we want to push the links in oldest first, but discord.js returns messages newest first, so we need to reverse them /* we want to push the links in oldest first, but discord.js returns messages newest first, so we need to reverse them
* discord.js returns a map, and maps don't have .reverse methods, hence needing to spread the elements into an array first */ * discord.js returns a map, and maps don't have .reverse methods, hence needing to spread the elements into an array first */
[...messages.values()].reverse().forEach(m => this.cachedLinks.push(...GetUrls(m.content))); [...messages.values()].reverse().forEach(m => this.cache(...GetUrls(m.content)));
resolve(); resolve();
}) })
.catch(reject); .catch(reject);
@ -72,8 +72,6 @@ module.exports = class FeedData extends Camo.EmbeddedDocument {
const latest = normaliseUrl(articles[0].link); const latest = normaliseUrl(articles[0].link);
if (!this.cachedLinks.includes(latest)) { if (!this.cachedLinks.includes(latest)) {
this.cachedLinks.push(latest);
const channel = guild.channels.get(this.channelID), const channel = guild.channels.get(this.channelID),
role = guild.roles.get(this.roleID); role = guild.roles.get(this.roleID);