Advertisement
Guest User

Untitled

a guest
Aug 13th, 2017
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var http = require('http');
  2. var net = require('net');
  3. var lines = ["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""];
  4. var times = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];
  5. var irc = {
  6.     s: {},
  7.     nick: 'echobot',
  8.     nickpass: 'lockdown',
  9.     user: 'echobot echobot nfdb.net EchoBot',
  10.     server: 'chat.freenode.net',
  11.     port: 6666,
  12.     chan: 'fmcg',
  13.     cmd: ',',
  14.     priv: '+'
  15. }
  16.  
  17. http.createServer(function (req, res) {
  18.     res.writeHead(200, {'Content-Type': 'text/plain'});
  19.     for (line in lines) {
  20.         res.write(lines[line]+"\n");
  21.     }
  22.     //res.write('Request URL was: '+req.url);
  23.     res.end('\n');
  24. }).listen(80, 'nfd.ath.cx');
  25. console.log('HTTP Server Running');
  26. console.log('TCP Server Listening');
  27. irc.s = new net.Socket();
  28. irc.s.addListener('data', ircdata);
  29. irc.s.addListener('connect', ircconnect);
  30. irc.s.addListener('end', ircdisconnect);
  31. irc.s.setEncoding('ascii');
  32.  
  33. var notconnected = false;
  34. do {
  35.     notconnected = false;
  36.     try {
  37.         irc.s.connect(irc.port, irc.server);
  38.         console.log('Connecting to IRC server...');
  39.     } catch (e) {
  40.         console.log('Error connecting to server... '+e);
  41.         console.log('Retrying connection...');
  42.         notconnected = true;
  43.     }
  44. } while (notconnected == true);
  45.  
  46. function ircconnect() {
  47.     console.log('IRC Connection Established.');
  48.     irc.s.write('NICK '+irc.nick+'\n');
  49.     irc.s.write('USER '+irc.user+'\n');
  50.     irc.s.write('JOIN #'+irc.chan+'\n');
  51. }
  52.  
  53. function ircdisconnect() {
  54.     console.log('Connection lost.');
  55.     irc.s.connect(irc.port, irc.server);
  56.     console.log('Reconnecting...');
  57. }
  58.  
  59. function ircdata(data) {
  60.     //console.log('Data recieved: '+data.trim());
  61.     var lines = data.split('\n');
  62.     for (var i = 0; i < lines.length; i++) {
  63.         processline(lines[i]);
  64.     }
  65. }
  66.  
  67. function processline(data) {
  68.     var dat = data.split(' ');
  69.     var musr = {
  70.         nick: dat[0].split('!')[0],
  71.         host: dat[0].split('!')[1]
  72.     };
  73.     switch (dat[0]) {
  74.         case 'PING':
  75.             irc.s.write('PONG '+dat[1].substr(1)+'\n');
  76.             console.log('Pong!');
  77.             break;
  78.         default:
  79.             switch (dat[1]) {
  80.                 case 'PRIVMSG':
  81.                     var msg = dat.slice(3);
  82.                     msg = msg.join(' ');
  83.                     msg = msg.trim().substr(1);
  84.                     if (dat[3].substr(1,1) == irc.cmd) {
  85.                         console.log('Command from '+musr.nick+': "'+dat[3].substr(1).trim()+'"');
  86.                         // Send a command to the tile page.
  87.                        
  88.                     } else {
  89.                         console.log('Message from '+musr.nick.substr(1)+': "'+msg+'"');
  90.                         lines.splice(0,1);
  91.                         times.splice(0,1);
  92.                         lines.push(musr.nick.substr(1)+': '+msg);
  93.                         var d = new Date();
  94.                         times.push(d.getTime());
  95.                     }
  96.                     break;
  97.                 case '372': // MOTD
  98.                     break;
  99.                 case '433': // Nick in use
  100.                     irc.s.write('PRIVMSG nickserv IDENTIFY '+irc.nick+' '+irc.nickpass+'\n');
  101.                     irc.s.write('PRIVMSG nickserv GHOST\n');
  102.                     irc.s.write('NICK '+irc.nick+'\n');
  103.                     irc.s.write('USER '+irc.user+'\n');
  104.                     irc.s.write('JOIN #'+irc.chan+'\n');
  105.                     break;
  106.                 default:
  107.                     //console.log('Did not recognize data.');
  108.                     //console.log(data);
  109.             }
  110.     }
  111. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement