CliSite/index.js

74 lines
2.6 KiB
JavaScript
Raw Normal View History

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);
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 + "\"");
(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