From cf7a7a5951ebd716ca5dd4458d4b1e68ef210c1b Mon Sep 17 00:00:00 2001 From: Jordan Eldredge Date: Fri, 24 Apr 2020 22:52:55 -0400 Subject: [PATCH] Prepopulate reactions on voting skins --- .../skin-database/discord-bot/utils.js | 23 ++++++++++++++----- 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/experiments/skin-database/discord-bot/utils.js b/experiments/skin-database/discord-bot/utils.js index 0480bd89..8b9ce2c5 100644 --- a/experiments/skin-database/discord-bot/utils.js +++ b/experiments/skin-database/discord-bot/utils.js @@ -3,8 +3,17 @@ const rgbHex = require("rgb-hex"); const Skins = require("../data/skins"); const logger = require("../logger"); -const filter = (reaction) => { - return ["👍", "👎", "👏", "😔"].some((name) => reaction.emoji.name === name); +function isEligableToApprove(user) { + return !user.bot; +} + +const filter = reaction => { + const hasNonBot = reaction.users.some(isEligableToApprove); + + return ( + hasNonBot && + ["👍", "👎", "👏", "😔"].some(name => reaction.emoji.name === name) + ); }; async function postSkin({ md5, title, dest }) { @@ -26,7 +35,7 @@ async function postSkin({ md5, title, dest }) { tweetStatus, internetArchiveUrl, internetArchiveItemName, - readmeText, + readmeText } = skin; title = title ? title(canonicalFilename) : canonicalFilename; @@ -50,7 +59,7 @@ async function postSkin({ md5, title, dest }) { logger.warn("Did not get a safe color", { averageColor, color, - warn: true, + warn: true }); } } catch (e) { @@ -81,10 +90,12 @@ async function postSkin({ md5, title, dest }) { } const msg = await dest.send(embed); + await Promise.all([msg.react("👍"), msg.react("👎")]); - await msg.awaitReactions(filter, { max: 1 }).then(async (collected) => { + // TODO: Timeout at some point + await msg.awaitReactions(filter, { max: 1 }).then(async collected => { const vote = collected.first(); - const user = vote.users.first(); + const user = vote.users.find(isEligableToApprove); switch (vote.emoji.name) { case "👍": case "👏":