mirror of
https://github.com/JustusPlays78/DiscordBot.git
synced 2025-04-29 05:35:35 +00:00
86 lines
2.1 KiB
JavaScript
86 lines
2.1 KiB
JavaScript
import * as dotenv from 'dotenv';
|
|
import { Client, GatewayIntentBits } from 'discord.js';
|
|
import {fetchText, getChanges} from './text.js';
|
|
import {createChangelogEmbed} from "./embed builder.js";
|
|
import express from 'express';
|
|
import cors from 'cors';
|
|
|
|
|
|
dotenv.config();
|
|
const token = process.env.CLIENT_AUTH_TOKEN;
|
|
const accesstoken = process.env.GITHUB_ACCESS_TOKEN;
|
|
const allowedOrigin = process.env.REQUEST_ORIGIN;
|
|
|
|
const app = express();
|
|
const client = new Client({
|
|
intents: [
|
|
GatewayIntentBits.Guilds,
|
|
GatewayIntentBits.GuildMessages,
|
|
GatewayIntentBits.MessageContent,
|
|
],
|
|
});
|
|
|
|
app.use(express.json());
|
|
app.use(cors({
|
|
origin: allowedOrigin,
|
|
}))
|
|
|
|
|
|
|
|
client.on('ready', async () => {
|
|
console.log('Ready!');
|
|
try {
|
|
console.log('client ready');
|
|
} catch (error) {
|
|
console.error(error);
|
|
}
|
|
})
|
|
|
|
app.post('/changelog', async (message) => {
|
|
let result = await fetchText("https://tee.intjulscha.de/Julscha/changelog/raw/branch/main/changelog_november.md", accesstoken);
|
|
console.log(result);
|
|
result = await getChanges(result);
|
|
const embed = createChangelogEmbed();
|
|
message.channel.send({ embeds: [embed] });
|
|
});
|
|
|
|
app.post('/add-role', async (req, res) => {
|
|
const { guildId, userId, roleId } = req.body;
|
|
|
|
const guild = await client.guilds.fetch(guildId);
|
|
const members = await guild.members.fetch(userId);
|
|
|
|
try {
|
|
await members.roles.add(roleId);
|
|
res.status(200).send('Role added successfully');
|
|
} catch (error) {
|
|
console.error(error);
|
|
res.status(500).send('error');
|
|
}
|
|
});
|
|
|
|
app.post('/remove-role', async (req, res) => {
|
|
const { guildId, userId, roleId } = req.body;
|
|
const guild = await client.guilds.fetch(guildId);
|
|
const members = await guild.members.fetch(userId);
|
|
|
|
try {
|
|
await members.roles.remove(roleId);
|
|
res.status(200).send('Role removed successfully.');
|
|
} catch (error) {
|
|
console.error(error);
|
|
res.status(500).send('error');
|
|
}
|
|
});
|
|
|
|
const PORT = process.env.APIPORT || 3000;
|
|
app.listen(PORT, () => {
|
|
console.log(`Listening on ${PORT}`);
|
|
})
|
|
|
|
|
|
|
|
|
|
client.login(token);
|
|
|