Guest User

Untitled

a guest
Dec 21st, 2017
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.85 KB | None | 0 0
  1. #!/usr/bin/env node
  2.  
  3. require('dotenv').config()
  4.  
  5. var irc = require('irc');
  6. var request = require('ajax-request');
  7. var foreach = require('foreach');
  8.  
  9. var client = new irc.Client(process.env.IRC_SERVER, process.env.IRC_NICK, {
  10. channels: ['#home'],
  11. password: process.env.IRC_PASS,
  12.  
  13. userName: process.env.IRC_NICK,
  14. realName: process.env.IRC_NICK,
  15. port: process.env.IRC_PORT,
  16. localAddress: null,
  17. debug: false,
  18. showErrors: false,
  19. autoRejoin: false,
  20. autoConnect: true,
  21. secure: false,
  22. selfSigned: false,
  23. certExpired: false,
  24. floodProtection: true,
  25. floodProtectionDelay: 1000,
  26. sasl: false,
  27. retryCount: 3,
  28. retryDelay: 2000,
  29. stripColors: true,
  30. channelPrefixes: "&#",
  31. messageSplit: 512,
  32. encoding: ''
  33. });
  34.  
  35. function respond(recipient, message) {
  36. console.log("["+recipient +"] "+client.nick+": "+message);
  37. client.say(recipient, message);
  38. }
  39.  
  40. function handleMessage(replyTo, nick, message) {
  41. // Pass the message to the botman backend.
  42. // Do not trust the user as an authentication method.
  43. request.post({
  44. url: process.env.APP_URL + '/botman',
  45. data: {"driver":"web", "userId": nick, "message":message},
  46. headers: {}
  47. },
  48. function (err, res, body) {
  49. if (err) {
  50. console.log("==============================");
  51. console.log("COULD NOT CONNECT TO BACKEND");
  52. console.log(err);
  53. console.log("==============================");
  54. }
  55. else {
  56. data = JSON.parse(body);
  57.  
  58. foreach(data.messages, function (value, key, array) {
  59. // TODO: Allow the backend to pass back commands
  60.  
  61.  
  62. // If we have any messages to send back, do them now
  63. if (value.text) {
  64. respond(replyTo, value.text);
  65. }
  66. });
  67. }
  68. });
  69. }
  70.  
  71. // Listen to public messages
  72. client.addListener('message', function (from, to, message) {
  73. console.log("["+to+"] "+from+": "+message);
  74.  
  75. handleMessage(to, from, message);
  76. });
  77.  
  78. client.addListener('error', function(message) {
  79. console.log('error: ', message);
  80. });
Add Comment
Please, Sign In to add comment