This commit is contained in:
Christopher Cookman 2024-09-03 22:49:42 -06:00
parent 9d216fdf9b
commit eef830d0f8
Signed by: ChrisChrome
GPG key ID: A023A26E42C33A42

View file

@ -10,18 +10,12 @@ const ws_ = [];
const app = express(); const app = express();
app.set('trust proxy', true); app.set('trust proxy', true);
app.set('view engine', 'ejs'); app.put('/api/connect/:jobid', (req, res) => {
app.get('/', (req, res) => {
res.render('index');
});
app.get('/api/connect/:jobid/:url', (req, res) => {
var id = btoa(Crypto.randomBytes(10).toString('base64').slice(0, 10)).replaceAll("=", ""); var id = btoa(Crypto.randomBytes(10).toString('base64').slice(0, 10)).replaceAll("=", "");
ws_[id] = {}; ws_[id] = {};
ws_[id].jobid = req.params.jobid; // Roblox server ID, checked on all requests as a sort of username alongside the ID ws_[id].jobid = req.params.jobid; // Roblox server ID, checked on all requests as a sort of username alongside the ID
ws_[id].message = ""; ws_[id].message = "";
ws_[id].connection = new WebSocket(atob(req.params.url)); ws_[id].connection = new WebSocket(req.body);
ws_[id].connection.on('message', function(data) { ws_[id].connection.on('message', function(data) {
ws_[id].message = data; ws_[id].message = data;
}) })
@ -40,7 +34,7 @@ app.get('/api/connect/:jobid/:url', (req, res) => {
res.send(id); res.send(id);
}); });
app.get("/api/send/:jobid/:id/:data", (req, res) => { app.post("/api/send/:jobid/:id/", (req, res) => {
if (ws_[req.params.id].jobid !== req.params.jobid) { if (ws_[req.params.id].jobid !== req.params.jobid) {
res.status(401).send({ res.status(401).send({
success: false, success: false,
@ -51,13 +45,12 @@ app.get("/api/send/:jobid/:id/:data", (req, res) => {
var id = req.params.id; var id = req.params.id;
var stats = ws_[id]; var stats = ws_[id];
var socket = ws_[id].connection; var socket = ws_[id].connection;
req.params.data = atob(req.params.data); console.log("sent data: " + req.body)
console.log("sent data: " + req.params.data)
if (stats.open == true) { if (stats.open == true) {
socket.send(req.params.data); socket.send(req.body);
} else { } else {
socket.on('open', () => { socket.on('open', () => {
socket.send(req.params.data); socket.send(req.body);
}); });
} }
res.send({ res.send({
@ -79,6 +72,21 @@ app.get("/api/poll/:jobid/:id", (req, res) => {
} }
}) })
app.delete("/api/close/:jobid/:id", (req, res) => {
if (ws_[req.params.id].jobid !== req.params.jobid) {
res.status(401).send({
success: false,
message: "Invalid job ID"
});
return;
}
var id = req.params.id;
ws_[id].connection.terminate();
delete ws_[id];
res.send({
success: true
});
})
app.listen(PORT, () => { app.listen(PORT, () => {
console.log('server started'); console.log('server started');