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 constructMessage(msg) {
	return `<div>
		<span>${msg.author.username}</span>: ${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);