Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- process.title = 'Server Web http NodeJS';
- process.stdout.write('\033c');
- var fs = require('fs');
- var colors = require('colors');
- var exec = require('child_process').exec;
- var ent = require('ent');
- var log4js = require('log4js');
- log4js.configure('logConfig.json', { cwd: 'D:/testnode' });
- var subdomain = require('express-subdomain');
- var express = require('express');
- var cookieParser = require('cookie-parser');
- var app = express();
- var server = require('http').createServer(app);
- server.listen(80);
- var io = require('socket.io')(server);
- var mysql = require('mysql');
- var JSFtp = require("jsftp");
- var favicon = require('serve-favicon');
- var multer = require('multer');
- var storage = multer.diskStorage({
- destination: function (req, file, callback) {
- callback(null, './views');
- },
- filename: function (req, file, callback) {
- callback(null, 'cursor.png');
- }
- });
- var upload = multer({ storage : storage}).single('AppCursor');
- var cookiesFl = {
- connect: false
- };
- var nodemailer = require('nodemailer');
- var smtpTransport = require('nodemailer-smtp-transport');
- var transporter = nodemailer.createTransport(smtpTransport({
- host: 'localhost',
- port: 25,
- secure: false,
- auth: {
- user: 'admin@flammrock.ga',
- pass: 'salut'
- },
- tls: {
- rejectUnauthorized: false
- }
- }));
- var Wforum = express.Router();
- var Wmail = express.Router();
- var Wfiche = express.Router();
- var Wglacerock10 = express.Router();
- var Wraiseit = express.Router();
- app.use(subdomain('forum', Wforum));
- app.use(subdomain('mail', Wmail));
- app.use(subdomain('fiche', Wfiche));
- app.use(subdomain('glacerock10', Wglacerock10));
- app.use(subdomain('raiseit', Wraiseit));
- app.listen(3000);
- log4js.loadAppender('file');
- var logs = {
- hello: log4js.getLogger('hello'),
- chat: log4js.getLogger('hello'),
- admin: log4js.getLogger('admin')
- }
- logs.hello.info('Serveur lancé !');
- logs.admin.info('Serveur lancé !');
- app.use(cookieParser());
- app.set('view engine', 'ejs');
- app.use(favicon('views/favicon.ico'));
- app.use(express.static(__dirname + '/views'));
- //router.set('view engine', 'ejs');
- Wforum.use(express.static(__dirname + '/views'));
- Wforum.use(cookieParser());
- Wmail.use(express.static(__dirname + '/views'));
- Wmail.use(cookieParser());
- Wfiche.use(express.static(__dirname + '/fiche'));
- Wfiche.use(cookieParser());
- Wglacerock10.use(express.static(__dirname + '/ftp/glacerock10'));
- Wglacerock10.use(cookieParser());
- Wraiseit.use(express.static(__dirname + '/views'));
- Wraiseit.use(cookieParser());
- app.use(function (req, res, next) {
- cookiesFl.connect = req.cookies.connect+"";
- if (cookiesFl.connect!="undefined") {cookiesFl.connect=true} else {cookiesFl.connect=false}
- next();
- });
- Wforum.use(function (req, res, next) {
- cookiesFl.connect = req.cookies.connect+"";
- if (cookiesFl.connect!="undefined") {cookiesFl.connect=true} else {cookiesFl.connect=false}
- next();
- });
- Wmail.use(function (req, res, next) {
- cookiesFl.connect = req.cookies.connect+"";
- if (cookiesFl.connect!="undefined") {cookiesFl.connect=true} else {cookiesFl.connect=false}
- next();
- });
- var passwordJoinSalon="",
- ctx="nul";
- var salonUserconnect = {};
- Wraiseit.get('/', function(req, res) {
- res.render('ftp/raiseit/index.ejs', {page:'/'});
- })
- .get('/:page', function(req, res) {
- res.render('ftp/raiseit/index.ejs', {page:'/'+req.params.page});
- });
- Wglacerock10.get('/', function(req, res) {
- res.render('ftp/glacerock10/index.ejs');
- })
- .get('/:page', function(req, res) {
- res.render(req.params.page+'.ejs');
- });
- Wforum.get('/', function(req, res) {
- res.render('forum_acc.ejs', {connect:cookiesFl.connect, pseudo:req.cookies.connect});
- })
- .get('/setcookie/:cookie/:info1', function(req, res) {
- res.cookie(req.params.cookie ,req.params.info1).send('Cookie "'+req.params.cookie+'" is set');
- })
- .get('/delcookie/:cookie', function(req, res) {
- res.clearCookie(req.params.cookie).send('Cookie "'+req.params.cookie+'" is del');
- });
- Wmail.get('/', function(req, res) {
- res.render('mail.ejs', {connect:cookiesFl.connect, pseudo:req.cookies.connect});
- })
- .get('/setcookie/:cookie/:info1', function(req, res) {
- res.cookie(req.params.cookie ,req.params.info1).send('Cookie "'+req.params.cookie+'" is set');
- })
- .get('/delcookie/:cookie', function(req, res) {
- res.clearCookie(req.params.cookie).send('Cookie "'+req.params.cookie+'" is del');
- });
- Wfiche.get('/', function(req, res) {
- res.render('fiche/fiche.ejs', {connect:cookiesFl.connect, pseudo:req.cookies.connect});
- })
- .get('/setcookie/:cookie/:info1', function(req, res) {
- res.cookie(req.params.cookie ,req.params.info1).send('Cookie "'+req.params.cookie+'" is set');
- })
- .get('/delcookie/:cookie', function(req, res) {
- res.clearCookie(req.params.cookie).send('Cookie "'+req.params.cookie+'" is del');
- });
- app.get('/', function(req, res) {
- res.render('index.ejs', {connect:cookiesFl.connect, pseudo:req.cookies.connect});
- })
- .post('/uploadCursor',function(req,res){
- upload(req,res,function(err) {
- if(err) {
- console.log(err);
- return res.end("Un erreur est survenue, votre image n'a pas pu être téléverser sur nos serveurs pour une quelconque raison");
- }
- res.writeHead(302, {
- 'Location': 'http://flammrock.ga/application/cursor'
- });
- res.end();
- });
- })
- app.get('/profil', function(req, res) {
- res.render('profil.ejs', {connect:cookiesFl.connect, pseudo:req.cookies.connect});
- })
- app.get('/exp', function(req, res) {
- if (typeof req.cookies.connect=='undefined') {
- res.render('cur.ejs', {connect:cookiesFl.connect, pseudo:'Undefined Player'});
- } else {
- res.render('exp.ejs', {connect:cookiesFl.connect, pseudo:req.cookies.connect});
- }
- })
- .get('/anim', function(req, res) {
- res.render('anim.ejs', {connect:cookiesFl.connect, pseudo:req.cookies.connect});
- })
- .get('/cursor', function(req, res) {
- res.render('cursor.ejs', {connect:cookiesFl.connect, pseudo:req.cookies.connect});
- })
- .get('/isup/:url', function(req, res) {
- res.render('isup.ejs', {connect:cookiesFl.connect, pseudo:req.cookies.connect,url:req.params.url});
- })
- .get('/isup', function(req, res) {
- res.render('isup.ejs', {connect:cookiesFl.connect, pseudo:req.cookies.connect,url:'undefined'});
- })
- .get('/img/:img', function(req, res) {
- res.render('img.ejs', {img: req.params.img});
- })
- .get('/application/:name', function(req, res) {
- passwordJoinSalon="";
- res.render(req.params.name+".ejs", {connect:cookiesFl.connect, pseudo:req.cookies.connect, salon:'none', password:''});
- })
- .get('/application/chat/:salon', function(req, res) {
- res.render("chats.ejs", {connect:cookiesFl.connect, pseudo:req.cookies.connect, salon:req.params.salon, password:passwordJoinSalon});
- })
- .get('/setcookie/:cookie/:info1', function(req, res) {
- res.cookie(req.params.cookie ,req.params.info1).send('Cookie "'+req.params.cookie+'" is set');
- })
- .get('/delcookie/:cookie', function(req, res) {
- res.clearCookie(req.params.cookie).send('Cookie "'+req.params.cookie+'" is del');
- })
- .use(function(req, res, next){
- res.setHeader('Content-Type', 'text/plain');
- res.send(404, 'Page introuvable !');
- });
- function mySqlCo(n,database) {
- mySqlClient = mysql.createConnection({
- host : "localhost",
- user : "root",
- password : "salut",
- database : database
- });
- mySqlClient.connect(function(err){
- if(err){
- if (n==0) {
- console.log('Error connecting to Db');
- logs.hello.info('Error connecting to Db');
- console.log("Error conneion to Database..".red+"\n");
- logs.hello.info('Error conneion to Database..');
- }
- return;
- }
- if (n==0) {
- logs.hello.info('Connexion to Database is a success');
- console.log("Connexion to Database is a "+"success".green+" !\n");
- }
- });
- }
- mySqlCo(0,"flammrock");
- var NOW = function() {
- var dat = new Date();
- var h = dat.getHours()+"";
- var m = dat.getMinutes()+"";
- var s = dat.getSeconds()+"";
- if (s.length==1) {s="0"+s}
- if (m.length==1) {m="0"+m}
- if (h.length==1) {h="0"+h}
- return h+","+m+","+s;
- }
- var savemasscursor=false;
- var validateEmail = function(email) {
- var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
- return re.test(email);
- }
- function handler (request, response) {
- request.addListener('end', function () {
- fileServer.serve(request, response);
- });
- }
- function checkUrlExists(Url, callback) {
- var http = require('http'),
- url = require('url');
- var options = {
- method: 'HEAD',
- host: url.parse(Url).host,
- port: 80,
- path: url.parse(Url).pathname
- };
- var req = http.request(options, function (r) {
- callback( r.statusCode== 200);});
- req.end();
- }
- var rmdir = function(dir) {
- var list = fs.readdirSync(dir);
- for(var i = 0; i < list.length; i++) {
- var filename = path.join(dir, list[i]);
- var stat = fs.statSync(filename);
- if(filename == "." || filename == "..") {
- } else if(stat.isDirectory()) {
- rmdir(filename);
- } else {
- fs.unlinkSync(filename);
- }
- }
- fs.rmdirSync(dir);
- };
- var WebMAIL = {
- connect: function() {mySqlCo(1,"mail")},
- createAcount: function(pseudo,password,callback) {
- var content =
- 'Dim obApp\n'+
- 'Set obApp = CreateObject("hMailServer.Application")\n'+
- 'Call obApp.Authenticate("Administrator", "salut")\n'+
- 'Dim obDomain\n'+
- 'Set obDomain = obApp.Domains.ItemByName("flammrock.ga")\n'+
- 'Dim obAccount\n'+
- 'Set obAccount = obDomain.Accounts.Add\n'+
- 'obAccount.Address = "'+pseudo+'@flammrock.ga"\n'+
- 'obAccount.Password = "'+password+'"\n'+
- 'obAccount.Active = True\n'+
- 'obAccount.MaxSize = 0\n'+
- 'obAccount.Save';
- fs.writeFile('mail/createUser.vbs',content,function (err){
- if (err) {callback(err);return;}
- exec('cscript.exe /nologo mail/createUser.vbs', function(){
- callback(err);
- });
- });
- },
- delAccount: function(data) {
- var content =
- 'Dim obApp\n'+
- 'Set obApp = CreateObject("hMailServer.Application")\n'+
- 'Call obApp.Authenticate("Administrator", "salut")\n'+
- 'Dim obDomain\n'+
- 'Set obDomain = obApp.Domains.ItemByName("flammrock.ga")\n'+
- 'Dim obAccount\n'+
- 'Set obAccount = obDomain.Accounts.ItemByAddress('+data.pseudoRe+'"@flammrock.ga")\n'+
- 'obDomain.Accounts.DeleteByDBID obAccount.ID';
- fs.writeFile('mail/delUser.vbs',content,function (err){
- if (err) {return;}
- exec('cscript.exe /nologo mail/delUser.vbs', function(){});
- });
- },
- listAllmsg: function(mail,callback) {
- mySqlCo(1,"mail");
- var tmp="";
- var selectQuery = 'SELECT * FROM hm_messages';
- var to="";
- var subject="";
- mySqlClient.query(
- selectQuery,
- function select(error, results, fields) {
- mySqlClient.end();
- if (error) {
- logs.hello.info(error);
- console.log(error);
- return;
- }
- var a=0,b=0;
- var data=[];
- for (var i=0; i<results.length; i++) {
- (function(index){
- fs.stat("mail/Data/flammrock.ga/"+mail+"/"+(results[i].messagefilename).substring(1,3)+"/"+results[i].messagefilename, function(err, stat) {
- if(err+"" == "null") {
- var msgtextplainbool=false,
- msgtexthtmlbool=false;
- var msgtextplain="",
- msgtexthtml="";
- tmp=fs.readFileSync("mail/Data/flammrock.ga/"+mail+"/"+(results[index].messagefilename).substring(1,3)+"/"+results[index].messagefilename, "UTF-8");
- var reg=new RegExp("[\n]+", "g");
- tmp=tmp.split(reg);
- for (var b = 0; b < tmp.length; b++) {
- if ((tmp[b].substring(0,3)).toLowerCase()=='to:') {
- to=tmp[b].substring(4,tmp[b].length-1)+"";
- }
- if ((tmp[b].substring(0,8)).toLowerCase()=='subject:') {
- subject=tmp[b].substring(9,tmp[b].length-1)+"";
- }
- if ((tmp[b].substring(0,24)).toLowerCase()=='content-type: text/plain') {
- msgtextplainbool=true;
- }
- if ((tmp[b].substring(0,23)).toLowerCase()=='content-type: text/html') {
- msgtexthtmlbool=true;
- msgtextplainbool=false;
- }
- if (msgtextplainbool) {
- msgtextplain+="\n"+tmp[b];
- }
- if (msgtexthtmlbool) {
- msgtexthtml+="\n"+tmp[b];
- }
- }
- if ((mail+"@flammrock.ga").toLowerCase()==to.toLowerCase()) {
- data[a]={name:results[index].messagefilename,from:results[index].messagefrom,to:to,subject:subject,msgText:msgtextplain, msghtml:msgtexthtml,idaccount:results[index].messageaccountid,date:results[index].messagecreatetime};
- callback(data);
- a++;
- }
- }
- });
- b++;
- })(i);
- }
- }
- );
- },
- sendMail: function(from,to,subject,message,callback) {
- transporter.sendMail({
- from: from+'@flammrock.ga',
- to: to,
- subject: subject,
- html: message,
- text: message
- }, function(err){
- transporter.close();
- if (err) {
- console.log(err);
- logs.hello.info(err);
- callback();
- }
- });
- }
- };
- var WebFTP = {
- createAccount: function(account,callback) {
- var ftpUserAccount=
- '\r\n['+account.pseudoRe+']\r\n'+
- 'Password='+MD5(account.password)+'\r\n'+
- 'UserDisable=0\r\n'+
- 'VirtualDir=1\r\n'+
- 'Time-Out=0\r\n'+
- 'MaxSpeed=0\r\n'+
- 'MaxUser=0\r\n'+
- 'MaxUserIP=0\r\n'+
- 'EnterMessage=\r\n'+
- 'ExitMessage=\r\n'+
- 'HomePath=D:\\testnode\\ftp\\'+account.pseudoRe+'\\\r\n'+
- 'Dir0=D:\\testnode\\ftp\\'+account.pseudoRe+'\\|DU_EMRY_S__|';
- fs.appendFile('ftp/TYPSoft FTP Server/users.ini', ftpUserAccount, function (err) {
- fs.mkdir('ftp/'+account.pseudoRe,function(e){
- callback(err);
- });
- });
- },
- delAccount: function(data) {
- var allAccount=fs.readFileSync('ftp/TYPSoft FTP Server/users.ini').toString();
- var content="";
- var reg=new RegExp("[\n]+", "g");
- allAccount=allAccount.split(reg);
- var write=true;
- for (var i = 0; i < allAccount.length; i++) {
- if ("["+data.pseudoRe+"]"==allAccount[i].substring(0,allAccount[i].length-1)) {
- write=false;
- }
- if (write) {
- content+=allAccount[i]+"\n";
- } else {
- if ("["+data.pseudoRe+"]"!=allAccount[i].substring(0,allAccount[i].length-1)) {
- if ("["==allAccount[i].substring(0,1)) {
- write=true;
- content+=allAccount[i]+"\n";
- }
- }
- }
- }
- fs.writeFile('ftp/TYPSoft FTP Server/users.ini',content,function (err){
- if (err) {return;}
- if (fs.existsSync("ftp/"+data.pseudoRe)) {
- rmdir("ftp/"+data.pseudoRe);
- }
- });
- }
- };
- var MD5 = function (string) {
- function RotateLeft(lValue, iShiftBits) {
- return (lValue<<iShiftBits) | (lValue>>>(32-iShiftBits));
- }
- function AddUnsigned(lX,lY) {
- var lX4,lY4,lX8,lY8,lResult;
- lX8 = (lX & 0x80000000);
- lY8 = (lY & 0x80000000);
- lX4 = (lX & 0x40000000);
- lY4 = (lY & 0x40000000);
- lResult = (lX & 0x3FFFFFFF)+(lY & 0x3FFFFFFF);
- if (lX4 & lY4) {
- return (lResult ^ 0x80000000 ^ lX8 ^ lY8);
- }
- if (lX4 | lY4) {
- if (lResult & 0x40000000) {
- return (lResult ^ 0xC0000000 ^ lX8 ^ lY8);
- } else {
- return (lResult ^ 0x40000000 ^ lX8 ^ lY8);
- }
- } else {
- return (lResult ^ lX8 ^ lY8);
- }
- }
- function F(x,y,z) { return (x & y) | ((~x) & z); }
- function G(x,y,z) { return (x & z) | (y & (~z)); }
- function H(x,y,z) { return (x ^ y ^ z); }
- function I(x,y,z) { return (y ^ (x | (~z))); }
- function FF(a,b,c,d,x,s,ac) {
- a = AddUnsigned(a, AddUnsigned(AddUnsigned(F(b, c, d), x), ac));
- return AddUnsigned(RotateLeft(a, s), b);
- };
- function GG(a,b,c,d,x,s,ac) {
- a = AddUnsigned(a, AddUnsigned(AddUnsigned(G(b, c, d), x), ac));
- return AddUnsigned(RotateLeft(a, s), b);
- };
- function HH(a,b,c,d,x,s,ac) {
- a = AddUnsigned(a, AddUnsigned(AddUnsigned(H(b, c, d), x), ac));
- return AddUnsigned(RotateLeft(a, s), b);
- };
- function II(a,b,c,d,x,s,ac) {
- a = AddUnsigned(a, AddUnsigned(AddUnsigned(I(b, c, d), x), ac));
- return AddUnsigned(RotateLeft(a, s), b);
- };
- function ConvertToWordArray(string) {
- var lWordCount;
- var lMessageLength = string.length;
- var lNumberOfWords_temp1=lMessageLength + 8;
- var lNumberOfWords_temp2=(lNumberOfWords_temp1-(lNumberOfWords_temp1 % 64))/64;
- var lNumberOfWords = (lNumberOfWords_temp2+1)*16;
- var lWordArray=Array(lNumberOfWords-1);
- var lBytePosition = 0;
- var lByteCount = 0;
- while ( lByteCount < lMessageLength ) {
- lWordCount = (lByteCount-(lByteCount % 4))/4;
- lBytePosition = (lByteCount % 4)*8;
- lWordArray[lWordCount] = (lWordArray[lWordCount] | (string.charCodeAt(lByteCount)<<lBytePosition));
- lByteCount++;
- }
- lWordCount = (lByteCount-(lByteCount % 4))/4;
- lBytePosition = (lByteCount % 4)*8;
- lWordArray[lWordCount] = lWordArray[lWordCount] | (0x80<<lBytePosition);
- lWordArray[lNumberOfWords-2] = lMessageLength<<3;
- lWordArray[lNumberOfWords-1] = lMessageLength>>>29;
- return lWordArray;
- };
- function WordToHex(lValue) {
- var WordToHexValue="",WordToHexValue_temp="",lByte,lCount;
- for (lCount = 0;lCount<=3;lCount++) {
- lByte = (lValue>>>(lCount*8)) & 255;
- WordToHexValue_temp = "0" + lByte.toString(16);
- WordToHexValue = WordToHexValue + WordToHexValue_temp.substr(WordToHexValue_temp.length-2,2);
- }
- return WordToHexValue;
- };
- function Utf8Encode(string) {
- string = string.replace(/\r\n/g,"\n");
- var utftext = "";
- for (var n = 0; n < string.length; n++) {
- var c = string.charCodeAt(n);
- if (c < 128) {
- utftext += String.fromCharCode(c);
- }
- else if((c > 127) && (c < 2048)) {
- utftext += String.fromCharCode((c >> 6) | 192);
- utftext += String.fromCharCode((c & 63) | 128);
- }
- else {
- utftext += String.fromCharCode((c >> 12) | 224);
- utftext += String.fromCharCode(((c >> 6) & 63) | 128);
- utftext += String.fromCharCode((c & 63) | 128);
- }
- }
- return utftext;
- };
- var x=Array();
- var k,AA,BB,CC,DD,a,b,c,d;
- var S11=7, S12=12, S13=17, S14=22;
- var S21=5, S22=9 , S23=14, S24=20;
- var S31=4, S32=11, S33=16, S34=23;
- var S41=6, S42=10, S43=15, S44=21;
- string = Utf8Encode(string);
- x = ConvertToWordArray(string);
- a = 0x67452301; b = 0xEFCDAB89; c = 0x98BADCFE; d = 0x10325476;
- for (k=0;k<x.length;k+=16) {
- AA=a; BB=b; CC=c; DD=d;
- a=FF(a,b,c,d,x[k+0], S11,0xD76AA478);
- d=FF(d,a,b,c,x[k+1], S12,0xE8C7B756);
- c=FF(c,d,a,b,x[k+2], S13,0x242070DB);
- b=FF(b,c,d,a,x[k+3], S14,0xC1BDCEEE);
- a=FF(a,b,c,d,x[k+4], S11,0xF57C0FAF);
- d=FF(d,a,b,c,x[k+5], S12,0x4787C62A);
- c=FF(c,d,a,b,x[k+6], S13,0xA8304613);
- b=FF(b,c,d,a,x[k+7], S14,0xFD469501);
- a=FF(a,b,c,d,x[k+8], S11,0x698098D8);
- d=FF(d,a,b,c,x[k+9], S12,0x8B44F7AF);
- c=FF(c,d,a,b,x[k+10],S13,0xFFFF5BB1);
- b=FF(b,c,d,a,x[k+11],S14,0x895CD7BE);
- a=FF(a,b,c,d,x[k+12],S11,0x6B901122);
- d=FF(d,a,b,c,x[k+13],S12,0xFD987193);
- c=FF(c,d,a,b,x[k+14],S13,0xA679438E);
- b=FF(b,c,d,a,x[k+15],S14,0x49B40821);
- a=GG(a,b,c,d,x[k+1], S21,0xF61E2562);
- d=GG(d,a,b,c,x[k+6], S22,0xC040B340);
- c=GG(c,d,a,b,x[k+11],S23,0x265E5A51);
- b=GG(b,c,d,a,x[k+0], S24,0xE9B6C7AA);
- a=GG(a,b,c,d,x[k+5], S21,0xD62F105D);
- d=GG(d,a,b,c,x[k+10],S22,0x2441453);
- c=GG(c,d,a,b,x[k+15],S23,0xD8A1E681);
- b=GG(b,c,d,a,x[k+4], S24,0xE7D3FBC8);
- a=GG(a,b,c,d,x[k+9], S21,0x21E1CDE6);
- d=GG(d,a,b,c,x[k+14],S22,0xC33707D6);
- c=GG(c,d,a,b,x[k+3], S23,0xF4D50D87);
- b=GG(b,c,d,a,x[k+8], S24,0x455A14ED);
- a=GG(a,b,c,d,x[k+13],S21,0xA9E3E905);
- d=GG(d,a,b,c,x[k+2], S22,0xFCEFA3F8);
- c=GG(c,d,a,b,x[k+7], S23,0x676F02D9);
- b=GG(b,c,d,a,x[k+12],S24,0x8D2A4C8A);
- a=HH(a,b,c,d,x[k+5], S31,0xFFFA3942);
- d=HH(d,a,b,c,x[k+8], S32,0x8771F681);
- c=HH(c,d,a,b,x[k+11],S33,0x6D9D6122);
- b=HH(b,c,d,a,x[k+14],S34,0xFDE5380C);
- a=HH(a,b,c,d,x[k+1], S31,0xA4BEEA44);
- d=HH(d,a,b,c,x[k+4], S32,0x4BDECFA9);
- c=HH(c,d,a,b,x[k+7], S33,0xF6BB4B60);
- b=HH(b,c,d,a,x[k+10],S34,0xBEBFBC70);
- a=HH(a,b,c,d,x[k+13],S31,0x289B7EC6);
- d=HH(d,a,b,c,x[k+0], S32,0xEAA127FA);
- c=HH(c,d,a,b,x[k+3], S33,0xD4EF3085);
- b=HH(b,c,d,a,x[k+6], S34,0x4881D05);
- a=HH(a,b,c,d,x[k+9], S31,0xD9D4D039);
- d=HH(d,a,b,c,x[k+12],S32,0xE6DB99E5);
- c=HH(c,d,a,b,x[k+15],S33,0x1FA27CF8);
- b=HH(b,c,d,a,x[k+2], S34,0xC4AC5665);
- a=II(a,b,c,d,x[k+0], S41,0xF4292244);
- d=II(d,a,b,c,x[k+7], S42,0x432AFF97);
- c=II(c,d,a,b,x[k+14],S43,0xAB9423A7);
- b=II(b,c,d,a,x[k+5], S44,0xFC93A039);
- a=II(a,b,c,d,x[k+12],S41,0x655B59C3);
- d=II(d,a,b,c,x[k+3], S42,0x8F0CCC92);
- c=II(c,d,a,b,x[k+10],S43,0xFFEFF47D);
- b=II(b,c,d,a,x[k+1], S44,0x85845DD1);
- a=II(a,b,c,d,x[k+8], S41,0x6FA87E4F);
- d=II(d,a,b,c,x[k+15],S42,0xFE2CE6E0);
- c=II(c,d,a,b,x[k+6], S43,0xA3014314);
- b=II(b,c,d,a,x[k+13],S44,0x4E0811A1);
- a=II(a,b,c,d,x[k+4], S41,0xF7537E82);
- d=II(d,a,b,c,x[k+11],S42,0xBD3AF235);
- c=II(c,d,a,b,x[k+2], S43,0x2AD7D2BB);
- b=II(b,c,d,a,x[k+9], S44,0xEB86D391);
- a=AddUnsigned(a,AA);
- b=AddUnsigned(b,BB);
- c=AddUnsigned(c,CC);
- d=AddUnsigned(d,DD);
- }
- var temp = WordToHex(a)+WordToHex(b)+WordToHex(c)+WordToHex(d);
- return temp.toUpperCase();
- }
- io.on('connection', function (client) {
- client.check=false;
- client.tchatco=false;
- client.cursorsave=false;
- client.cursorclear=false;
- client.connectforum=false;
- client.webmail=false;
- client.profil=false;
- client.cursor=false;
- client.salon="undefined";
- client.passwordJoinSalon="undefined";
- client.on('Servinscription', function(account) {
- var msg="",err=false;
- if (ent.encode(account.pseudo)!="") {
- if (ent.encode(account.mail)!="") {
- if (validateEmail(ent.encode(account.mail))) {
- if (account.password!="") {
- if (account.cpassword!="") {
- if (account.password==account.cpassword) {
- account.pseudoRe=((account.pseudo).replace(/[^A-Za-z0-9_.]/gm,"")).toLowerCase();
- mySqlCo(1,"flammrock");
- var selectQuery = 'SELECT * FROM membres';
- mySqlClient.query(
- selectQuery,
- function select(error, results, fields) {
- mySqlClient.end();
- if (error) {
- logs.hello.info(error);
- console.log(error);
- client.emit("ServRinscription",{msg: 'Une erreur est survenue !', err: true});
- return;
- }
- for (var i=0; i<results.length; i++) {
- if (results[i].Mpseudo==ent.encode(account.pseudo) || results[i].Mmail==ent.encode(account.mail) || results[i].pseudoRe==account.pseudoRe) {
- err=true;
- break;
- }
- }
- if (err) {
- msg="Ce compte existe déjà !";
- } else {
- mySqlCo(1,"flammrock");
- msg="Votre compte a bien été créé !",err=false;
- WebFTP.createAccount(account, function(err) {
- if (err) {
- msg="Imposiible de créer votre compte ftp !",err=true;
- client.emit("ServRinscription",{msg: msg, err: err});
- WebFTP.delAccount(account);
- return;
- } else {
- WebMAIL.createAcount(ent.encode(account.pseudoRe),account.password,function(err){
- if (err) {
- msg="Impossible de créer votre compte mail !",err=true;
- client.emit("ServRinscription",{msg: msg, err: err});
- WebMAIL.delAccount(account);
- return;
- }
- mySqlClient.query('INSERT INTO membres SET ?', { Mpseudo: ent.encode(account.pseudo), Mmail: ent.encode(account.mail), Mpassword: account.password, Mlevel: 'membre', pseudoRe: account.pseudoRe }, function(erre,res){
- if (erre) {
- msg="Votre pseudo contient des caractères illégaux !",err=true;
- client.emit("ServRinscription",{msg: msg, err: err});
- WebFTP.delAccount(account);
- WebMAIL.delAccount(account);
- return;
- }
- logs.hello.info('[SERVER] '+account.pseudo+' vient de s\'inscrire !');
- console.log('['+'SERVER'.rainbow+'] '+(account.pseudo).blue+' vient de s\'inscrire !'.green);
- });
- });
- }
- });
- }
- client.emit("ServRinscription",{msg: msg, err: err});
- }
- );
- } else {
- msg="Le mot de passe de confirmation ne correspond pas !",err=true;
- }
- } else {
- msg="Veuillez confirmer votre mot de passe !",err=true;
- }
- } else {
- msg="Veuillez indiquer un mot de passe !",err=true;
- }
- } else {
- msg="Veuillez indiquer un email valide !",err=true;
- }
- } else {
- msg="Veuillez indiquer un email !",err=true;
- }
- } else {
- msg="Veuillez indiquer un pseudo !",err=true;
- }
- });
- client.on('Servconnexion', function(account) {
- var msg="Une erreur est survenue :(",err=true;
- if (ent.encode(account.pseudo)!="") {
- if (account.password!="") {
- mySqlCo(1,"flammrock");
- var selectQuery = 'SELECT * FROM membres';
- mySqlClient.query(
- selectQuery,
- function select(error, results, fields) {
- if (error) {
- logs.hello.info(error);
- console.log(error);
- mySqlClient.end();
- return;
- }
- for (var i=0; i<results.length; i++) {
- if (results[i].Mpseudo==ent.encode(account.pseudo) && results[i].Mpassword==account.password) {
- msg="Félicitation ! Vous êtes connectés !",err=false;
- }
- }
- if (err) {
- msg="Le pseudo ou/et le mot de passe ne correspondent pas !";
- } else {
- logs.hello.info('[SERVER] '+account.pseudo+' vient de se connecter !');
- console.log('['+'SERVER'.rainbow+'] '+(account.pseudo).blue+' vient de se connecter !'.green);
- }
- client.emit("ServRconnexion",{msg: msg, err: err, pseudo: ent.encode(account.pseudo)});
- mySqlClient.end();
- }
- );
- } else {
- msg="Veuillez indiquer un mot de passe !",err=true;
- client.emit("ServRconnexion",{msg: msg, err: err, pseudo: ent.encode(account.pseudo)});
- }
- } else {
- msg="Veuillez indiquer un pseudo !",err=true;
- client.emit("ServRconnexion",{msg: msg, err: err, pseudo: ent.encode(account.pseudo)});
- }
- });
- client.on('ServDeconnexion', function(account) {
- logs.hello.info('[SERVER] '+account.pseudo+' vient de se déconnecter !');
- console.log('['+'SERVER'.rainbow+'] '+(account.pseudo).blue+' vient de se déconnecter !'.red);
- });
- client.on('profilConnect', function(data) {
- client.profil=true;
- client.pseudo=data;
- client.salon="undefined";
- console.log('['+'PROFIL'.magenta+'] -'+NOW()+'- '+(client.pseudo).blue+' vient de se connecter !'.green);
- mySqlCo(1,"flammrock");
- var selectQuery = 'SELECT * FROM membres';
- mySqlClient.query(
- selectQuery,
- function select(error, results, fields) {
- mySqlClient.end();
- if (error) {
- logs.hello.info(error);
- console.log(error);
- return;
- }
- for (var i = 0; i < results.length; i++) {
- if (results[i].Mpseudo==client.pseudo) {
- client.emit('RprofilConnect', {password: results[i].Mpassword, mail: results[i].Mmail, pseudo: results[i].pseudoRe});
- break;
- }
- }
- return;
- }
- );
- });
- client.on('GetAppInfo', function(app) {
- var info='';
- if (app.name=="chat") {
- info='<b>Nom :</b> chat<br /><b>Version :</b> 0.4.2<br /><b>Type :</b> Multi<br /><b>Créateur :</b> Flammrock<br /><b>Publication :</b> 24/02/2017<hr /><button type="button" onclick="document.location.replace(\'\'+document.location.origin+\'/application/'+app.name+'\');" class="btn btn-lg btn-primary">>>> Chat</button>';
- } else if (app.name=="cursor") {
- info='<b>Nom :</b> Paint Multijoueur<br /><b>Version :</b> 2.0<br /><b>Type :</b> Jeu Multijoueur<br /><b>Créateur :</b> Flammrock<br /><b>Publication :</b> 25/02/2017<br /><b>Mise à jour :</b> 14/03/2017<hr /><button type="button" onclick="document.location.replace(\'\'+document.location.origin+\'/application/'+app.name+'\');" class="btn btn-lg btn-primary">>>> Jouer à Cursor</button>';
- } else if (app.name=="webmail") {
- info='<b>Nom :</b> WebMail<br /><b>Version :</b> 0.5.3<br /><b>Type :</b> Multi<br /><b>Créateur :</b> Flammrock<br /><b>Publication :</b> 09/03/2017<hr /><button type="button" onclick="document.location.replace(\'http://mail.flammrock.ga\');" class="btn btn-lg btn-primary">>>> Fmail</button>';
- } else {
- info='<b>Nom :</b> <span style="#07f">Unknown</span><br /><b>Version :</b> <span style="#07f">Unknown</span><br /><b>Type :</b> <span style="#07f">Unknown</span><br /><b>Créateur :</b> <span style="#07f">Unknown</span><br /><b>Publication :</b> <span style="#07f">Unknown</span><hr /><button type="button" class="btn btn-lg btn-primary">>>> Chat</button>';
- }
- client.emit('RGetAppInfo', {name: app.name, info: info});
- });
- client.on('TchatConnect', function(get) {
- if (!client.tchatco) {
- client.tchatco=true;
- client.pseudo = get.pseudo;
- client.salon = get.salon;
- client.onwrite=false;
- var level="";
- var password="Unknown";
- var NameSaloonname="";
- mySqlCo(1,"flammrock");
- var selectQuery = 'SELECT * FROM salon';
- mySqlClient.query(
- selectQuery,
- function select(error, results, fields) {
- mySqlClient.end();
- if (error) {
- logs.chat.info(error);
- console.log(error);
- return;
- }
- for (var i=0; i<results.length; i++) {
- if ((results[i].Sidsalon).toLowerCase()==(get.salon).toLowerCase()) {
- password=results[i].Spassword;
- NameSaloonname=results[i].Snamesalon;
- }
- }
- if (password!=get.salonPassword) {
- client.salon = "undefined";
- client.passwordJoinSalon = "undefined";
- client.emit('RchangeU');
- } else {
- mySqlCo(1,"flammrock");
- var selectQueryy = 'SELECT * FROM salon_'+client.salon;
- mySqlClient.query(
- selectQueryy,
- function select(error, results, fields) {
- mySqlClient.end();
- if (error) {
- logs.chat.info(error);
- console.log(error);
- client.salon = "undefined";
- client.emit('RchangeU');
- } else {
- mySqlCo(1,"flammrock");
- var selectQuery = 'SELECT * FROM membres';
- mySqlClient.query(
- selectQuery,
- function select(errora, resultsa, fieldsa) {
- if (errora) {
- logs.hello.info(errora);
- console.log(errora);
- mySqlClient.end();
- return;
- }
- mySqlClient.end();
- setTimeout(function(){
- var onecheckuserdisplatlistlevel=false;
- for (var i=0; i<results.length; i++) {
- for (var a=0; a<resultsa.length; a++) {
- if (resultsa[a].Mpseudo==results[i].pseudo) {
- level=resultsa[a].Mlevel;
- }
- }
- if (results[i].pseudo==client.pseudo && !onecheckuserdisplatlistlevel) {
- onecheckuserdisplatlistlevel=true;
- var connectcoloruser='#333';
- if (level=='membre') {
- connectcoloruser='#06f';
- } else {
- connectcoloruser='#f00';
- }
- if (salonUserconnect[client.salon]=='undefined' || salonUserconnect[client.salon]=='' || typeof salonUserconnect[client.salon]=="undefined") {
- salonUserconnect[client.salon]="[<span style='color: "+connectcoloruser+"'>"+level+"</span>] "+client.pseudo;
- } else {
- salonUserconnect[client.salon]+=";[<span style='color: "+connectcoloruser+"'>"+level+"</span>] "+client.pseudo;
- }
- if (salonUserconnect[client.salon]!='undefined' || salonUserconnect[client.salon]!='' || typeof salonUserconnect[client.salon]!="undefined") {
- var reg=new RegExp("[;]+", "g");
- var salonUserconnectCurrent=salonUserconnect[client.salon].split(reg);
- } else {
- salonUserconnectCurrent=['error'];
- }
- }
- if (results[i].pseudo==client.pseudo) {
- client.emit('Rchat', {date:results[i].datetc, message:results[i].message, user:results[i].pseudo+" (vous)", salon:client.salon, level:level});
- } else {
- client.emit('Rchat', {date:results[i].datetc, message:results[i].message, user:results[i].pseudo, salon:client.salon, level:level});
- }
- }
- var date_=NOW();
- logs.chat.info('[Tchat]['+client.salon+'] -'+client.pseudo+' vient de se connecter !');
- console.log('['+'Tchat'.magenta+']['+(client.salon).green+'] -'+date_+'- '+(client.pseudo).blue+' vient de se connecter !'.green);
- client.emit('RTchatConnect', {type:"vous", pseudo:client.pseudo, salon:client.salon, nameSalon:NameSaloonname, password:get.salonPassword, listUserConnected:salonUserconnectCurrent});
- client.broadcast.emit('RTchatConnect', {type:"Client", pseudo:client.pseudo, salon:client.salon, nameSalon:NameSaloonname, password:get.salonPassword, listUserConnected:salonUserconnectCurrent});
- client.tchatco=false;
- },400);
- }
- );
- }
- }
- );
- }
- }
- );
- }
- });
- client.on('TchatCheckSalon', function() {
- if (!client.check) {
- client.check=true;
- var data={},bdata=[],a=0;
- mySqlCo(1,"flammrock");
- var selectQuery = 'SELECT * FROM salon';
- mySqlClient.query(
- selectQuery,
- function select(error, results, fields) {
- if (error) {
- logs.chat.info(error);
- console.log(error);
- mySqlClient.end();
- return;
- }
- for (var i=0; i<results.length; i++) {
- if (typeof data[results[i].Snamesalon] == "undefined") {
- if (results[i].Spassword=="") {
- data[results[i].Snamesalon]=true;
- bdata[a]={name: results[i].Snamesalon, id: results[i].Sidsalon};
- a++;
- }
- }
- }
- client.emit('RTchatCheckSalon', bdata);
- mySqlClient.end();
- client.check=false;
- }
- );
- }
- });
- client.on('TchatCreateSalon', function(get) {
- var date_=NOW();
- var IDsaloon="public_"+ent.encode(get.idsalon);
- var msg="Votre salon a été créé !",err=false;
- if (ent.encode(get.password)!="") {IDsaloon="private_"+ent.encode(get.idsalon);}
- mySqlCo(1,"flammrock");
- var selectQuery = 'SELECT * FROM salon';
- mySqlClient.query(
- selectQuery,
- function select(error, results, fields) {
- if (error) {
- logs.chat.info(error);
- console.log(error);
- mySqlClient.end();
- return;
- }
- for (var i=0; i<results.length; i++) {
- if (results[i].Snamesalon == ent.encode(get.namesalon) || results[i].Sidsalon == IDsaloon) {
- msg="Ce salon existe déjà !",err=true;
- }
- }
- if (!err) {
- logs.chat.info('[Tchat] - '+get.pseudo+ ' : vient de créer un salon de chat -> ('+IDsaloon+")");
- console.log('['+'Tchat'.magenta+'] -'+date_+"- "+(get.pseudo).blue + ' : vient de créer un salon de chat ('+IDsaloon+")");
- mySqlClient.query('INSERT INTO salon SET ?', { Spseudo: ent.encode(get.pseudo), Sidsalon: IDsaloon, Snamesalon: ent.encode(get.namesalon), Spassword: ent.encode(get.password) }, function(err,res){});
- var tableDef = 'CREATE TABLE IF NOT EXISTS salon_'+IDsaloon+' ('+
- 'id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,'+
- 'message VARCHAR(300) NOT NULL,'+
- 'pseudo VARCHAR(16) NOT NULL,'+
- 'datetc VARCHAR(45) NOT NULL,'+
- 'PRIMARY KEY (id)'+
- ') ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1';
- mySqlClient.query(tableDef, function select(error, results) {
- if (error) logs.chat.info(error);
- });
- }
- client.emit('RTchatCreateSalon',{msg:msg,err:err});
- mySqlClient.end();
- }
- );
- });
- client.on('TchatJoinSalon', function(get) {
- var data={err:true,salon:"none",msg:'Une erreur est survenue !'};
- var ok=true;
- if (get.id!="") {
- if (get.password!="") {
- passwordJoinSalon=get.password;
- mySqlCo(1,"flammrock");
- var selectQuery = 'SELECT * FROM salon';
- mySqlClient.query(
- selectQuery,
- function select(error, results, fields) {
- mySqlClient.end();
- if (error) {
- logs.chat.info(error);
- console.log(error);
- data.msg='Une erreur est survenue dans la base de donnée !';
- return;
- }
- for (var i=0; i<results.length; i++) {
- if (results[i].Sidsalon=='private_'+get.id && results[i].Spassword==get.password) {
- data={err:false,salon:'private_'+get.id,msg:'success !'};
- ok=false;
- client.emit('RTchatJoinSalon', {err:false,salon:'private_'+get.id,msg:'success !'});
- }
- }
- if (ok) {client.emit('RTchatJoinSalon', data)}
- }
- );
- } else {
- data.msg='Veuillez indiquer le mot de passe du salon à rejoindre !',data.err=true;
- client.emit('RTchatJoinSalon', data);
- }
- } else {
- data.msg='Veuillez indiquer l\'id du salon à rejoindre !',data.err=true;
- client.emit('RTchatJoinSalon', data);
- }
- });
- client.on('Tchat', function(get) {
- if (typeof client.pseudo != "undefined" && client.salon!="undefined" && !client.onwrite) {
- client.onwrite=true;
- var level="";
- var date_=NOW();
- mySqlCo(1,"flammrock");
- var selectQuery = 'SELECT * FROM membres';
- mySqlClient.query(
- selectQuery,
- function select(error, results, fields) {
- if (error) {
- logs.hello.info(error);
- console.log(error);
- mySqlClient.end();
- return;
- }
- for (var i=0; i<results.length; i++) {
- if (results[i].Mpseudo==client.pseudo) {
- level=results[i].Mlevel;
- }
- }
- client.emit('Rchat', {date: date_, message:ent.encode(get), user:client.pseudo+" (vous)", salon: client.salon, level: level});
- client.broadcast.emit('Rchat', {date: date_, message:ent.encode(get), user:client.pseudo, salon: client.salon, level:level});
- logs.chat.info('[Tchat]['+client.salon+'] - '+client.pseudo+' : '+get);
- logs.admin.info('[Tchat]['+client.salon+'] - '+client.pseudo+' : '+get);
- console.log('['+'Tchat'.magenta+']['+(client.salon).green+'] -'+date_+"- ["+level+"] "+(client.pseudo).blue + ' : ' + get);
- var salooon='salon_'+client.salon;
- mySqlClient.query('INSERT INTO '+salooon+' SET ?', { datetc: date_, message: ent.encode(get), pseudo: client.pseudo }, function(err,res){
- if (err) {
- logs.chat.info(err);
- console.log(err);
- }
- mySqlClient.end();
- client.onwrite=false;
- });
- }
- );
- }
- });
- client.on('TchatMySaloonAdd', function(data) {
- var pseudoRe="";
- if (client.pseudo!="") {
- err=true;
- mySqlCo(1,"flammrock");
- var selectQuery = 'SELECT * FROM membres';
- mySqlClient.query(
- selectQuery,
- function select(error, results, fields) {
- if (error) {
- logs.hello.info(error);
- console.log(error);
- mySqlClient.end();
- return;
- }
- for (var i=0; i<results.length; i++) {
- if (results[i].Mpseudo==client.pseudo) {
- pseudoRe=(results[i].pseudoRe).replace(new RegExp("[.]+","g"),"");
- err=false;
- }
- }
- if (!err && pseudoRe!="") {
- var tableDef = 'CREATE TABLE IF NOT EXISTS salonList_'+pseudoRe+' ('+
- 'id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,'+
- 'salon VARCHAR(300) NOT NULL,'+
- 'Nname VARCHAR(300) NOT NULL,'+
- 'Mpassword VARCHAR(30) NOT NULL,'+
- 'PRIMARY KEY (id)'+
- ') ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1';
- mySqlClient.query(tableDef, function select(errors, results) {
- var selectQuery = 'SELECT * FROM salonList_'+pseudoRe+'';
- mySqlClient.query(
- selectQuery,
- function select(error, result, fields) {
- if (error) {
- mySqlClient.end();
- return;
- }
- err=false;
- for (var i = 0; i < result.length; i++) {
- if (result[i].salon==data.salon) {
- err=true;
- }
- }
- if (!err) {
- mySqlClient.query('INSERT INTO salonList_'+pseudoRe+' SET ?', { salon: data.salon, Nname: data.name, Mpassword: data.password }, function(erre,res){
- if (erre) {
- mySqlClient.end();
- return;
- }
- mySqlClient.end();
- });
- } else {
- mySqlClient.end();
- }
- }
- );
- });
- } else {
- mySqlClient.end();
- }
- }
- );
- }
- });
- client.on('TchatMySaloonList', function(data) {
- mySqlCo(1,"flammrock");
- client.pseudo=data.pseudo;
- var pseudoRe="",err=true;
- var data=[];
- var selectQuery = 'SELECT * FROM membres';
- mySqlClient.query(
- selectQuery,
- function select(error, resultss, fields) {
- if (error) {
- mySqlClient.end();
- return;
- }
- for (var i=0; i<resultss.length; i++) {
- if (resultss[i].Mpseudo==client.pseudo) {
- pseudoRe=(resultss[i].pseudoRe).replace(new RegExp("[.]+","g"),"");
- err=false;
- }
- }
- if (pseudoRe!="" && !err) {
- var selectQuery = 'SELECT * FROM salonList_'+pseudoRe;
- mySqlClient.query(
- selectQuery,
- function select(errors, results, fields) {
- if (errors) {
- mySqlClient.end();
- return;
- }
- for (var i = 0; i < results.length; i++) {
- data[i]={id:results[i].salon,name:results[i].Nname,password:results[i].Mpassword};
- }
- client.emit('RTchatMySaloonList', data);
- }
- );
- } else {
- mySqlClient.end();
- return;
- }
- }
- );
- });
- client.on('ForumConnect', function() {
- if (!client.connectforum) {
- var date_=NOW();
- mySqlCo(1,"flammrock");
- var selectQuery = 'SELECT * FROM forum_categorie';
- mySqlClient.query(
- selectQuery,
- function select(error, results, fields) {
- mySqlClient.end();
- if (error) {
- logs.hello.info(error);
- console.log(error);
- return;
- }
- client.connectforum=true;
- }
- );
- }
- });
- client.on('isup', function(url) {
- checkUrlExists(url,function(res){
- client.emit('Risup',{url:url,res:res});
- });
- });
- client.on('cursorConnect', function (data) {
- var date_=NOW();
- client.pseudo=data;
- client.cursor=true;
- console.log('['+'CURSOR'.magenta+'] -'+date_+'- '+(client.pseudo).blue+'['+client.id+'] vient de se connecter !'.green);
- client.broadcast.emit('RcursorConnect');
- });
- client.on('cursorMoving', function (data) {
- client.broadcast.emit('RcursorMoving', data);
- });
- client.on('cursorSave', function (data) {
- ctx=data.ctx;
- var base64Data = ctx.replace(/^data:image\/png;base64,/, "");
- require("fs").writeFile("views/cursor.png", base64Data, 'base64', function(err) {
- client.broadcast.emit('Refresh', {pseudo: data.pseudo, message: data.pseudo+' a sauvegardé le dessin !'});
- client.emit('Refresh', {pseudo: "Vous", message: 'Vous avez sauvegardé le dessin !'});
- console.log('['+'CURSOR'.magenta+'] -'+NOW()+'- '+(client.pseudo).blue+'['+client.id+'] a sauvegardé le dessin !'.green);
- });
- });
- client.on('cursorClear', function (data) {
- ctx="R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7";
- require("fs").writeFile("views/cursor.png", ctx, 'base64', function(err) {
- client.broadcast.emit('Refresh', {pseudo: data.pseudo, message: data.pseudo+' a effacé le dessin !'});
- client.emit('Refresh', {pseudo: "Vous", message: 'Vous avez sauvegardé le dessin !'});
- console.log('['+'CURSOR'.magenta+'] -'+NOW()+'- '+(client.pseudo).blue+'['+client.id+'] a effacé le dessin !'.green);
- });
- });
- client.on('cursorLoadImg', function (data) {
- client.broadcast.emit('Refresh', {pseudo: data.pseudo, message: data.pseudo+' a chargé un dessin !'});
- });
- client.on('WEBmailConnect', function (data) {
- client.pseudo=data;
- client.salon="undefined";
- client.webmail=true;
- var date_=NOW();
- var pseudoRe="[ERROR]";
- console.log('['+'WEBMAIL'.magenta+'] -'+date_+'- '+(client.pseudo).blue+' vient de se connecter !'.green);
- mySqlCo(1,"flammrock");
- var selectQuery = 'SELECT * FROM membres';
- mySqlClient.query(
- selectQuery,
- function select(error, results, fields) {
- mySqlClient.end();
- if (error) {
- logs.hello.info(error);
- console.log(error);
- return;
- }
- for (var i = 0; i < results.length; i++) {
- if (results[i].Mpseudo==client.pseudo) {
- pseudoRe=results[i].pseudoRe;
- break;
- }
- }
- WebMAIL.listAllmsg(pseudoRe, function(res){
- client.emit('RWEBmailConnect', res);
- });
- }
- );
- });
- client.on('WEBmailsendMail', function (data) {
- var err=false,msg="";
- if (ent.encode(data.pseudo)!="") {
- if (ent.encode(data.to)!="") {
- if (validateEmail(ent.encode(data.to))) {
- if (data.subject!="") {
- if (data.message!="") {
- err=false,msg="Votre message a bien été envoyé :D";
- WebMAIL.sendMail(ent.encode(data.pseudo),ent.encode(data.to),data.subject,data.message,function(){
- err=true,msg="Une erreur est survenue :'(";
- });
- client.emit('RWEBmailsendMail', {err:err,msg:msg});
- } else {
- err=true,msg="Veuillez indiquer un message !";
- client.emit('RWEBmailsendMail', {err:err,msg:msg});
- return;
- }
- } else {
- err=true,msg="Veuillez indiquer un sujet !";
- client.emit('RWEBmailsendMail', {err:err,msg:msg});
- return;
- }
- } else {
- err=true,msg="Ce mail n'est pas valide !";
- client.emit('RWEBmailsendMail', {err:err,msg:msg});
- return;
- }
- } else {
- err=true,msg="Veuillez indiquer un mail !";
- client.emit('RWEBmailsendMail', {err:err,msg:msg});
- return;
- }
- } else {
- err=true,msg="Une erreur est survenue, veuillez rafraîchir la page !";
- client.emit('RWEBmailsendMail', {err:err,msg:msg});
- return;
- }
- });
- client.on('FTPConnect', function (data) {
- var date_=NOW();
- var err=false;
- var password=false;
- client.pseudo = data;
- client.salon="undefined";
- logs.chat.info('[FTP] -'+client.pseudo+' : connexion !');
- console.log('['+'FTP'.magenta+'] -'+date_+'- '+(client.pseudo).blue+' : connexion !'.green);
- var pseudoRe="[ERROR]";
- mySqlCo(1,"flammrock");
- var selectQuery = 'SELECT * FROM membres';
- mySqlClient.query(
- selectQuery,
- function select(error, results, fields) {
- mySqlClient.end();
- if (error) {
- logs.hello.info(error);
- console.log(error);
- err=true;
- return;
- }
- for (var i=0; i<results.length; i++) {
- if (results[i].Mpseudo==client.pseudo) {
- password=results[i].Mpassword;
- pseudoRe=results[i].pseudoRe;
- }
- }
- if (password!==false && !err) {
- var Ftp = new JSFtp({
- host: "flammrock.ga",
- port: 21,
- user: pseudoRe,
- pass: password
- });
- Ftp.list("", function(err, res) {
- var reg=new RegExp("[\n]+", "g");
- var response = res.split(reg);
- response[response.length]="del";
- response[response.length-1]="del";
- response[1]="del";
- response[0]="del";
- var responses=[];
- var a=0;
- for (var i = 0; i < response.length; i++) {
- if (response[i].substring(0,3)=="drw") {
- responses[a]=response[i].split(/\s+/);
- responses[a]={name:response[a][response[a].length-2],type:'folder'};
- a++;
- } else if (response[i].substring(0,3)=="-rw") {
- responses[a]=response[i].split(/\s+/);
- responses[a]={name:responses[a][responses[a].length-2],type:'file'};
- a++;
- }
- }
- client.emit('RFTPConnect', {res:responses,err:err});
- logs.chat.info('[FTP] -'+client.pseudo+'['+pseudoRe+'] : affichage de \'./\' avec succès !');
- console.log('['+'FTP'.magenta+'] -'+date_+'- '+(client.pseudo).blue+'['+pseudoRe.blue+'] : affichage de \'./\' avec succès !'.green);
- Ftp.raw("quit", function(err, data) {
- if (err) return console.error(err);
- logs.chat.info('[FTP] -'+client.pseudo+'['+pseudoRe+'] : Fin des requêtes !');
- console.log('['+'FTP'.magenta+'] -'+date_+'- '+(client.pseudo).blue+'['+pseudoRe.blue+'] : Fin des requêtes !'.green);
- });
- });
- } else {
- client.emit('RFTPConnect', {msg:'Une erreur est survenue',err:err});
- }
- }
- );
- });
- client.on('disconnect', function(data) {
- var date_=NOW();
- if (typeof client.pseudo != "undefined" && client.salon!="undefined") {
- var reg=new RegExp("[;]+", "g");
- var salonUserconnectCurrent=(salonUserconnect[client.salon].replace(/\[(.*?)\]/ig,""));
- salonUserconnectCurrent=salonUserconnectCurrent.split(reg);
- var salonUserconnectCurrentRe="";
- var temp=salonUserconnect[client.salon].split(reg);
- for (var i = 0; i < salonUserconnectCurrent.length; i++) {
- if (salonUserconnectCurrent[i].substring(1)!=client.pseudo) {
- if (salonUserconnectCurrentRe=="") {
- salonUserconnectCurrentRe+=temp[i];
- } else {
- salonUserconnectCurrentRe+=";"+temp[i];
- }
- }
- }
- var salonUserconnectCurrentRe_=salonUserconnectCurrentRe.split(reg);
- salonUserconnect[client.salon]=salonUserconnectCurrentRe_
- client.emit('RTchatdisconnect', {type:"vous", pseudo:client.pseudo, salon:client.salon, listUserConnected:salonUserconnectCurrentRe_});
- client.broadcast.emit('RTchatdisconnect', {type:"Client", pseudo:client.pseudo, salon:client.salon, listUserConnected:salonUserconnectCurrentRe_});
- logs.chat.info('[Tchat]['+client.salon+'] - '+client.pseudo+' vient de se déconnecter !');
- console.log('['+'Tchat'.magenta+']['+(client.salon).green+'] -'+date_+'- '+(client.pseudo).blue+' vient de se déconnecter !'.red);
- client.pseudo="undefined";
- client.salon="undefined";
- passwordJoinSalon="";
- }
- if (client.webmail) {
- console.log('['+'WEBMAIL'.magenta+'] -'+date_+'- '+(client.pseudo).blue+' vient de se déconnecter !'.green);
- }
- if (client.cursor) {
- console.log('['+'CURSOR'.magenta+'] -'+date_+'- '+(client.pseudo).blue+'['+client.id+'] vient de se déconnecter !'.green);
- }
- if (client.profil) {
- console.log('['+'PROFIL'.magenta+'] -'+date_+'- '+(client.pseudo).blue+' vient de se déconnecter !'.green);
- }
- });
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement