CliSite/index.js
2022-06-12 09:38:38 +02:00

83 lines
2.9 KiB
JavaScript

"use strict";
exports.__esModule = true;
var http = require('http');
var express = require('express');
var app = express();
var server = http.createServer(app);
var port = process.env.PORT || 8480;
var Server = require("socket.io").Server;
var io = new Server(server);
var commands_1 = require("./commands/commands");
app.get('/', function (req, res) {
res.sendFile(__dirname + '/website/index.html');
});
app.get("/script.js", function (req, res) {
res.sendFile(__dirname + '/website/script.js');
});
app.get("/style.css", function (req, res) {
res.sendFile(__dirname + '/website/style.css');
});
app.get("/jquery.js", function (req, res) {
res.sendFile(__dirname + '/website/jquery.js');
});
var buffer = {};
var filesystem = {};
var curdir = {};
var sessions = {};
var curdirx = {};
function sendbuffer(socket, bufferx) {
var bufx = bufferx[socket.id];
bufx += "\u2588";
socket.emit('buffer', bufx);
}
io.on('connection', function (socket) {
console.log('a user connected');
buffer[socket.id] = "";
filesystem[socket.id] = {};
curdir[socket.id] = filesystem[socket.id];
curdirx[socket.id] = [];
buffer[socket.id] = "Welcome to the console!\n";
buffer[socket.id] += "Type 'help' to see the available commands.\n";
buffer[socket.id] += "#";
sendbuffer(socket, buffer);
socket.on('keypress', function (data) {
console.log('a key was pressed');
var key = String.fromCharCode(data);
key = key.toLowerCase();
console.log(data);
if (data == 8) {
var lines = buffer[socket.id].split("\n");
if (lines[lines.length - 1] != "#") {
lines[lines.length - 1] = lines[lines.length - 1].slice(0, -1);
buffer[socket.id] = lines.join("\n");
}
}
else if (data == 13) {
var lines_1 = buffer[socket.id].split('\n');
var command = lines_1[lines_1.length - 1];
command = command.substring(1);
command = command.substring(command.indexOf('\n'), command.length);
var args = command.split(' ');
var commandName = args[0];
var commandArgs = args.slice(1);
commandArgs = commandArgs.map(function (arg) {
return arg.trim();
});
buffer[socket.id] += "\n";
console.log("Executing command: \"" + commandName + "\" with arguments: \"" + commandArgs + "\"");
(0, commands_1.resolveCommand)(commandName, socket, commandArgs, buffer, sessions, filesystem, curdir, curdirx);
}
else {
buffer[socket.id] += key;
}
sendbuffer(socket, buffer);
});
});
io.on('disconnect', function (socket) {
console.log('user disconnected');
buffer[socket.id] = "";
});
server.listen(port, function () {
console.log('Server listening at port %d', port);
});
//# sourceMappingURL=index.js.map