Advertisement
Guest User

Untitled

a guest
Oct 20th, 2016
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.59 KB | None | 0 0
  1. var net = require('net'),
  2. irc = {}, config;
  3.  
  4. config = {
  5. user: {
  6. nick: '',
  7. user: '',
  8. real: '',
  9. pass: ''
  10. },
  11. server: {
  12. addr: '',
  13. port: 6667
  14. },
  15. chans: ['#webdevRefinery', '#test']
  16. }
  17.  
  18. irc.socket = new net.Socket();
  19.  
  20. irc.socket.on('data', function(data)
  21. {
  22. data = data.split('\n');
  23. for (var i = 0; i < data.length; i++)
  24. {
  25. console.log('RECV -', data[i]);
  26. if (data !== '')
  27. {
  28. irc.handle(data[i].slice(0, -1));
  29. }
  30. }
  31. });
  32.  
  33. irc.socket.on('connect', function()
  34. {
  35. console.log('Established connection, registering and shit...');
  36. irc.on(/^PING :(.+)$/i, function(info)
  37. {
  38. irc.raw('PONG :' + info[1]);
  39. });
  40. setTimeout(function()
  41. {
  42. irc.raw('NICK ' + config.user.nick);
  43. irc.raw('USER ' + config.user.user + ' 8 * :' + config.user.real);
  44. setTimeout(function()
  45. {
  46. for (var i = 0; i < config.chans.length; i++)
  47. {
  48. irc.join(config.chans[i]);
  49. }
  50. }, 2000);
  51. }, 1000);
  52. });
  53.  
  54. irc.socket.setEncoding('ascii');
  55. irc.socket.setNoDelay();
  56. irc.socket.connect(config.server.port, config.server.addr);
  57.  
  58. //handles incoming messages
  59. irc.handle = function(data)
  60. {
  61. var i, info;
  62. for (i = 0; i < irc.listeners.length; i++)
  63. {
  64. info = irc.listeners[i][0].exec(data);
  65. if (info)
  66. {
  67. irc.listeners[i][1](info, data);
  68. if (irc.listeners[i][2])
  69. {
  70. irc.listeners.splice(i, 1);
  71. }
  72. }
  73. }
  74. }
  75.  
  76. irc.listeners = [];
  77. irc.on = function(data, callback)
  78. {
  79. irc.listeners.push([data, callback, false])
  80. }
  81. irc.on_once = function(data, callback)
  82. {
  83. irc.listeners.push([data, callback, true]);
  84. }
  85.  
  86. irc.raw = function(data)
  87. {
  88. irc.socket.write(data + '\n', 'ascii', function()
  89. {
  90. console.log('SENT -', data);
  91. });
  92. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement