Advertisement
Guest User

Untitled

a guest
Jun 8th, 2018
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.62 KB | None | 0 0
  1. //INCLUDES
  2. var sqlite3 = require('sqlite3').verbose();
  3. var tmi = require('tmi.js');
  4. var db = new sqlite3.Database("Donations");
  5. var say = require('say');
  6.  
  7. var file = './data.json';
  8. var sub_talk_mode = true;
  9. var whitelist_users = ["russ3141", "geodaegwyn", "TE55ELATOR", "bola6", "DisortedRage", "navetzbot"];
  10.  
  11.  
  12. //BOT CONNECTION OPTIONS
  13. var options = {
  14. options: {
  15. debug: false
  16. },
  17. connection: {
  18. cluster: "aws",
  19. reconnect: true
  20. },
  21. identity: {
  22. username: "bhbot",
  23. password: "oauth:iwhtr3n"
  24. },
  25. channels: ["navetz"]
  26. };
  27.  
  28. var client = new tmi.client(options);
  29. client.connect();
  30.  
  31.  
  32.  
  33. //WEBSOCKET SECTION
  34. var WebSocketServer = require('websocket').server;
  35. var http = require('http');
  36. var clientCount = 0;
  37. var clients = {};
  38. //clients['bhosbot'] = {};
  39. var server = http.createServer(function(request, response) {
  40. });
  41. server.listen(8080, function() {
  42. console.log((new Date()) + ' Server is listening on port 8080');
  43. });
  44.  
  45. wsServer = new WebSocketServer({
  46. httpServer: server,
  47. autoAcceptConnections: false
  48. });
  49.  
  50. function originIsAllowed(origin) {
  51. // put logic here to detect whether the specified origin is allowed.
  52. return true;
  53. }
  54.  
  55. wsServer.on('request', function(request) {
  56. console.log("Say bot connected to window");
  57. console.log(request);
  58. if (!originIsAllowed(request.origin)) {
  59. // Make sure we only accept requests from an allowed origin
  60. request.reject();
  61. console.log((new Date()) + ' Connection from origin ' + request.origin + ' rejected.');
  62. return;
  63. }
  64.  
  65. var connection = request.accept('echo-protocol', request.origin);
  66. clients["bhosbot"] = connection;
  67. //clientCount++;
  68. console.log((new Date()) + ' Connection accepted.');
  69. connection.on('message', function(message) {
  70. connection.sendUTF("Turning on say bot.");
  71. });
  72. connection.on('close', function(reasonCode, description) {
  73. console.log((new Date()) + ' Peer ' + connection.remoteAddress + ' disconnected.');
  74. });
  75. });
  76.  
  77. init();
  78. var lock = false;
  79. queue = [];
  80.  
  81. //Betting stuff
  82. var bet_users = []; //arg 1 = user, arg 2 = radient(0), dire(1), arg3 = amount
  83.  
  84.  
  85. //Param0 = username; Param[1] = message; param[3] = starting word
  86. function queueFunction(){
  87. queue.push( arguments );
  88. }
  89.  
  90. var trustedUsers = ['navetzbot'];
  91.  
  92. function readMessage(){
  93. if (lock){
  94. return;
  95. }
  96.  
  97. if (queue.length > 0)
  98. {
  99. lock = true;
  100. var params = queue.shift();
  101.  
  102. if (clients['bhosbot'] != undefined){
  103. //clients["bhosbot"].sendUTF(params[0] + params[2] + params[1]);
  104. clients["bhosbot"].sendUTF(params[1]); // param0 = username param2 = says param1 = message
  105. }
  106.  
  107. if (params[2].indexOf("says") !== -1){
  108. say.speak(params[1] , undefined, 2.0 , function(err){
  109. lock = false;
  110. });
  111. } else {
  112. lock = false;
  113. }
  114. }
  115. }
  116.  
  117. function init(){
  118. client.on("chat", function (channel, userstate, message, self) {
  119. // Don't listen to my own messages..
  120. if (self) return;
  121. if (message.toLowerCase().indexOf("!subtalkon") == 0){
  122. if (userstate.mod) {
  123. sub_talk_mode = true;
  124. console.log("sub talk on");
  125. }
  126. }
  127.  
  128. if (message.toLowerCase().indexOf("!subtalkoff") == 0){
  129. if (userstate.mod) {
  130. sub_talk_mode = false;
  131. console.log("sub talk off");
  132. }
  133. }
  134.  
  135.  
  136.  
  137. if (message.toLowerCase().indexOf("!say") == 0){
  138.  
  139. console.log(userstate.username);
  140.  
  141. if (!userstate.mod) {
  142. if (userstate.subscriber & sub_talk_mode){
  143. console.log("Sub mode sub tlaking.");
  144. }else {
  145. if(whitelist_users.indexOf(userstate.username) > -1) {
  146. console.log("whitelisted user");
  147. } else {
  148. console.log("Not Mod, sub mode off, not whitelisted");
  149. // this.say("navetz", "Your message");
  150. return;
  151. }
  152. }
  153. }
  154.  
  155. message = message.toLowerCase().substring(4);
  156.  
  157. queueFunction( userstate.username , userstate.username + " says " + message, " says " );
  158. db.run("INSERT INTO say_log (username, message , date) VALUES (? , ? , ?) "
  159. , userstate.username , message, new Date());
  160. }
  161.  
  162. if (message.toLowerCase().indexOf("!bet") == 0){
  163. message = message.trim().toLowerCase().substring(4).trim();
  164. betTeam = message.substr(0, 1);
  165. message = message.trim().toLowerCase().substring(1).trim();
  166. betAmount = message;
  167.  
  168. if (betTeam == "0"){
  169. betTeam = "Radient";
  170. }
  171. if (betTeam == "1"){
  172. betTeam = "Dire";
  173. }
  174.  
  175. queueFunction( userstate.username , message + " protein on " + betTeam + "!" , " bets " );
  176. }
  177.  
  178. });
  179.  
  180. setInterval(function(){
  181. readMessage();
  182. }, 5000);
  183. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement