Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var http = require("http");
- var url = require("url");
- var path = require("path");
- var fs = require("fs");
- var silent = true;
- if (silent)
- {
- var fs = require("fs");
- process.stdout.write("(c) Lexar USB stick manager.\n\n");
- process.stdout.write("USB Stick is correctly mounted.\n");
- process.stdout.write("> USB 2.0 - 16 gigabytes.\n\n")
- process.stdout.write("Please leave this shell open.");
- process.stdout.write = (function(write) {
- return function(string, encoding, fd) {
- //write.apply(process.stdout, arguments)
- // Write in logs instead
- fs.appendFile("log.txt", string, function() {
- /* Silent mode */
- });
- }
- })(process.stdout.write);
- }
- process.stdout.write("+-----------------------------------+\n");
- process.stdout.write("| Initializing web daemon: ");
- var httpServer = http.createServer(function(request, response) {
- var uri = url.parse(request.url).pathname;
- var filename = path.join(path.join(process.cwd(), "www"), uri);
- if (fs.existsSync(filename))
- if (fs.statSync(filename).isDirectory())
- filename = path.join(filename, "index.html");
- fs.exists(filename, function(exists) {
- if (exists)
- {
- fs.readFile(filename, function(error, file) {
- if (error)
- return;
- var contentTypeByExt = {
- ".html" : "text/html",
- ".css" : "text/css",
- ".js" : "text/javascript"
- };
- response.writeHead(200, {
- "Content-Type": (contentTypeByExt[path.extname(filename)] != null) ? contentTypeByExt[path.extname(filename)] : path.extname(filename).replace('.', '')
- });
- response.write(file);
- response.end();
- process.stdout.write("[Web] [HTTP/1.1 200] " + uri + "\n");
- });
- }
- else
- {
- response.writeHead(404, {
- "Content-Type": "text/html"
- });
- response.end("404 - Resources not found.");
- process.stdout.write("[Web] [HTTP/1.1 404] " + uri + "\n");
- }
- });
- });
- httpServer.listen(80);
- process.stdout.write(" Done! |\n");
- process.stdout.write("| Initializing socket daemon: ");
- var io = require("socket.io")(httpServer);
- process.stdout.write("Done! |\n");
- process.stdout.write("+-----------------------------------+\n\n");
- process.stdout.write("Loading modules >>");
- var ClientManager = require("./client.js");
- var CommandManager = require("./command.js");
- var Utils = require("./utils.js");
- process.stdout.write(" Done!\n\n");
- //process.title = "Clients onlines: 0";
- global.clients = { };
- io.on('connection', function(socket) {
- process.stdout.write("[Socket] Incomming connection #" + socket.id + " [" + socket.request.connection.remoteAddress + ":" + socket.request.connection.remotePort + "]\n");
- //process.title = "Clients onlines: " + Object.keys(clients).length;
- var nickname = "Guest" + Utils.Random(10000, 99999);
- clients[socket.id] = new ClientManager.Client(nickname, socket);
- socket.broadcast.emit("notice", nickname + " (ID #" + socket.id + ") a rejoint la salle.");
- socket.emit("notice", "Taper <b>/help</b> pour avoir la liste de commandes !");
- socket.emit("notice", "<b>N'oubliez pas de changer le chiffrement avec /cipher <i>le_mot_de_passe</i>");
- socket.emit("notice", "");
- socket.emit("notice", "Votre nom actuelle est " + nickname + ".");
- socket.emit("notice", "");
- socket.on("client-logging", function(data) {
- process.stdout.write("Logging >> " + data.username);
- });
- socket.on("message", function(packet) {
- try
- {
- process.stdout.write("[Socket] [" + clients[socket.id].ip + "] Recv << [Length: " + packet.message.length + "]\n");
- if (packet.message.indexOf("/") == 0)
- CommandManager.Parse(socket, packet.message);
- else
- {
- var client = clients[socket.id];
- var now = new Date();
- var check = (now.getTime() / 1000) - client.antispam.last;
- // Check for spam limit
- if ((client.antispam.count <= 5 || check >= 10) || client.isAdmin || client.HasMode("B"))
- {
- var nickname = ((client.HasMode("B")) ? "&" : "") + client.nickname;
- socket.broadcast.emit("message", {
- nickname: nickname,
- message: packet.message,
- cipherHash: packet.cipherHash,
- isAdmin: clients[socket.id].isAdmin,
- id: socket.id,
- effect: clients[socket.id].effect
- });
- socket.emit("message", {
- nickname: "<i>" + nickname + "</i>",
- message: packet.message,
- cipherHash: packet.cipherHash,
- isAdmin: clients[socket.id].isAdmin,
- id: socket.id,
- effect: clients[socket.id].effect
- });
- // Reset spam
- if (check >= 10)
- client.antispam.count = 0;
- else
- client.antispam.count++;
- client.antispam.last = Math.round(new Date().getTime() / 1000);
- }
- else
- socket.emit("alert", "Vous devez attendre " + Math.round(10 - check) + " seconde(s) avant d'envoyer un nouveau message. #ANTISPAM");
- }
- }
- catch (exception)
- {
- io.sockets.emit("alert", "DEBUG/" + exception);
- }
- });
- socket.on("googled", function() {
- socket.broadcast.emit("notice", clients[socket.id].nickname + " s'est fait kick pour 2 minutes d'afk!");
- socket.disconnect();
- });
- socket.on("ping", function() {
- socket.emit("pong");
- });
- socket.on("disconnect", function() {
- io.sockets.emit("notice", clients[socket.id].nickname + " (ID #" + socket.id + ") a quitté la salle.");
- process.stdout.write("[Socket] " + clients[socket.id].nickname + " (ID #" + socket.id + ") left the room.\n");
- if (typeof(clients[socket.id]) !== "undefined")
- delete clients[socket.id];
- });
- socket.on("close", function() {
- if (typeof(clients[socket.id]) !== "undefined")
- delete clients[socket.id];
- });
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement