mirror of
https://github.com/privacy-scaling-explorations/pse.dev.git
synced 2026-01-13 08:08:02 -05:00
44 lines
1.3 KiB
JavaScript
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()
|