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

26
main.js
View file

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