do some stuff again

This commit is contained in:
Bruno Rybársky 2022-06-12 12:41:52 +02:00
parent 204d55d514
commit 6d102d8512
23 changed files with 478 additions and 113 deletions

6
.vscode/tasks.json vendored

@ -5,7 +5,11 @@
{ {
"label": "Compile TypeScript", "label": "Compile TypeScript",
"type": "shell", "type": "shell",
"command": "npx tsc", //make sure to run the other task
"dependsOn": [
"Compile TypeScript for web"
],
"command": "npx tsc -p tsconfig.json",
"group": "build", "group": "build",
"presentation": { "presentation": {
"reveal": "always" "reveal": "always"

9
commands/beep.js Normal file

@ -0,0 +1,9 @@
"use strict";
exports.__esModule = true;
exports.beep = void 0;
function beep(socket) {
socket.emit("bell");
return "Beeped\n";
}
exports.beep = beep;
//# sourceMappingURL=beep.js.map

1
commands/beep.js.map Normal file

@ -0,0 +1 @@
{"version":3,"file":"beep.js","sourceRoot":"","sources":["beep.ts"],"names":[],"mappings":";;;AACA,SAAS,IAAI,CAAC,MAAa;IACvB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpB,OAAO,UAAU,CAAA;AACrB,CAAC;AACO,oBAAI"}

6
commands/beep.ts Normal file

@ -0,0 +1,6 @@
import {Socket} from "socket.io";
function beep(socket:Socket):string{
socket.emit("bell");
return "Beeped\n"
}
export {beep};

@ -2,6 +2,7 @@
exports.__esModule = true; exports.__esModule = true;
exports.resolveCommand = void 0; exports.resolveCommand = void 0;
var append_1 = require("./append"); var append_1 = require("./append");
var beep_1 = require("./beep");
var cat_1 = require("./cat"); var cat_1 = require("./cat");
var cd_1 = require("./cd"); var cd_1 = require("./cd");
var clear_1 = require("./clear"); var clear_1 = require("./clear");
@ -24,81 +25,98 @@ var spam_1 = require("./spam");
var touch_1 = require("./touch"); var touch_1 = require("./touch");
var wee_1 = require("./wee"); var wee_1 = require("./wee");
var woo_1 = require("./woo"); var woo_1 = require("./woo");
function sendbuffer(socket, bufferx, forcefulload) {
var bufx = bufferx[socket.id];
bufx += "\u2588";
if (forcefulload) {
socket.emit('buffer', bufx);
}
else {
socket.emit('bufferx', bufx);
}
}
function resolveCommand(commandname, socket, args, buffer, sessions, filesystem, curdir, curdirx) { function resolveCommand(commandname, socket, args, buffer, sessions, filesystem, curdir, curdirx) {
var bufko = "";
switch (commandname) { switch (commandname) {
case "help": case "help":
buffer[socket.id] += (0, help_1.help)(); bufko += (0, help_1.help)();
break; break;
case "man": case "man":
buffer[socket.id] += (0, man_1.man)(args); bufko += (0, man_1.man)(args);
break;
case "beep":
bufko += (0, beep_1.beep)(socket);
break; break;
case "screenshot": case "screenshot":
buffer[socket.id] += (0, screenshot_1.screenshot)(args, curdir, buffer, socket); bufko += (0, screenshot_1.screenshot)(args, curdir, buffer, socket);
break; break;
case "append": case "append":
buffer[socket.id] += (0, append_1.append)(args, curdir[socket.id]); bufko += (0, append_1.append)(args, curdir[socket.id]);
break; break;
case "overwrite": case "overwrite":
buffer[socket.id] += (0, overwrite_1.overwrite)(args, curdir[socket.id]); bufko += (0, overwrite_1.overwrite)(args, curdir[socket.id]);
break; break;
case "rm": case "rm":
buffer[socket.id] += (0, rm_1.rm)(args, curdir, socket); bufko += (0, rm_1.rm)(args, curdir, socket);
break; break;
case "mv": case "mv":
buffer[socket.id] += (0, mv_1.mv)(args, curdir[socket.id]); bufko += (0, mv_1.mv)(args, curdir[socket.id]);
break; break;
case "cp": case "cp":
buffer[socket.id] += (0, cp_1.cp)(args, curdir[socket.id]); bufko += (0, cp_1.cp)(args, curdir[socket.id]);
break; break;
case "mkdir": case "mkdir":
buffer[socket.id] += (0, mkdir_1.mkdir)(args, curdir[socket.id]); bufko += (0, mkdir_1.mkdir)(args, curdir[socket.id]);
break; break;
case "rmdir": case "rmdir":
buffer[socket.id] += (0, rmdir_1.rmdir)(args, curdir, socket); bufko += (0, rmdir_1.rmdir)(args, curdir, socket);
break; break;
case "touch": case "touch":
buffer[socket.id] += (0, touch_1.touch)(args, curdir, socket); bufko += (0, touch_1.touch)(args, curdir, socket);
break; break;
case "cat": case "cat":
buffer[socket.id] += (0, cat_1.cat)(args, curdir[socket.id]); bufko += (0, cat_1.cat)(args, curdir[socket.id]);
break; break;
case "exec": case "exec":
buffer[socket.id] += (0, exec_1.exec)(args, curdir, socket, buffer, sessions, filesystem, curdirx); bufko += (0, exec_1.exec)(args, curdir, socket, buffer, sessions, filesystem, curdirx);
break; break;
case "ls": case "ls":
buffer[socket.id] += (0, ls_1.ls)(curdir[socket.id]); bufko += (0, ls_1.ls)(curdir[socket.id]);
break; break;
case "cd": case "cd":
buffer[socket.id] += (0, cd_1.cd)(args, curdir, socket, filesystem, curdirx); bufko += (0, cd_1.cd)(args, curdir, socket, filesystem, curdirx);
break; break;
case "pwd": case "pwd":
buffer[socket.id] += (0, pwd_1.pwd)(curdirx[socket.id]); bufko += (0, pwd_1.pwd)(curdirx[socket.id]);
break; break;
case "echo": case "echo":
buffer[socket.id] += (0, echo_1.echo)(args); bufko += (0, echo_1.echo)(args);
break; break;
case "clear": case "clear":
buffer[socket.id] += (0, clear_1.clear)(buffer[socket.id]); bufko += (0, clear_1.clear)(buffer[socket.id]);
break; break;
case "savesess": case "savesess":
buffer[socket.id] += (0, savesess_1.savesess)(args, sessions, filesystem, curdir, buffer, socket); bufko += (0, savesess_1.savesess)(args, sessions, filesystem, curdir, buffer, socket);
break; break;
case "loadsess": case "loadsess":
buffer[socket.id] += (0, loadsess_1.loadsess)(args, sessions, filesystem[socket.id], curdir[socket.id], buffer[socket.id]); bufko += (0, loadsess_1.loadsess)(args, sessions, filesystem[socket.id], curdir[socket.id], buffer[socket.id]);
break; break;
case "wee": case "wee":
buffer[socket.id] += (0, wee_1.wee)(); bufko += (0, wee_1.wee)();
break; break;
case "woo": case "woo":
buffer[socket.id] += (0, woo_1.woo)(); bufko += (0, woo_1.woo)();
break;
case "resendbufko":
sendbuffer(socket, buffer, true);
break; break;
case "spam": case "spam":
buffer[socket.id] += (0, spam_1.spam)(args); bufko += (0, spam_1.spam)(args);
break; break;
default: default:
buffer[socket.id] += "Invalid command.\n"; bufko += "Invalid command.\n";
} }
buffer[socket.id] += "#"; return bufko;
} }
exports.resolveCommand = resolveCommand; exports.resolveCommand = resolveCommand;
//# sourceMappingURL=commands.js.map //# sourceMappingURL=commands.js.map

@ -1 +1 @@
{"version":3,"file":"commands.js","sourceRoot":"","sources":["commands.ts"],"names":[],"mappings":"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"} {"version":3,"file":"commands.js","sourceRoot":"","sources":["commands.ts"],"names":[],"mappings":"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"}

@ -1,5 +1,6 @@
import { Socket } from 'socket.io'; import { Socket } from 'socket.io';
import { append } from './append'; import { append } from './append';
import { beep } from './beep';
import { cat } from './cat'; import { cat } from './cat';
import { cd } from './cd'; import { cd } from './cd';
import { clear } from './clear'; import { clear } from './clear';
@ -22,81 +23,100 @@ import { spam } from './spam';
import { touch } from './touch'; import { touch } from './touch';
import { wee } from './wee'; import { wee } from './wee';
import { woo } from './woo'; import { woo } from './woo';
function resolveCommand(commandname:string, socket:Socket, args:string[], buffer:{ [id: string]: string }, sessions:any, filesystem:any, curdir:any, curdirx:any) {
function sendbuffer(socket:Socket, bufferx: { [id: string]: string }, forcefulload:boolean) {
var bufx = bufferx[socket.id];
//add placeholder character(reserved unicode) for blinking cursor in client;
bufx += "\u2588";
if(forcefulload) {
socket.emit('buffer', bufx);
}
else {
socket.emit('bufferx', bufx);
}
}
function resolveCommand(commandname:string, socket:Socket, args:string[], buffer:{ [id: string]: string }, sessions:any, filesystem:any, curdir:any, curdirx:any):string {
var bufko = "";
switch (commandname) { switch (commandname) {
case "help": case "help":
buffer[socket.id] += help(); bufko += help();
break; break;
case "man": case "man":
buffer[socket.id] += man(args); bufko += man(args);
break; //implement more commands break; //implement more commands
case "beep":
bufko += beep(socket);
break;
case "screenshot": case "screenshot":
buffer[socket.id] += screenshot(args, curdir, buffer, socket); bufko += screenshot(args, curdir, buffer, socket);
break; break;
case "append": case "append":
buffer[socket.id] += append(args, curdir[socket.id]); bufko += append(args, curdir[socket.id]);
break; break;
case "overwrite": case "overwrite":
buffer[socket.id] += overwrite(args, curdir[socket.id]); bufko += overwrite(args, curdir[socket.id]);
break; break;
case "rm": case "rm":
buffer[socket.id] += rm(args, curdir, socket); bufko += rm(args, curdir, socket);
break; break;
case "mv": case "mv":
buffer[socket.id] += mv(args, curdir[socket.id]); bufko += mv(args, curdir[socket.id]);
break; break;
case "cp": case "cp":
buffer[socket.id] += cp(args, curdir[socket.id]); bufko += cp(args, curdir[socket.id]);
break; break;
case "mkdir": case "mkdir":
buffer[socket.id] += mkdir(args, curdir[socket.id]); bufko += mkdir(args, curdir[socket.id]);
break; break;
case "rmdir": case "rmdir":
buffer[socket.id] += rmdir(args, curdir, socket); bufko += rmdir(args, curdir, socket);
break; break;
case "touch": case "touch":
buffer[socket.id] += touch(args, curdir, socket); bufko += touch(args, curdir, socket);
break; break;
case "cat": case "cat":
buffer[socket.id] += cat(args, curdir[socket.id]); bufko += cat(args, curdir[socket.id]);
break; break;
case "exec": case "exec":
buffer[socket.id] += exec(args, curdir, socket, buffer, sessions, filesystem, curdirx); bufko += exec(args, curdir, socket, buffer, sessions, filesystem, curdirx);
break; break;
case "ls": case "ls":
buffer[socket.id] += ls(curdir[socket.id]); bufko += ls(curdir[socket.id]);
break; break;
case "cd": case "cd":
buffer[socket.id] += cd(args, curdir, socket, filesystem, curdirx); bufko += cd(args, curdir, socket, filesystem, curdirx);
break; break;
case "pwd": case "pwd":
buffer[socket.id] += pwd(curdirx[socket.id]); bufko += pwd(curdirx[socket.id]);
break; break;
case "echo": case "echo":
buffer[socket.id] += echo(args); bufko += echo(args);
break; break;
case "clear": case "clear":
buffer[socket.id] += clear(buffer[socket.id]); bufko += clear(buffer[socket.id]);
break; break;
case "savesess": case "savesess":
buffer[socket.id] += savesess(args, sessions, filesystem, curdir, buffer, socket); bufko += savesess(args, sessions, filesystem, curdir, buffer, socket);
break; break;
case "loadsess": case "loadsess":
buffer[socket.id] += loadsess(args, sessions, filesystem[socket.id], curdir[socket.id], buffer[socket.id]); bufko += loadsess(args, sessions, filesystem[socket.id], curdir[socket.id], buffer[socket.id]);
break; break;
case "wee": case "wee":
buffer[socket.id] += wee(); bufko += wee();
break; break;
case "woo": case "woo":
buffer[socket.id] += woo(); bufko += woo();
break;
case "resendbufko":
sendbuffer(socket, buffer, true);
break; break;
case "spam": case "spam":
buffer[socket.id] += spam(args); bufko += spam(args);
break; break;
//invalid command //invalid command
default: default:
buffer[socket.id] += "Invalid command.\n"; bufko += "Invalid command.\n";
} }
buffer[socket.id] += "#"; return bufko;
} }
export {resolveCommand}; export {resolveCommand};

@ -22,6 +22,7 @@ function help() {
buf += "overwrite - overwrites the file with data\n"; buf += "overwrite - overwrites the file with data\n";
buf += "append - appends the arguments to a file\n"; buf += "append - appends the arguments to a file\n";
buf += "screenshot - takes a screenshot\n"; buf += "screenshot - takes a screenshot\n";
buf += "beep - makes a beep\n";
buf += "man - display longer help\n"; buf += "man - display longer help\n";
return buf; return buf;
} }

@ -1 +1 @@
{"version":3,"file":"help.js","sourceRoot":"","sources":["help.ts"],"names":[],"mappings":";;;AAAA,SAAS,IAAI;IACT,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,GAAG,IAAI,uBAAuB,CAAC;IAC/B,GAAG,IAAI,0BAA0B,CAAC;IAClC,GAAG,IAAI,8BAA8B,CAAC;IACtC,GAAG,IAAI,iDAAiD,CAAC;IACzD,GAAG,IAAI,sCAAsC,CAAC;IAC9C,GAAG,IAAI,+BAA+B,CAAC;IACvC,GAAG,IAAI,mCAAmC,CAAC;IAC3C,GAAG,IAAI,uCAAuC,CAAC;IAC/C,GAAG,IAAI,8BAA8B,CAAC;IACtC,GAAG,IAAI,uBAAuB,CAAC;IAC/B,GAAG,IAAI,qBAAqB,CAAC;IAC7B,GAAG,IAAI,sBAAsB,CAAC;IAC9B,GAAG,IAAI,+BAA+B,CAAC;IACvC,GAAG,IAAI,sCAAsC,CAAC;IAC9C,GAAG,IAAI,0BAA0B,CAAC;IAClC,GAAG,IAAI,4BAA4B,CAAC;IACpC,GAAG,IAAI,6CAA6C,CAAC;IACrD,GAAG,IAAI,4CAA4C,CAAC;IACpD,GAAG,IAAI,mCAAmC,CAAC;IAC3C,GAAG,IAAI,6BAA6B,CAAC;IACrC,OAAO,GAAG,CAAC;AACf,CAAC;AACO,oBAAI"} {"version":3,"file":"help.js","sourceRoot":"","sources":["help.ts"],"names":[],"mappings":";;;AAAA,SAAS,IAAI;IACT,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,GAAG,IAAI,uBAAuB,CAAC;IAC/B,GAAG,IAAI,0BAA0B,CAAC;IAClC,GAAG,IAAI,8BAA8B,CAAC;IACtC,GAAG,IAAI,iDAAiD,CAAC;IACzD,GAAG,IAAI,sCAAsC,CAAC;IAC9C,GAAG,IAAI,+BAA+B,CAAC;IACvC,GAAG,IAAI,mCAAmC,CAAC;IAC3C,GAAG,IAAI,uCAAuC,CAAC;IAC/C,GAAG,IAAI,8BAA8B,CAAC;IACtC,GAAG,IAAI,uBAAuB,CAAC;IAC/B,GAAG,IAAI,qBAAqB,CAAC;IAC7B,GAAG,IAAI,sBAAsB,CAAC;IAC9B,GAAG,IAAI,+BAA+B,CAAC;IACvC,GAAG,IAAI,sCAAsC,CAAC;IAC9C,GAAG,IAAI,0BAA0B,CAAC;IAClC,GAAG,IAAI,4BAA4B,CAAC;IACpC,GAAG,IAAI,6CAA6C,CAAC;IACrD,GAAG,IAAI,4CAA4C,CAAC;IACpD,GAAG,IAAI,mCAAmC,CAAC;IAC3C,GAAG,IAAI,uBAAuB,CAAC;IAC/B,GAAG,IAAI,6BAA6B,CAAC;IACrC,OAAO,GAAG,CAAC;AACf,CAAC;AACO,oBAAI"}

@ -19,6 +19,7 @@ function help(): string {
buf += "overwrite - overwrites the file with data\n"; buf += "overwrite - overwrites the file with data\n";
buf += "append - appends the arguments to a file\n"; buf += "append - appends the arguments to a file\n";
buf += "screenshot - takes a screenshot\n"; buf += "screenshot - takes a screenshot\n";
buf += "beep - makes a beep\n";
buf += "man - display longer help\n"; buf += "man - display longer help\n";
return buf; return buf;
} }

@ -64,6 +64,9 @@ function man(args) {
case "man": case "man":
buf += "\'screenshot (command)\' This manual databank\n"; buf += "\'screenshot (command)\' This manual databank\n";
break; break;
case "beep":
buf += "\'beep\' This command makes a beep\n";
break;
default: default:
buf += "No such command\n"; buf += "No such command\n";
} }

@ -1 +1 @@
{"version":3,"file":"man.js","sourceRoot":"","sources":["man.ts"],"names":[],"mappings":";;;AAAA,SAAS,GAAG,CAAC,IAAmB;IAC5B,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAG,IAAI,CAAC,MAAM,IAAI,CAAC,EAAC;QAChB,GAAG,IAAI,mBAAmB,CAAA;KAC7B;IACD,QAAQ,IAAI,CAAC,CAAC,CAAC,EAAC;QACZ,KAAK,MAAM;YACP,GAAG,IAAI,kDAAkD,CAAC;YAC1D,MAAM;QACV,KAAK,OAAO;YACR,GAAG,IAAI,gCAAgC,CAAC;YACxC,MAAM;QACV,KAAK,IAAI;YACL,GAAG,IAAI,uFAAuF,CAAC;YAC/F,MAAM;QACV,KAAK,IAAI;YACL,GAAG,IAAI,qDAAqD,CAAC;YAC7D,MAAM;QACV,KAAK,MAAM;YACP,GAAG,IAAI,oEAAoE,CAAC;YAC5E,MAAM;QACV,KAAK,OAAO;YACR,GAAG,IAAI,wEAAwE,CAAC;YAChF,MAAM;QACV,KAAK,KAAK;YACN,GAAG,IAAI,uEAAuE,CAAC;YAC/E,MAAM;QACV,KAAK,OAAO;YACR,GAAG,IAAI,oEAAoE,CAAC;YAC5E,MAAM;QACV,KAAK,IAAI;YACL,GAAG,IAAI,+DAA+D,CAAC;YACvE,MAAM;QACV,KAAK,IAAI;YACL,GAAG,IAAI,mFAAmF,CAAC;YAC3F,MAAM;QACV,KAAK,IAAI;YACL,GAAG,IAAI,oFAAoF,CAAC;YAC5F,MAAM;QACV,KAAK,OAAO;YACR,GAAG,IAAI,sEAAsE,CAAC;YAC9E,MAAM;QACV,KAAK,KAAK;YACN,GAAG,IAAI,2DAA2D,CAAC;YACnE,MAAM;QACV,KAAK,MAAM;YACP,GAAG,IAAI,sGAAsG,CAAC;YAC9G,MAAM;QACV,KAAK,MAAM;YACP,GAAG,IAAI,2FAA2F,CAAC;YACnG,MAAM;QACV,KAAK,WAAW;YACZ,GAAG,IAAI,wFAAwF,CAAC;YAChG,MAAM;QACV,KAAK,QAAQ;YACT,GAAG,IAAI,+EAA+E,CAAC;YACvF,MAAM;QACV,KAAK,YAAY;YACb,GAAG,IAAI,sFAAsF,CAAC;YAC9F,MAAM;QACV,KAAK,KAAK;YACN,GAAG,IAAI,iDAAiD,CAAA;YACxD,MAAK;QACT;YACI,GAAG,IAAI,mBAAmB,CAAA;KACjC;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AACO,kBAAG"} {"version":3,"file":"man.js","sourceRoot":"","sources":["man.ts"],"names":[],"mappings":";;;AAAA,SAAS,GAAG,CAAC,IAAmB;IAC5B,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAG,IAAI,CAAC,MAAM,IAAI,CAAC,EAAC;QAChB,GAAG,IAAI,mBAAmB,CAAA;KAC7B;IACD,QAAQ,IAAI,CAAC,CAAC,CAAC,EAAC;QACZ,KAAK,MAAM;YACP,GAAG,IAAI,kDAAkD,CAAC;YAC1D,MAAM;QACV,KAAK,OAAO;YACR,GAAG,IAAI,gCAAgC,CAAC;YACxC,MAAM;QACV,KAAK,IAAI;YACL,GAAG,IAAI,uFAAuF,CAAC;YAC/F,MAAM;QACV,KAAK,IAAI;YACL,GAAG,IAAI,qDAAqD,CAAC;YAC7D,MAAM;QACV,KAAK,MAAM;YACP,GAAG,IAAI,oEAAoE,CAAC;YAC5E,MAAM;QACV,KAAK,OAAO;YACR,GAAG,IAAI,wEAAwE,CAAC;YAChF,MAAM;QACV,KAAK,KAAK;YACN,GAAG,IAAI,uEAAuE,CAAC;YAC/E,MAAM;QACV,KAAK,OAAO;YACR,GAAG,IAAI,oEAAoE,CAAC;YAC5E,MAAM;QACV,KAAK,IAAI;YACL,GAAG,IAAI,+DAA+D,CAAC;YACvE,MAAM;QACV,KAAK,IAAI;YACL,GAAG,IAAI,mFAAmF,CAAC;YAC3F,MAAM;QACV,KAAK,IAAI;YACL,GAAG,IAAI,oFAAoF,CAAC;YAC5F,MAAM;QACV,KAAK,OAAO;YACR,GAAG,IAAI,sEAAsE,CAAC;YAC9E,MAAM;QACV,KAAK,KAAK;YACN,GAAG,IAAI,2DAA2D,CAAC;YACnE,MAAM;QACV,KAAK,MAAM;YACP,GAAG,IAAI,sGAAsG,CAAC;YAC9G,MAAM;QACV,KAAK,MAAM;YACP,GAAG,IAAI,2FAA2F,CAAC;YACnG,MAAM;QACV,KAAK,WAAW;YACZ,GAAG,IAAI,wFAAwF,CAAC;YAChG,MAAM;QACV,KAAK,QAAQ;YACT,GAAG,IAAI,+EAA+E,CAAC;YACvF,MAAM;QACV,KAAK,YAAY;YACb,GAAG,IAAI,sFAAsF,CAAC;YAC9F,MAAM;QACV,KAAK,KAAK;YACN,GAAG,IAAI,iDAAiD,CAAC;YACzD,MAAM;QACV,KAAK,MAAM;YACP,GAAG,IAAI,sCAAsC,CAAC;YAC9C,MAAM;QAEV;YACI,GAAG,IAAI,mBAAmB,CAAA;KACjC;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AACO,kBAAG"}

@ -59,8 +59,12 @@ function man(args: Array<string>):string{
buf += "\'screenshot (filename)\' Takes a screenshot of the console and saves it to a file\n"; buf += "\'screenshot (filename)\' Takes a screenshot of the console and saves it to a file\n";
break; break;
case "man": case "man":
buf += "\'screenshot (command)\' This manual databank\n" buf += "\'screenshot (command)\' This manual databank\n";
break break;
case "beep":
buf += "\'beep\' This command makes a beep\n";
break;
default: default:
buf += "No such command\n" buf += "No such command\n"
} }

@ -17,19 +17,21 @@ app.get("/script.js", function (req, res) {
app.get("/style.css", function (req, res) { app.get("/style.css", function (req, res) {
res.sendFile(__dirname + '/website/style.css'); res.sendFile(__dirname + '/website/style.css');
}); });
app.get("/jquery.js", function (req, res) {
res.sendFile(__dirname + '/website/jquery.js');
});
var buffer = {}; var buffer = {};
var filesystem = {}; var filesystem = {};
var curdir = {}; var curdir = {};
var sessions = {}; var sessions = {};
var curdirx = {}; var curdirx = {};
function sendbuffer(socket, bufferx) { function sendbuffer(socket, bufferx, forcefulload) {
var bufx = bufferx[socket.id]; var bufx = bufferx[socket.id];
bufx += "\u2588"; bufx += "\u2588";
if (forcefulload) {
socket.emit('buffer', bufx); socket.emit('buffer', bufx);
} }
else {
socket.emit('bufferx', bufx);
}
}
io.on('connection', function (socket) { io.on('connection', function (socket) {
console.log('a user connected'); console.log('a user connected');
buffer[socket.id] = ""; buffer[socket.id] = "";
@ -39,7 +41,7 @@ io.on('connection', function (socket) {
buffer[socket.id] = "Welcome to the console!\n"; buffer[socket.id] = "Welcome to the console!\n";
buffer[socket.id] += "Type 'help' to see the available commands.\n"; buffer[socket.id] += "Type 'help' to see the available commands.\n";
buffer[socket.id] += "#"; buffer[socket.id] += "#";
sendbuffer(socket, buffer); sendbuffer(socket, buffer, true);
socket.on('keypress', function (data) { socket.on('keypress', function (data) {
console.log('a key was pressed'); console.log('a key was pressed');
var key = String.fromCharCode(data); var key = String.fromCharCode(data);
@ -49,6 +51,7 @@ io.on('connection', function (socket) {
var lines = buffer[socket.id].split("\n"); var lines = buffer[socket.id].split("\n");
if (lines[lines.length - 1] != "#") { if (lines[lines.length - 1] != "#") {
lines[lines.length - 1] = lines[lines.length - 1].slice(0, -1); lines[lines.length - 1] = lines[lines.length - 1].slice(0, -1);
socket.emit("lastline", lines[lines.length - 1]);
buffer[socket.id] = lines.join("\n"); buffer[socket.id] = lines.join("\n");
} }
} }
@ -65,12 +68,16 @@ io.on('connection', function (socket) {
}); });
buffer[socket.id] += "\n"; buffer[socket.id] += "\n";
console.log("Executing command: \"" + commandName + "\" with arguments: \"" + commandArgs + "\""); console.log("Executing command: \"" + commandName + "\" with arguments: \"" + commandArgs + "\"");
(0, commands_1.resolveCommand)(commandName, socket, commandArgs, buffer, sessions, filesystem, curdir, curdirx); var bufko = "\n" + (0, commands_1.resolveCommand)(commandName, socket, commandArgs, buffer, sessions, filesystem, curdir, curdirx);
console.log("This command \"" + commandName + "\" with args:\"" + commandArgs + "\" returned \"" + bufko + "\"");
bufko += "#";
socket.emit("bufferx", bufko + '\u2588');
buffer[socket.id] += bufko;
} }
else { else {
buffer[socket.id] += key; buffer[socket.id] += key;
socket.emit("bufferx", key + "\u2588");
} }
sendbuffer(socket, buffer);
}); });
}); });
io.on('disconnect', function (socket) { io.on('disconnect', function (socket) {

@ -1 +1 @@
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"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"} {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"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"}

@ -23,10 +23,6 @@ app.get("/style.css", (req:Request, res:Response) => {
res.sendFile(__dirname + '/website/style.css'); res.sendFile(__dirname + '/website/style.css');
} }
); );
app.get("/jquery.js", (req:Request, res:Response) => {
res.sendFile(__dirname + '/website/jquery.js');
}
);
//initialize buffer //initialize buffer
//var buffer = []; //var buffer = [];
//add type for typescript //add type for typescript
@ -40,12 +36,17 @@ var sessions: any = {};
//var curdirx = []; //var curdirx = [];
var curdirx: any = {}; var curdirx: any = {};
//on connection //on connection
function sendbuffer(socket:Socket, bufferx: { [id: string]: string }) { function sendbuffer(socket:Socket, bufferx: { [id: string]: string }, forcefulload:boolean) {
var bufx = bufferx[socket.id]; var bufx = bufferx[socket.id];
//add placeholder character(reserved unicode) for blinking cursor in client; //add placeholder character(reserved unicode) for blinking cursor in client;
bufx += "\u2588"; bufx += "\u2588";
if(forcefulload) {
socket.emit('buffer', bufx); socket.emit('buffer', bufx);
} }
else {
socket.emit('bufferx', bufx);
}
}
io.on('connection', (socket:Socket) => { io.on('connection', (socket:Socket) => {
console.log('a user connected'); console.log('a user connected');
buffer[socket.id] = ""; buffer[socket.id] = "";
@ -57,7 +58,7 @@ io.on('connection', (socket:Socket) => {
buffer[socket.id] += "Type 'help' to see the available commands.\n"; buffer[socket.id] += "Type 'help' to see the available commands.\n";
buffer[socket.id] += "#"; buffer[socket.id] += "#";
//send buffer //send buffer
sendbuffer(socket, buffer); sendbuffer(socket, buffer, true);
socket.on('keypress', (data) => { socket.on('keypress', (data) => {
console.log('a key was pressed'); console.log('a key was pressed');
@ -76,6 +77,7 @@ io.on('connection', (socket:Socket) => {
var lines = buffer[socket.id].split("\n"); var lines = buffer[socket.id].split("\n");
if (lines[lines.length - 1] != "#") { if (lines[lines.length - 1] != "#") {
lines[lines.length - 1] = lines[lines.length - 1].slice(0, -1); lines[lines.length - 1] = lines[lines.length - 1].slice(0, -1);
socket.emit("lastline", lines[lines.length - 1]);
buffer[socket.id] = lines.join("\n"); buffer[socket.id] = lines.join("\n");
} }
} }
@ -98,14 +100,18 @@ io.on('connection', (socket:Socket) => {
buffer[socket.id] += "\n"; buffer[socket.id] += "\n";
//remove # in beginning of commandname //remove # in beginning of commandname
console.log("Executing command: \"" + commandName + "\" with arguments: \"" + commandArgs + "\""); console.log("Executing command: \"" + commandName + "\" with arguments: \"" + commandArgs + "\"");
resolveCommand(commandName, socket, commandArgs, buffer, sessions, filesystem, curdir, curdirx); var bufko = "\n" + resolveCommand(commandName, socket, commandArgs, buffer, sessions, filesystem, curdir, curdirx);
console.log("This command \""+ commandName +"\" with args:\""+commandArgs+"\" returned \""+bufko+"\"");
bufko += "#";
socket.emit("bufferx", bufko+ '\u2588');
buffer[socket.id] += bufko;
} }
else{ else{
//add key to buffer //add key to buffer
buffer[socket.id] += key; buffer[socket.id] += key;
socket.emit("bufferx", key+"\u2588");
} }
//send buffer to client //send buffer to client
sendbuffer(socket, buffer);
}); });
}); });
io.on('disconnect', (socket:Socket) => { io.on('disconnect', (socket:Socket) => {

136
package-lock.json generated

@ -9,15 +9,23 @@
"version": "1.0.0", "version": "1.0.0",
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"@types/jquery": "^3.5.14",
"express": "^4.18.1", "express": "^4.18.1",
"jquery": "^3.6.0",
"serialize-anything": "^1.1.10", "serialize-anything": "^1.1.10",
"socket.io": "^4.5.1" "socket.io": "^4.5.1",
"socket.io-client": "^4.5.1"
}, },
"devDependencies": { "devDependencies": {
"@types/express": "^4.17.13", "@types/express": "^4.17.13",
"typescript": "^4.7.3" "typescript": "^4.7.3"
} }
}, },
"node_modules/@socket.io/component-emitter": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz",
"integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg=="
},
"node_modules/@types/body-parser": { "node_modules/@types/body-parser": {
"version": "1.19.2", "version": "1.19.2",
"resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz",
@ -75,6 +83,14 @@
"@types/range-parser": "*" "@types/range-parser": "*"
} }
}, },
"node_modules/@types/jquery": {
"version": "3.5.14",
"resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.14.tgz",
"integrity": "sha512-X1gtMRMbziVQkErhTQmSe2jFwwENA/Zr+PprCkF63vFq+Yt5PZ4AlKqgmeNlwgn7dhsXEK888eIW2520EpC+xg==",
"dependencies": {
"@types/sizzle": "*"
}
},
"node_modules/@types/mime": { "node_modules/@types/mime": {
"version": "1.3.2", "version": "1.3.2",
"resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz",
@ -108,6 +124,11 @@
"@types/node": "*" "@types/node": "*"
} }
}, },
"node_modules/@types/sizzle": {
"version": "2.3.3",
"resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.3.tgz",
"integrity": "sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ=="
},
"node_modules/accepts": { "node_modules/accepts": {
"version": "1.3.8", "version": "1.3.8",
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
@ -309,6 +330,18 @@
"node": ">=10.0.0" "node": ">=10.0.0"
} }
}, },
"node_modules/engine.io-client": {
"version": "6.2.2",
"resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.2.2.tgz",
"integrity": "sha512-8ZQmx0LQGRTYkHuogVZuGSpDqYZtCM/nv8zQ68VZ+JkOpazJ7ICdsSpaO6iXwvaU30oFg5QJOJWj8zWqhbKjkQ==",
"dependencies": {
"@socket.io/component-emitter": "~3.1.0",
"debug": "~4.3.1",
"engine.io-parser": "~5.0.3",
"ws": "~8.2.3",
"xmlhttprequest-ssl": "~2.0.0"
}
},
"node_modules/engine.io-parser": { "node_modules/engine.io-parser": {
"version": "5.0.4", "version": "5.0.4",
"resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.4.tgz", "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.4.tgz",
@ -517,6 +550,11 @@
"node": ">= 0.10" "node": ">= 0.10"
} }
}, },
"node_modules/jquery": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz",
"integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw=="
},
"node_modules/media-typer": { "node_modules/media-typer": {
"version": "0.3.0", "version": "0.3.0",
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
@ -795,6 +833,32 @@
"resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.4.0.tgz", "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.4.0.tgz",
"integrity": "sha512-W4N+o69rkMEGVuk2D/cvca3uYsvGlMwsySWV447y99gUPghxq42BxqLNMndb+a1mm/5/7NeXVQS7RLa2XyXvYg==" "integrity": "sha512-W4N+o69rkMEGVuk2D/cvca3uYsvGlMwsySWV447y99gUPghxq42BxqLNMndb+a1mm/5/7NeXVQS7RLa2XyXvYg=="
}, },
"node_modules/socket.io-client": {
"version": "4.5.1",
"resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.5.1.tgz",
"integrity": "sha512-e6nLVgiRYatS+AHXnOnGi4ocOpubvOUCGhyWw8v+/FxW8saHkinG6Dfhi9TU0Kt/8mwJIAASxvw6eujQmjdZVA==",
"dependencies": {
"@socket.io/component-emitter": "~3.1.0",
"debug": "~4.3.2",
"engine.io-client": "~6.2.1",
"socket.io-parser": "~4.2.0"
},
"engines": {
"node": ">=10.0.0"
}
},
"node_modules/socket.io-client/node_modules/socket.io-parser": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.0.tgz",
"integrity": "sha512-tLfmEwcEwnlQTxFB7jibL/q2+q8dlVQzj4JdRLJ/W/G1+Fu9VSxCx1Lo+n1HvXxKnM//dUuD0xgiA7tQf57Vng==",
"dependencies": {
"@socket.io/component-emitter": "~3.1.0",
"debug": "~4.3.1"
},
"engines": {
"node": ">=10.0.0"
}
},
"node_modules/socket.io-parser": { "node_modules/socket.io-parser": {
"version": "4.0.4", "version": "4.0.4",
"resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz", "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz",
@ -892,9 +956,22 @@
"optional": true "optional": true
} }
} }
},
"node_modules/xmlhttprequest-ssl": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz",
"integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==",
"engines": {
"node": ">=0.4.0"
}
} }
}, },
"dependencies": { "dependencies": {
"@socket.io/component-emitter": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz",
"integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg=="
},
"@types/body-parser": { "@types/body-parser": {
"version": "1.19.2", "version": "1.19.2",
"resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz",
@ -952,6 +1029,14 @@
"@types/range-parser": "*" "@types/range-parser": "*"
} }
}, },
"@types/jquery": {
"version": "3.5.14",
"resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.14.tgz",
"integrity": "sha512-X1gtMRMbziVQkErhTQmSe2jFwwENA/Zr+PprCkF63vFq+Yt5PZ4AlKqgmeNlwgn7dhsXEK888eIW2520EpC+xg==",
"requires": {
"@types/sizzle": "*"
}
},
"@types/mime": { "@types/mime": {
"version": "1.3.2", "version": "1.3.2",
"resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz",
@ -985,6 +1070,11 @@
"@types/node": "*" "@types/node": "*"
} }
}, },
"@types/sizzle": {
"version": "2.3.3",
"resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.3.tgz",
"integrity": "sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ=="
},
"accepts": { "accepts": {
"version": "1.3.8", "version": "1.3.8",
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
@ -1139,6 +1229,18 @@
"ws": "~8.2.3" "ws": "~8.2.3"
} }
}, },
"engine.io-client": {
"version": "6.2.2",
"resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.2.2.tgz",
"integrity": "sha512-8ZQmx0LQGRTYkHuogVZuGSpDqYZtCM/nv8zQ68VZ+JkOpazJ7ICdsSpaO6iXwvaU30oFg5QJOJWj8zWqhbKjkQ==",
"requires": {
"@socket.io/component-emitter": "~3.1.0",
"debug": "~4.3.1",
"engine.io-parser": "~5.0.3",
"ws": "~8.2.3",
"xmlhttprequest-ssl": "~2.0.0"
}
},
"engine.io-parser": { "engine.io-parser": {
"version": "5.0.4", "version": "5.0.4",
"resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.4.tgz", "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.4.tgz",
@ -1309,6 +1411,11 @@
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
"integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
}, },
"jquery": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz",
"integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw=="
},
"media-typer": { "media-typer": {
"version": "0.3.0", "version": "0.3.0",
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
@ -1517,6 +1624,28 @@
"resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.4.0.tgz", "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.4.0.tgz",
"integrity": "sha512-W4N+o69rkMEGVuk2D/cvca3uYsvGlMwsySWV447y99gUPghxq42BxqLNMndb+a1mm/5/7NeXVQS7RLa2XyXvYg==" "integrity": "sha512-W4N+o69rkMEGVuk2D/cvca3uYsvGlMwsySWV447y99gUPghxq42BxqLNMndb+a1mm/5/7NeXVQS7RLa2XyXvYg=="
}, },
"socket.io-client": {
"version": "4.5.1",
"resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.5.1.tgz",
"integrity": "sha512-e6nLVgiRYatS+AHXnOnGi4ocOpubvOUCGhyWw8v+/FxW8saHkinG6Dfhi9TU0Kt/8mwJIAASxvw6eujQmjdZVA==",
"requires": {
"@socket.io/component-emitter": "~3.1.0",
"debug": "~4.3.2",
"engine.io-client": "~6.2.1",
"socket.io-parser": "~4.2.0"
},
"dependencies": {
"socket.io-parser": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.0.tgz",
"integrity": "sha512-tLfmEwcEwnlQTxFB7jibL/q2+q8dlVQzj4JdRLJ/W/G1+Fu9VSxCx1Lo+n1HvXxKnM//dUuD0xgiA7tQf57Vng==",
"requires": {
"@socket.io/component-emitter": "~3.1.0",
"debug": "~4.3.1"
}
}
}
},
"socket.io-parser": { "socket.io-parser": {
"version": "4.0.4", "version": "4.0.4",
"resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz", "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz",
@ -1572,6 +1701,11 @@
"resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz",
"integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==",
"requires": {} "requires": {}
},
"xmlhttprequest-ssl": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz",
"integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A=="
} }
} }
} }

@ -10,9 +10,12 @@
"author": "", "author": "",
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"@types/jquery": "^3.5.14",
"express": "^4.18.1", "express": "^4.18.1",
"jquery": "^3.6.0",
"serialize-anything": "^1.1.10", "serialize-anything": "^1.1.10",
"socket.io": "^4.5.1" "socket.io": "^4.5.1",
"socket.io-client": "^4.5.1"
}, },
"devDependencies": { "devDependencies": {
"@types/express": "^4.17.13", "@types/express": "^4.17.13",

104
script.ts Normal file

@ -0,0 +1,104 @@
function setareacontent(content:string):void{
//this appends to the bottom of the console and scrolls to the bottom make sure we start typing at the bottom
var console = document.getElementById("console");
if (console != null) {
console.innerHTML = content;
console.scrollTop = console.scrollHeight;
}
}
function addareacontent(content:string):void{
//this appends to the bottom of the console and scrolls to the bottom make sure we start typing at the bottom
var console = document.getElementById("console");
if (console != null) {
console.innerHTML += content;
console.scrollTop = console.scrollHeight;
}
}
function resizeit():void{
let con = $("#console");
let windowx = $("window");
let consolecont = $("#consolecont");
if (con != null && windowx != null && con != undefined&& windowx != undefined&&consolecont != null&&consolecont!=undefined) {
let winheight = windowx.height();
let conoffset = con.offset();
if (winheight != undefined && conoffset != undefined){
consolecont.css('height', winheight - 10);
let height = (winheight - conoffset.top)*0.96;
$('#console').css('height', height);
$('#rows').val(winheight - conoffset.top - 10);
}
}
else{
console.log("error");
}
}
$(function(){
//fit console to screen
//$('#console').css('height', $(window).height() - $('#console').offset().top - 10);
//account for the input box
let host = 'ws://127.0.0.1:8480';
var socket = io.connect(host)
resizeit();
//resize it on window resize
//$(window).resize(function(){
$(window).on('resize', function(){
resizeit();
});
//on key press on any part of html page
//$("#console").keyup(function(e){
$("#console").on('keyup', function(e){
//if enter key is pressed
//get the input
e.preventDefault();
//resolve e.code to char
let key = e.which;
//send to server via socket if connected
if (key == 8){
socket.emit('keypress', key);
}
});
// $("#console").keypress(function(e){
$("#console").on('keypress', function(e){
//if enter key is pressed
//get the input
e.preventDefault();
//resolve e.code to char
let key = e.which;
//send to server via socket if connected
socket.emit('keypress', key);
});
//connect to the server
//on connect
socket.on('connect', function(){
setareacontent("Connected to server");
});
//on disconnect
socket.on('disconnect', function(){
setareacontent("Disconnected from server");
});
//on error
socket.on('error', function(err:any){
setareacontent("Error: " + err);
});
//on message
socket.on('buffer', function(msg:any){
setareacontent(msg);
});
socket.on('bufferx', function(msg:any){
addareacontent(msg);
});
})
function flash(){
//if u+2800 is present in the console then replace it with 2588
let console = document.getElementById("console");
if (console != null) {
if(console.innerHTML.indexOf("\u2800") > -1){
console.innerHTML = console.innerHTML.replace("\u2800", "\u2588");
}
else{
console.innerHTML = console.innerHTML.replace("\u2588", "\u2800");
}
}
}
setInterval(flash, 500);

@ -1,11 +1,13 @@
{ {
"compilerOptions": { "compilerOptions": {
"module": "commonjs", "module": "commonjs",
"moduleResolution": "node",
"noImplicitAny": true, "noImplicitAny": true,
"removeComments": true, "removeComments": true,
"preserveConstEnums": true, "preserveConstEnums": true,
"suppressImplicitAnyIndexErrors": true, "suppressImplicitAnyIndexErrors": true,
"sourceMap": true "sourceMap": true,
"esModuleInterop": true
}, },
"files": [ "files": [
"index.ts" "index.ts"

@ -1,15 +1,14 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>
<script src="/socket.io/socket.io.js"></script>
<link rel="stylesheet" href="style.css"> <link rel="stylesheet" href="style.css">
<meta charset="utf-8"> <meta charset="utf-8">
<script src="jquery.js"></script> <!--include socket.io.js and jquery-->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js" integrity="sha512-894YE6QWD5I59HgZOGReFYm4dnWc1Qt5NtvYSaNcOP+u1T9qYdvdihz0PPSiiqn/+/3e7Jo4EaG7TubfWGUrMQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/4.5.1/socket.io.js" integrity="sha512-9mpsATI0KClwt+xVZfbcf2lJ8IFBAwsubJ6mI3rtULwyM3fBmQFzj0It4tGqxLOGQwGfJdk/G+fANnxfq9/cew==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<script src="script.js" ></script> <script src="script.js" ></script>
</head> </head>
<body> <body>
<div id="consolecont">
<textarea id="console" readonly></textarea> <textarea id="console" readonly></textarea>
</div>
</body> </body>
</html> </html>

2
website/jquery.js vendored

File diff suppressed because one or more lines are too long

@ -1,28 +1,65 @@
function addareacontent(content){ "use strict";
function setareacontent(content) {
//this appends to the bottom of the console and scrolls to the bottom make sure we start typing at the bottom //this appends to the bottom of the console and scrolls to the bottom make sure we start typing at the bottom
var console = document.getElementById("console"); var console = document.getElementById("console");
console.innerHTML = content; console.innerHTML = content;
console.scrollTop = console.scrollHeight; console.scrollTop = console.scrollHeight;
} }
function addareacontent(content) {
//this appends to the bottom of the console and scrolls to the bottom make sure we start typing at the bottom
var console = document.getElementById("console");
//replace the u+2800 and u+2588 with nothing in the console
console.innerHTML = console.innerHTML.replace("\u{2800}", "").replace("\u{2588}", "");
console.innerHTML += content;
console.scrollTop = console.scrollHeight;
}
function setlastline(content){
let console = document.getElementById("console");
//split by \n
let lines = console.innerHTML.split("\n");
//get the last line
lines[lines.length - 1] = content;
//join the lines back together
console.innerHTML = lines.join("\n")+'\u2588';
}
function resizeit() { function resizeit() {
$('#consolecont').css('height', $(window).height() - 10); let con = $("#console");
let height = ($(window).height() - $('#console').offset().top)*0.96; let windowx = $(window);
$('#console').css('height', height); let winheight = windowx.height();
$('#rows').val($(window).height() - $('#console').offset().top - 10); let conoffset = con.offset();
con.css('height', winheight - 10);
$('#rows').val(winheight - conoffset.top - 10);
}
function revertcol(){
$("#console").css('background-color', '#000000');
$("#console").css('color', '#00FF00');
}
function bell(){
//plays a beep and inverts colors and they are reverted back after some time
$("#console").css('background-color', '#00AC00');
$("#console").css('color', '#000000');
setTimeout(revertcol, 25);
//generate a beep
var snd = new Audio("data:audio/wav;base64,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qJrx4KOQjahZxWbcZgztj2c49nKmkId44S71j0c8eV9yDK6uPRzx5X18eDvjvQ6yKo9ZSS6l//8elePK/Lf//IInrOF/FvDoADYAGBMGb7FtErm5MXMlmPAJQVgWta7Zx2go+8xJ0UiCb8LHHdftWyLJE0QIAIsI+UbXu67dZMjmgDGCGl1H+vpF4NSDckSIkk7Vd+sxEhBQMRU8j/12UIRhzSaUdQ+rQU5kGeFxm+hb1oh6pWWmv3uvmReDl0UnvtapVaIzo1jZbf/pD6ElLqSX+rUmOQNpJFa/r+sa4e/pBlAABoAAAAA3CUgShLdGIxsY7AUABPRrgCABdDuQ5GC7DqPQCgbbJUAoRSUj+NIEig0YfyWUho1VBBBA//uQZB4ABZx5zfMakeAAAAmwAAAAF5F3P0w9GtAAACfAAAAAwLhMDmAYWMgVEG1U0FIGCBgXBXAtfMH10000EEEEEECUBYln03TTTdNBDZopopYvrTTdNa325mImNg3TTPV9q3pmY0xoO6bv3r00y+IDGid/9aaaZTGMuj9mpu9Mpio1dXrr5HERTZSmqU36A3CumzN/9Robv/Xx4v9ijkSRSNLQhAWumap82WRSBUqXStV/YcS+XVLnSS+WLDroqArFkMEsAS+eWmrUzrO0oEmE40RlMZ5+ODIkAyKAGUwZ3mVKmcamcJnMW26MRPgUw6j+LkhyHGVGYjSUUKNpuJUQoOIAyDvEyG8S5yfK6dhZc0Tx1KI/gviKL6qvvFs1+bWtaz58uUNnryq6kt5RzOCkPWlVqVX2a/EEBUdU1KrXLf40GoiiFXK///qpoiDXrOgqDR38JB0bw7SoL+ZB9o1RCkQjQ2CBYZKd/+VJxZRRZlqSkKiws0WFxUyCwsKiMy7hUVFhIaCrNQsKkTIsLivwKKigsj8XYlwt/WKi2N4d//uQRCSAAjURNIHpMZBGYiaQPSYyAAABLAAAAAAAACWAAAAApUF/Mg+0aohSIRobBAsMlO//Kk4soosy1JSFRYWaLC4qZBYWFRGZdwqKiwkNBVmoWFSJkWFxX4FFRQWR+LsS4W/rFRb/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////VEFHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAU291bmRib3kuZGUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjAwNGh0dHA6Ly93d3cuc291bmRib3kuZGUAAAAAAAAAACU=");
snd.play();
} }
$(document).ready(function(){ $(document).ready(function(){
//fit console to screen //fit console to screen
//$('#console').css('height', $(window).height() - $('#console').offset().top - 10); //$('#console').css('height', $(window).height() - $('#console').offset().top - 10);
//account for the input box //account for the input box
let host = 'ws://127.0.0.1:8480'; let host = 'ws://127.0.0.1:8480';
socket = io.connect(host); var socket = io.connect(host);
resizeit(); resizeit();
//resize it on window resize //resize it on window resize
$(window).resize(function(){ //$(window).resize(function(){
$(window).on('resize', function () {
resizeit(); resizeit();
}); });
//on key press on any part of html page //on key press on any part of html page
$("#console").keyup(function(e){ //$("#console").keyup(function(e){
$("#console").on('keyup', function (e) {
//if enter key is pressed //if enter key is pressed
//get the input //get the input
e.preventDefault(); e.preventDefault();
@ -33,7 +70,8 @@ $(document).ready(function(){
socket.emit('keypress', key); socket.emit('keypress', key);
} }
}); });
$("#console").keypress(function(e){ // $("#console").keypress(function(e){
$("#console").on('keypress', function (e) {
//if enter key is pressed //if enter key is pressed
//get the input //get the input
e.preventDefault(); e.preventDefault();
@ -43,28 +81,34 @@ $(document).ready(function(){
socket.emit('keypress', key); socket.emit('keypress', key);
}); });
//connect to the server //connect to the server
//on connect //on connect
socket.on('connect', function () { socket.on('connect', function () {
addareacontent("Connected to server"); setareacontent("Connected to server");
}); });
//on disconnect //on disconnect
socket.on('disconnect', function () { socket.on('disconnect', function () {
addareacontent("Disconnected from server"); setareacontent("Disconnected from server");
}); });
//on error //on error
socket.on('error', function (err) { socket.on('error', function (err) {
addareacontent("Error: " + err); setareacontent("Error: " + err);
}); });
//on message //on message
socket.on('buffer', function (msg) { socket.on('buffer', function (msg) {
setareacontent(msg);
});
socket.on('bufferx', function (msg) {
addareacontent(msg); addareacontent(msg);
}); });
socket.on('lastline', function (msg) {
}) setlastline(msg);
});
socket.on('bell', bell);
});
function flash() { function flash() {
//if u+2800 is present in the console then replace it with 2588 //if u+2800 is present in the console then replace it with 2588
let console = document.getElementById("console"); let console = document.getElementById("console");
if (console != null) {
if (console.innerHTML.indexOf("\u2800") > -1) { if (console.innerHTML.indexOf("\u2800") > -1) {
console.innerHTML = console.innerHTML.replace("\u2800", "\u2588"); console.innerHTML = console.innerHTML.replace("\u2800", "\u2588");
} }
@ -72,4 +116,5 @@ function flash(){
console.innerHTML = console.innerHTML.replace("\u2588", "\u2800"); console.innerHTML = console.innerHTML.replace("\u2588", "\u2800");
} }
} }
}
setInterval(flash, 500); setInterval(flash, 500);