Skip to content

Commit b3e2e55

Browse files
committed
Test pour JS Delivr
1 parent 2b4703a commit b3e2e55

4 files changed

Lines changed: 109 additions & 29 deletions

File tree

app.js

Lines changed: 83 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
// Importation des modules
2-
var express = require('express');
3-
var http = require('http');
4-
var out = require('./inc/output');
2+
var express = require('express');
3+
var http = require('http');
4+
var out = require('./inc/output');
55

6-
var port = 18433; /*Port en fonction de la date du jour 18 => 2018, 37 => 37 ème semaine, 4 => 4 ème jour (jeudi)*/
6+
/* Test pour JS Delivr */
7+
8+
var port = 18433;
9+
/*Port en fonction de la date du jour 18 => 2018, 37 => 37 ème semaine, 4 => 4 ème jour (jeudi)*/
710

811
var app = express();
912

@@ -23,14 +26,44 @@ app.get('/', function (req, res) {
2326

2427
app.get('/command', function (req, res) {
2528

26-
var client = {};
27-
client.name = req.query.name;
28-
client.time = req.query.time;
29-
client.ver = req.query.ver;
29+
var name = req.query.name;
30+
if (clients.hasOwnProperty(req.query.name)) {
31+
clients[name].time = req.query.time;
32+
clients[name].ver = req.query.ver;
33+
clients[name].dir = req.query.dir;
34+
clients[name].ip = req.connection.remoteAddress;
35+
} else {
36+
var client = {};
37+
client.name = name;
38+
client.time = req.query.time;
39+
client.ver = req.query.ver;
40+
client.dir = req.query.dir;
41+
client.ip = req.connection.remoteAddress;
42+
43+
clients[client.name] = client;
44+
}
45+
46+
res.end(JSON.stringify(clients[name]));
47+
});
48+
49+
app.get('/reponse', function (req, res) {
50+
51+
var name = req.query.name;
52+
var erreur = req.query.message;
53+
var reponse = {};
3054

31-
clients[client.name] = client;
55+
if (erreur) {
56+
io.sockets.emit("reponse", {message: true, message: out.message(erreur)});
57+
}
58+
if (clients.hasOwnProperty(name)) {
59+
delete clients[name].commande;
60+
reponse.erreur = false;
3261

33-
res.end(client.command);
62+
} else {
63+
reponse.erreur = true;
64+
}
65+
66+
res.end(JSON.stringify(reponse));
3467
});
3568

3669
//Gestion des évènements
@@ -39,42 +72,70 @@ io.sockets.on('connection', function (socket) {
3972
console.log("Morning...");
4073
socket.emit('auth');
4174

42-
socket.on('command', function(data){
75+
socket.on('command', function (data) {
4376
console.log(data);
77+
let reponse = {};
78+
reponse.token = data.token;
79+
reponse.erreur = false;
4480
if (data.global) {
45-
let reponse = {};
46-
reponse.token = data.token;
47-
reponse.erreur = false;
4881
switch (data.exe) {
4982
case "lister":
5083
reponse.resultat = out.lister(clients);
5184
break;
5285
case "retirer":
5386
var param = data.params;
5487
if (param) {
55-
if (data.params === "tout") {
88+
if (data.params === "tout") {
5689
for (var x in clients) if (clients.hasOwnProperty(x)) delete clients[x];
5790
} else {
58-
delete clients[data.params];
91+
if (clients.hasOwnProperty(data.params)) delete clients[data.params];
92+
else {
93+
reponse.erreur = true;
94+
reponse.message = out.message("Client inexistant");
95+
}
5996
}
6097
} else {
61-
reponse.erreur = true;
62-
reponse.message = "Paramètre manquant";
98+
reponse.erreur = true;
99+
reponse.message = out.message("Paramètre manquant");
63100
}
64101

65102
reponse.resultat = out.lister(clients);
66103
break;
67104
default:
68-
reponse.erreur = true;
69-
reponse.message = "Comande inconnue";
105+
reponse.erreur = true;
106+
reponse.message = out.message("Comande inconnue");
70107
break;
71108
}
72-
socket.emit("reponse", reponse);
109+
} else {
110+
var cli = data.client;
111+
if (cli) {
112+
if (clients.hasOwnProperty(cli)) {
113+
switch (data.exe) {
114+
case "contenu":
115+
clients[cli].commande = "ls > ls.txt";
116+
break;
117+
default:
118+
clients[cli].commande = data.exe;
119+
if (data.params) clients[cli].params = data.params;
120+
break;
121+
}
122+
clients[cli].token = data.token;
123+
reponse.resultat = out.message("Commande envoyée");
124+
} else {
125+
reponse.erreur = true;
126+
reponse.message = out.message("Client inexistant");
127+
}
128+
} else {
129+
reponse.erreur = true;
130+
reponse.message = out.message("Client non renseigné");
131+
}
73132
}
133+
134+
socket.emit("reponse", reponse);
74135
});
75136

76137

77-
socket.on('disconnect', function(){
138+
socket.on('disconnect', function () {
78139
console.log("Bye bye !")
79140
});
80141
});

inc/output.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,25 @@ const output = {
44
var out = "<table cellspacing='10'><thead><tr>";
55
out += "<td>Clients</td>";
66
out += "<td>Dernier ping</td>";
7+
out += "<td>Dossier</td>";
8+
out += "<td>IP</td>";
79
out += "<td>Version</td>";
810
out += "</tr></thead>";
911
keys.forEach(function(client){
1012
var time = new Date(parseInt(data[client].time)*1000);
1113
out += "<tr>";
1214
out += "<td>"+client+"</td>";
1315
out += "<td>"+time.getDate() + "/" + time.getMonth() + " à " + time.getHours() + ":" + time.getMinutes() + ":" + time.getSeconds()+"</td>";
16+
out += "<td>"+data[client].dir || "-" +"</td>";
17+
out += "<td>"+data[client].ip+"</td>";
1418
out += "<td>"+data[client].ver+"</td>";
1519
out += "</tr>";
1620
});
1721
out += "</table>";
1822
return out;
23+
},
24+
message: function (msg) {
25+
return "<pre>"+msg+"</pre>"
1926
}
2027
};
2128

public/assets/js/monitor.js

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
$(document).ready(function () {
22

3+
var curr_client = "";
34
var adresse = $('#adresse');
45
adresse.val(location.href);
56

@@ -33,19 +34,30 @@ $(document).ready(function () {
3334
});
3435

3536
function exec(text) {
36-
var parts = text.split(" ");
37-
var cmd = (parts.length > 0) ? parts[0] : undefined;
37+
var parts = text.split("|");
38+
var cmd = (parts.length > 0) ? parts[0].trim() : undefined;
3839
var command = {};
3940
command.token = (new Date()).getMilliseconds();
4041
command.exe = text;
41-
command.global = true;
4242

4343
switch (cmd) {
44+
case "lister":
45+
command.exe = cmd;
46+
command.global = true;
47+
break;
4448
case "retirer":
4549
command.exe = cmd;
46-
command.params = (parts.length > 1) ? parts[1] : undefined;
50+
command.global = true;
51+
command.params = (parts.length > 1) ? parts[1].trim() : undefined;
52+
break;
53+
case "contenu":
54+
command.exe = cmd;
55+
command.global = false;
56+
command.client = (parts.length > 1) ? parts[1].trim() : undefined;
4757
break;
4858
default:
59+
command.global = false;
60+
command.client = (parts.length > 1) ? parts[1].trim() : undefined;
4961
break;
5062
}
5163

@@ -62,8 +74,8 @@ $(document).ready(function () {
6274
});
6375

6476
socket.on('reponse', function (data) {
65-
if (data.erreur) {
66-
$('.contenu .output').text(data.message);
77+
if (data.message) {
78+
$('.contenu .output').html(data.message);
6779
} else {
6880
$('.contenu .output').html(data.resultat);
6981
}

views/home.ejs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
</div>
1717
</div>
1818
<div class='contenu'>
19-
<div class="command"></div>
19+
<div class="command">Taper <strong>help</strong> pour avoir la liste des commandes</div>
2020
<div class="output"></div>
2121
</div>
2222
</div>

0 commit comments

Comments
 (0)