Advertisement
Guest User

Untitled

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