announcements #18

Merged
kenobi merged 13 commits from feat/announce into master 2023-06-15 22:05:20 +02:00
2 changed files with 12 additions and 5 deletions
Showing only changes of commit 198a25d145 - Show all commits

View File

@ -61,15 +61,16 @@ export async function closePoll(guild: Guild, requestId: string) {
}
async function updateMessage(movie: string, message: Message, guildId: string, requestId: string) {
kenobi marked this conversation as resolved
Review

If guild is already used and necessary in line 61, it should already be present and usable, so the non-null-assertion should not be needed.

If `guild` is already used and necessary in line 61, it should already be present and usable, so the non-null-assertion should not be needed.
const role = (await message.guild!.roles.fetch()).find(role => role.id === config.bot.announcement_role)
const body = `[Abstimmung beendet] Gewonnen hat: ${movie}`
.concat(message.cleanContent.substring("[Abstimmung]".length))
.concat(message.content.substring("[Abstimmung]".length))
const options: MessageEditOptions = {
content: body,
allowedMentions: { parse: ["roles"] }
}
logger.info("Updating message.", { guildId, requestId })
message.edit(options)
}
async function updateEvent(votes: Vote[], guild: Guild, guildId: string, requestId: string) {

View File

@ -1,4 +1,4 @@
import { GuildScheduledEvent, Message, TextChannel } from "discord.js";
import { GuildScheduledEvent, Message, MessageCreateOptions, TextChannel } from "discord.js";
import { ScheduledTask, schedule } from "node-cron";
import { v4 as uuid } from "uuid";
import { client, jellyfinHandler } from "../..";
@ -30,14 +30,20 @@ export async function execute(event: GuildScheduledEvent) {
const announcementChannel: TextChannel = client.getAnnouncementChannelForGuild(event.guildId)
logger.debug(`Found channel ${JSON.stringify(announcementChannel, null, 2)}`, { guildId: event.guildId, requestId })
const role = (await event.guild!.roles.fetch()).find(role => role.id === config.bot.announcement_role)
let message = "[Abstimmung]\nEs gibt eine neue Abstimmung für die nächste Watchparty! Stimme hierunter für den nächsten Film ab!\n"
let message = `[Abstimmung]\n<@&${role ? role.id : "hab die Rolle nicht gefunden"}> Es gibt eine neue Abstimmung für die nächste Watchparty! Stimme hierunter für den nächsten Film ab!\n`
for (let i = 0; i < movies.length; i++) {
message = message.concat(Emotes[i]).concat(": ").concat(movies[i].name!).concat("\n")
}
const sentMessage: Message<true> = await (await announcementChannel.fetch()).send(message)
const options: MessageCreateOptions = {
allowedMentions: { parse: ["roles"]},
content: message
}
const sentMessage: Message<true> = await (await announcementChannel.fetch()).send(options)
for (let i = 0; i < movies.length; i++) {
sentMessage.react(Emotes[i])