|
@@ -8,16 +8,19 @@ import { isAuthorisedAsync } from "../util";
|
|
|
|
|
|
const pattern = /^react to\s+"([^"]+)"\s+with\s+\<:[^:]+:([^\>]+)\>$/i;
|
|
|
|
|
|
-async function getRandomEmotes(allowedTypes: ReactionType[]) {
|
|
|
+async function getRandomEmotes(allowedTypes: ReactionType[], limit: number) {
|
|
|
let reactionEmotesRepo = getRepository(ReactionEmote);
|
|
|
|
|
|
- return await reactionEmotesRepo.query(`
|
|
|
+ let a = await reactionEmotesRepo.query(`
|
|
|
select reactionId
|
|
|
from ( select type, reactionId
|
|
|
from reaction_emote
|
|
|
where type in (${allowedTypes.map(s => "?").join(",")})
|
|
|
order by type, random() )
|
|
|
- group by type`, allowedTypes) as string[];
|
|
|
+ group by type
|
|
|
+ limit ${limit}`, allowedTypes) as ReactionEmote[];
|
|
|
+
|
|
|
+ return a;
|
|
|
}
|
|
|
|
|
|
export default {
|
|
@@ -131,7 +134,7 @@ export default {
|
|
|
reactionEmoteTypes.add(user.mentionReactionType);
|
|
|
}
|
|
|
|
|
|
- let randomEmotes = await getRandomEmotes([...reactionEmoteTypes]);
|
|
|
+ let randomEmotes = await getRandomEmotes([...reactionEmoteTypes], 5);
|
|
|
|
|
|
if(randomEmotes.length == 0)
|
|
|
return false;
|
|
@@ -159,18 +162,18 @@ export default {
|
|
|
emoteType = knownUser.mentionReactionType;
|
|
|
}
|
|
|
|
|
|
- let emotes = await getRandomEmotes([ emoteType ]);
|
|
|
+ let emotes = await getRandomEmotes([ emoteType ], 1);
|
|
|
|
|
|
if(emotes.length != 1)
|
|
|
return false;
|
|
|
|
|
|
- let emote = client.emojis.find(e => e.id == emotes[0]);
|
|
|
+ let emote = client.emojis.find(e => e.id == emotes[0].reactionId);
|
|
|
|
|
|
if (!emote) {
|
|
|
console.log(`WARNING: Emote ${emotes[0]} no longer is valid. Deleting invalid emojis from the list...`);
|
|
|
|
|
|
let emotesRepo = getRepository(ReactionEmote);
|
|
|
- emotesRepo.delete({ reactionId: emotes[0] });
|
|
|
+ await emotesRepo.delete({ reactionId: emotes[0].reactionId });
|
|
|
return false;
|
|
|
}
|
|
|
|