2022-06-11 20:49:24 +02:00
|
|
|
"use strict";
|
|
|
|
exports.__esModule = true;
|
2022-06-11 19:57:41 +02:00
|
|
|
var http = require('http');
|
|
|
|
var express = require('express');
|
|
|
|
var app = express();
|
|
|
|
var server = http.createServer(app);
|
|
|
|
var port = process.env.PORT || 8480;
|
2022-06-11 20:49:24 +02:00
|
|
|
var Server = require("socket.io").Server;
|
|
|
|
var io = new Server(server);
|
2022-06-11 22:12:19 +02:00
|
|
|
var commands_1 = require("./commands/commands");
|
2022-06-11 20:49:24 +02:00
|
|
|
app.get('/', function (req, res) {
|
2022-06-11 19:57:41 +02:00
|
|
|
res.sendFile(__dirname + '/index.html');
|
2022-06-11 20:49:24 +02:00
|
|
|
});
|
|
|
|
var buffer = {};
|
|
|
|
var filesystem = {};
|
|
|
|
var curdir = {};
|
|
|
|
var sessions = {};
|
|
|
|
var curdirx = {};
|
2022-06-11 19:57:41 +02:00
|
|
|
function sendbuffer(socket, bufferx) {
|
|
|
|
var bufx = bufferx[socket.id];
|
|
|
|
bufx += "\u2588";
|
|
|
|
socket.emit('buffer', bufx);
|
|
|
|
}
|
2022-06-11 20:49:24 +02:00
|
|
|
io.on('connection', function (socket) {
|
2022-06-11 19:57:41 +02:00
|
|
|
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);
|
2022-06-11 20:49:24 +02:00
|
|
|
socket.on('keypress', function (data) {
|
2022-06-11 19:57:41 +02:00
|
|
|
console.log('a key was pressed');
|
|
|
|
var key = String.fromCharCode(data);
|
|
|
|
key = key.toLowerCase();
|
|
|
|
console.log(data);
|
2022-06-11 20:49:24 +02:00
|
|
|
if (data == 8) {
|
2022-06-11 19:57:41 +02:00
|
|
|
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");
|
|
|
|
}
|
|
|
|
}
|
2022-06-11 20:49:24 +02:00
|
|
|
else if (data == 13) {
|
|
|
|
var lines_1 = buffer[socket.id].split('\n');
|
|
|
|
var command = lines_1[lines_1.length - 1];
|
2022-06-11 19:57:41 +02:00
|
|
|
command = command.substring(1);
|
|
|
|
command = command.substring(command.indexOf('\n'), command.length);
|
2022-06-11 20:49:24 +02:00
|
|
|
var args = command.split(' ');
|
|
|
|
var commandName = args[0];
|
|
|
|
var commandArgs = args.slice(1);
|
|
|
|
commandArgs = commandArgs.map(function (arg) {
|
2022-06-11 19:57:41 +02:00
|
|
|
return arg.trim();
|
|
|
|
});
|
|
|
|
buffer[socket.id] += "\n";
|
|
|
|
console.log("Executing command: \"" + commandName + "\" with arguments: \"" + commandArgs + "\"");
|
2022-06-11 22:12:19 +02:00
|
|
|
(0, commands_1.resolveCommand)(commandName, socket, commandArgs, buffer, sessions, filesystem, curdir, curdirx);
|
2022-06-11 19:57:41 +02:00
|
|
|
}
|
2022-06-11 20:49:24 +02:00
|
|
|
else {
|
2022-06-11 19:57:41 +02:00
|
|
|
buffer[socket.id] += key;
|
|
|
|
}
|
|
|
|
sendbuffer(socket, buffer);
|
|
|
|
});
|
|
|
|
});
|
2022-06-11 20:49:24 +02:00
|
|
|
io.on('disconnect', function (socket) {
|
2022-06-11 19:57:41 +02:00
|
|
|
console.log('user disconnected');
|
|
|
|
buffer[socket.id] = "";
|
|
|
|
});
|
2022-06-11 20:49:24 +02:00
|
|
|
server.listen(port, function () {
|
2022-06-11 19:57:41 +02:00
|
|
|
console.log('Server listening at port %d', port);
|
2022-06-11 20:49:24 +02:00
|
|
|
});
|
|
|
|
//# sourceMappingURL=index.js.map
|