Put role handling in background task scheduled at startup
This commit is contained in:
@ -39,7 +39,11 @@ async function sendAnnouncement(guildId: string, requestId: string): Promise<voi
|
||||
logger.info("Sending announcement")
|
||||
const announcementChannel: TextChannel = client.getAnnouncementChannelForGuild(guildId)
|
||||
|
||||
const body = `Hey! @everyone! Hier ist der Watchparty Bot vom Hartzarett.
|
||||
const currentPinnedAnnouncementMessages = (await announcementChannel.messages.fetchPinned()).filter(message => message.cleanContent.includes("[announcement]"))
|
||||
currentPinnedAnnouncementMessages.forEach(async (message) => await message.unpin())
|
||||
currentPinnedAnnouncementMessages.forEach(message => message.delete())
|
||||
|
||||
const body = `[announcement] Hey! @everyone! Hier ist der Watchparty Bot vom Hartzarett.
|
||||
|
||||
Wir machen in Zukunft regelmäßig Watchparties! Falls du mitmachen möchtest, reagiere einfach auf diesen Post mit 🎫, dann bekommst du automatisch eine Rolle zugewiesen und wirst benachrichtigt sobald es in der Zukunft weitere Watchparties und Filme zum abstimmen gibt.
|
||||
|
||||
@ -51,20 +55,11 @@ Für eine Erklärung wie das alles funktioniert mach einfach /mitgucken für ein
|
||||
}
|
||||
const message: Message<true> = await announcementChannel.send(options)
|
||||
await message.react("🎫")
|
||||
// await message.pin()
|
||||
await message.pin()
|
||||
|
||||
task = schedule("* * * * * *", async () => {
|
||||
const reactions = await message.reactions.resolve("🎫")
|
||||
if (reactions) {
|
||||
manageAnnouncementRoles(message.guild, reactions)
|
||||
} else {
|
||||
logger.error("Did not get reactions! Aborting!", { guildId, requestId })
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
async function manageAnnouncementRoles(guild: Guild, reaction: MessageReaction) {
|
||||
const requestId = uuid()
|
||||
export async function manageAnnouncementRoles(guild: Guild, reaction: MessageReaction, requestId: string) {
|
||||
const guildId = guild.id
|
||||
logger.info("Managing roles", { guildId, requestId })
|
||||
|
||||
|
Reference in New Issue
Block a user