mirror of
https://git.femboyfinancial.jp/james/FemScoreboard.git
synced 2024-11-24 19:32:01 -08:00
Random messages
This commit is contained in:
parent
ba0b93ba4f
commit
81b75d3546
@ -1,3 +1,8 @@
|
|||||||
TOKEN="sadkfl;jasdkl;fj"
|
TOKEN="sadkfl;jasdkl;fj"
|
||||||
REACTIONS="💀,💯,😭"
|
REACTIONS="💀,💯,😭"
|
||||||
GUILD="123456789012345678"
|
GUILD="123456789012345678"
|
||||||
|
|
||||||
|
ENABLE_MOTD=1
|
||||||
|
MOTD_CHANNEL="123456789012345678"
|
||||||
|
MOTD_HREF="https://fembooru.jp/post/list"
|
||||||
|
MOTD_QUERY="#tips"
|
||||||
|
@ -3,7 +3,16 @@
|
|||||||
* Scans the chat for reactions and updates the leaderboard database.
|
* Scans the chat for reactions and updates the leaderboard database.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { Client, Events, GatewayIntentBits, MessageReaction, PartialMessageReaction, Partials, User } from 'discord.js';
|
import {
|
||||||
|
Client,
|
||||||
|
Events,
|
||||||
|
GatewayIntentBits,
|
||||||
|
MessageReaction,
|
||||||
|
PartialMessageReaction,
|
||||||
|
Partials,
|
||||||
|
TextChannel,
|
||||||
|
User
|
||||||
|
} from 'discord.js';
|
||||||
import { db, openDb, reactionEmojis, recordReaction, sync } from './util';
|
import { db, openDb, reactionEmojis, recordReaction, sync } from './util';
|
||||||
|
|
||||||
const client = new Client({
|
const client = new Client({
|
||||||
@ -46,6 +55,31 @@ async function onMessageReactionChanged(reaction: MessageReaction | PartialMessa
|
|||||||
await recordReaction(<MessageReaction> reaction);
|
await recordReaction(<MessageReaction> reaction);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function fetchMotd()
|
||||||
|
{
|
||||||
|
const res = await fetch(process.env.MOTD_HREF);
|
||||||
|
const xml = await res.text();
|
||||||
|
const parser = new DOMParser();
|
||||||
|
const doc = parser.parseFromString(xml, 'text/html');
|
||||||
|
return doc.querySelector(process.env.MOTD_QUERY).textContent;
|
||||||
|
}
|
||||||
|
|
||||||
|
async function scheduleRandomMessage(firstTime = false)
|
||||||
|
{
|
||||||
|
if (!firstTime) {
|
||||||
|
const channel = <TextChannel> await client.channels.fetch(process.env.MOTD_CHANNEL);
|
||||||
|
const randomMessage = await fetchMotd();
|
||||||
|
await channel.send(randomMessage);
|
||||||
|
console.log(`[bot] Sent MOTD: ${randomMessage}`);
|
||||||
|
}
|
||||||
|
// wait between 2-8 hours
|
||||||
|
const timeoutMins = Math.random() * 360 + 120;
|
||||||
|
const scheduledTime = new Date();
|
||||||
|
scheduledTime.setMinutes(scheduledTime.getMinutes() + timeoutMins);
|
||||||
|
console.log(`[bot] Next MOTD: ${scheduledTime}`);
|
||||||
|
setTimeout(scheduleRandomMessage, timeoutMins * 60 * 1000);
|
||||||
|
}
|
||||||
|
|
||||||
client.on(Events.MessageReactionAdd, onMessageReactionChanged);
|
client.on(Events.MessageReactionAdd, onMessageReactionChanged);
|
||||||
client.on(Events.MessageReactionRemove, onMessageReactionChanged);
|
client.on(Events.MessageReactionRemove, onMessageReactionChanged);
|
||||||
|
|
||||||
@ -58,6 +92,9 @@ async function startup() {
|
|||||||
console.log("[bot] Logging in...");
|
console.log("[bot] Logging in...");
|
||||||
await client.login(process.env.TOKEN);
|
await client.login(process.env.TOKEN);
|
||||||
await sync(client.guilds);
|
await sync(client.guilds);
|
||||||
|
if (process.env.ENABLE_MOTD) {
|
||||||
|
await scheduleRandomMessage(true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
startup();
|
startup();
|
||||||
|
Loading…
Reference in New Issue
Block a user