noscript-discord/server.js
2024-03-02 16:29:42 +13:00

50 lines
1.4 KiB
JavaScript

const express = require("express")
const { Client } = require("discord.js-selfbot-v13");
const { readFileSync } = require("node:fs");
const cfg = require("./config.json");
const client = new Client();
const app = express();
let resStream;
let channel;
app.use(express.static("assets"));
app.get("/send", async (req, res) => {
res.redirect(req.headers.referer);
channel.send(req.query.content);
});
app.get("/channels/:channel", async (req, res) => {
channel = await client.channels.fetch(req.params.channel);
resStream = res;
resStream.writeHead(200, {
"Content-Type": "text/html",
});
resStream.write(readFileSync("pages/index.html"));
(await channel.messages.search()).messages.reverse().each(msg => {
resStream.write(constructMessage(msg));
});
});
function sanitize(text) {
return text.replaceAll("<", "&lt;").replaceAll(">", "&gt;");
}
function constructMessage(msg) {
return `<div>
<span>${sanitize(msg.author.username)}</span>: ${sanitize(msg.content)}
</div>`;
}
client.on("messageCreate", (msg) => {
if(!resStream || !channel || msg.channel.id !== channel.id) return;
resStream.write(constructMessage(msg));
});
app.listen(cfg.port);
client.login(cfg.token);