Use reaction-based interaction, refactor URL destruction

This commit is contained in:
KaKi87 2022-07-13 19:36:44 +02:00
parent f578a7d31b
commit 8d5535c1c3

36
main.js
View file

@ -30,8 +30,7 @@ eris.on(
);
let
url,
nextRequestTimestamp,
getUrl,
nextRequestTimeout;
fastify.get(
@ -42,9 +41,7 @@ fastify.get(
) => {
if(request.query['apiKey'] !== webApiKey)
return reply.code(401).send();
reply.send(url);
url = '';
nextRequestTimestamp = Date.now() + webRequestInterval;
reply.send(getUrl ? await getUrl() : undefined);
clearTimeout(nextRequestTimeout);
nextRequestTimeout = setTimeout(
async () => {
@ -58,13 +55,14 @@ fastify.get(
eris.on(
'messageCreate',
async ({
guildID,
author: { id: authorID },
channel: { id: channelID },
id: messageID,
content
}) => {
async message => {
const {
guildID,
author: { id: authorID },
channel: { id: channelID },
id: messageID,
content
} = message;
if(
guildID
||
@ -80,15 +78,15 @@ eris.on(
if(content){
try {
new URL(content);
url = content;
await reply(
nextRequestTimestamp && nextRequestTimestamp > Date.now()
? `ETA: ${Math.ceil((nextRequestTimestamp - Date.now()) / 1000)} seconds.`
: 'ETA: as soon as online.'
);
getUrl = () => new Promise(async resolve => {
resolve(content);
getUrl = undefined;
await message.addReaction('✅');
});
await message.addReaction('⏳');
}
catch {
await reply('Invalid URL');
await message.addReaction('❌');
}
}
}