✨ Use reaction-based interaction, refactor URL destruction
This commit is contained in:
parent
f578a7d31b
commit
8d5535c1c3
1 changed files with 17 additions and 19 deletions
36
main.js
36
main.js
|
@ -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('❌');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue