Files
pse.dev/common/discord.js
Kalidou Diagne ed56fecd0c vercel env fix
2024-03-07 02:57:31 +01:00

44 lines
1.3 KiB
JavaScript

const { Client, Routes } = require("discord.js")
const { config } = require("dotenv")
const { REST } = require("@discordjs/rest")
config()
const TOKEN = process.env.DISCORD_TOKEN || process.env.NEXT_PUBLIC_DISCORD_TOKEN
const MESSAGES_LIMIT = 1 // Number of messages to retrieve from the discord channel
const GUILD_ID = process.env.DISCORD_GUILD_ID || process.env.NEXT_PUBLIC_DISCORD_GUILD_ID
const client = new Client({
intents: ["Guilds", "GuildMessages", "MessageContent"],
})
const rest = new REST({ version: "10" }).setToken(TOKEN)
export const getAnnouncementChannelMessages = async () => {
try {
if (!TOKEN) {
return Promise.reject("Discord token is required")
}
if (!GUILD_ID) {
return Promise.reject("Discord guild id is required")
}
console.log("Retrieve announcements from discord channel...")
const MESSAGES_URL = `${Routes.channelMessages(GUILD_ID)}?limit=${MESSAGES_LIMIT}`
// If operating on a guild channel, this endpoint requires the current user to have the VIEW_CHANNEL permission
const messages = await rest.get(MESSAGES_URL)
return messages
} catch(err) {
return Promise.reject(err)
}
}
const runDiscordBot = () => {
client.login(TOKEN)
client.on("ready", async () => {
await getAnnouncementChannelMessages()
})
}
runDiscordBot()