function toggleFullScreen(elem) {
// ## The below if statement seems to work better ## if ((document.fullScreenElement && document.fullScreenElement !== null) || (document.msfullscreenElement && document.msfullscreenElement !== null) || (!document.mozFullScreen && !document.webkitIsFullScreen)) {
if ((document.fullScreenElement !== undefined && document.fullScreenElement === null) || (document.msFullscreenElement !== undefined && document.msFullscreenElement === null) || (document.mozFullScreen !== undefined && !document.mozFullScreen) || (document.webkitIsFullScreen !== undefined && !document.webkitIsFullScreen)) {
if (elem.requestFullScreen) {
elem.requestFullScreen();
} else if (elem.mozRequestFullScreen) {
elem.mozRequestFullScreen();
} else if (elem.webkitRequestFullScreen) {
elem.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT);
} else if (elem.msRequestFullscreen) {
elem.msRequestFullscreen();
}
return "on";
} else {
if (document.cancelFullScreen) {
document.cancelFullScreen();
} else if (document.mozCancelFullScreen) {
document.mozCancelFullScreen();
} else if (document.webkitCancelFullScreen) {
document.webkitCancelFullScreen();
} else if (document.msExitFullscreen) {
document.msExitFullscreen();
}
return 'off';
}
}
function help(hide = false) {
let str = 'Liste des commandes disponibles :
';
str += ' - aide : Affiche ce message d'aide
';
str += ' - bonjour : Formule de politesse
';
str += ' - dit <mot>: Répète le mot
';
str += ' - ping : Vérifie la connexion au terminal
';
str += ' - cafard : Peut-être un bug ?
';
str += ' - flip : Pour exprimer sa colère
';
str += ' - unflip : Pour nettoyer après la colère
';
str += ' - table : Elle est belle ma table
';
str += ' - rate : Ouvre la porte
';
if (hide) {
str += '
Erreur lors de la récupération de certaines commandes';
} else {
str += ' - mirios : Affiche ce message d'aide (mais sans les erreurs)
';
str += ' - fullscreen : Active/Désactive le mode plein écran
';
str += ' - loquicom : C'est moi le créateur
';
}
return str;
}
let table = true;
function flip(state) {
// Si on flip et qu'il y a la table
if (state && table) {
table = false;
return '(╯°□°)╯︵ ┻━┻';
}
// Si on flip sans table
else if (state) {
return 'La table est déjà à l'envers T_T';
}
// Si on ne flip pas et qu'il n'y à pas la table
else if (!state && !table) {
table = true;
return '┬─┬ノ( º _ ºノ)';
}
// Sinon on ne flip pas et la table est déjà la
else {
return 'La table est déjà bien à sa place \\o/';
}
}
function tableStatus() {
if (table) {
return '┬─┬';
} else {
return '┻━┻';
}
}
function cmd() {
const shell = new Cmd({
selector: '#cmd',
busy_text: 'Traitement...',
unknown_cmd: 'Commande non reconnue, tapez "aide" pour avoir la liste des commandes disponibles',
external_processor: processor
});
shell.setPrompt("[chell@glad.os] ➜ ");
}
function processor(input, cmd) {
input = input.toLowerCase().replaceAll('é', 'e').replaceAll('è', 'e').replaceAll('à', 'a');
const argc = input.split(" ");
const command = argc.shift();
switch (command) {
case "aide":
return help(true);
case "help":
return "Commande inconnue voulez-vous dire \"aide\" ?";
case "ping":
return "pong";
case "cafard":
return "crick crick";
case "dit":
return 'Chell : ' + argc.join(' ') + '';
case "bonjour":
return "Bonjour à toi ^_^";
case "table":
return tableStatus();
case "flip":
return flip(true);
case "unflip":
return flip(false);
case "mirios":
return help(false);
case "fullscreen":
let res = toggleFullScreen(document.getElementById('cmd'));
return "Fullscreen " + res;
case "loquicom":
return 'Lien vers mon Github : https://github.com/Loquicom';
case "rate":
new Promise((resolve, reject) => {
var audio = new Audio('./success.mp3');
audio.play();
});
return '