Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //INCLUDES
- var sqlite3 = require('sqlite3').verbose();
- var tmi = require('tmi.js');
- var db = new sqlite3.Database("Donations");
- var say = require('say');
- var file = './data.json';
- var sub_talk_mode = true;
- var whitelist_users = ["russ3141", "geodaegwyn", "TE55ELATOR", "bola6", "DisortedRage", "navetzbot"];
- //BOT CONNECTION OPTIONS
- var options = {
- options: {
- debug: false
- },
- connection: {
- cluster: "aws",
- reconnect: true
- },
- identity: {
- username: "bhbot",
- password: "oauth:iwhtr3n"
- },
- channels: ["navetz"]
- };
- var client = new tmi.client(options);
- client.connect();
- //WEBSOCKET SECTION
- var WebSocketServer = require('websocket').server;
- var http = require('http');
- var clientCount = 0;
- var clients = {};
- //clients['bhosbot'] = {};
- var server = http.createServer(function(request, response) {
- });
- server.listen(8080, function() {
- console.log((new Date()) + ' Server is listening on port 8080');
- });
- wsServer = new WebSocketServer({
- httpServer: server,
- autoAcceptConnections: false
- });
- function originIsAllowed(origin) {
- // put logic here to detect whether the specified origin is allowed.
- return true;
- }
- wsServer.on('request', function(request) {
- console.log("Say bot connected to window");
- console.log(request);
- if (!originIsAllowed(request.origin)) {
- // Make sure we only accept requests from an allowed origin
- request.reject();
- console.log((new Date()) + ' Connection from origin ' + request.origin + ' rejected.');
- return;
- }
- var connection = request.accept('echo-protocol', request.origin);
- clients["bhosbot"] = connection;
- //clientCount++;
- console.log((new Date()) + ' Connection accepted.');
- connection.on('message', function(message) {
- connection.sendUTF("Turning on say bot.");
- });
- connection.on('close', function(reasonCode, description) {
- console.log((new Date()) + ' Peer ' + connection.remoteAddress + ' disconnected.');
- });
- });
- init();
- var lock = false;
- queue = [];
- //Betting stuff
- var bet_users = []; //arg 1 = user, arg 2 = radient(0), dire(1), arg3 = amount
- //Param0 = username; Param[1] = message; param[3] = starting word
- function queueFunction(){
- queue.push( arguments );
- }
- var trustedUsers = ['navetzbot'];
- function readMessage(){
- if (lock){
- return;
- }
- if (queue.length > 0)
- {
- lock = true;
- var params = queue.shift();
- if (clients['bhosbot'] != undefined){
- //clients["bhosbot"].sendUTF(params[0] + params[2] + params[1]);
- clients["bhosbot"].sendUTF(params[1]); // param0 = username param2 = says param1 = message
- }
- if (params[2].indexOf("says") !== -1){
- say.speak(params[1] , undefined, 2.0 , function(err){
- lock = false;
- });
- } else {
- lock = false;
- }
- }
- }
- function init(){
- client.on("chat", function (channel, userstate, message, self) {
- // Don't listen to my own messages..
- if (self) return;
- if (message.toLowerCase().indexOf("!subtalkon") == 0){
- if (userstate.mod) {
- sub_talk_mode = true;
- console.log("sub talk on");
- }
- }
- if (message.toLowerCase().indexOf("!subtalkoff") == 0){
- if (userstate.mod) {
- sub_talk_mode = false;
- console.log("sub talk off");
- }
- }
- if (message.toLowerCase().indexOf("!say") == 0){
- console.log(userstate.username);
- if (!userstate.mod) {
- if (userstate.subscriber & sub_talk_mode){
- console.log("Sub mode sub tlaking.");
- }else {
- if(whitelist_users.indexOf(userstate.username) > -1) {
- console.log("whitelisted user");
- } else {
- console.log("Not Mod, sub mode off, not whitelisted");
- // this.say("navetz", "Your message");
- return;
- }
- }
- }
- message = message.toLowerCase().substring(4);
- queueFunction( userstate.username , userstate.username + " says " + message, " says " );
- db.run("INSERT INTO say_log (username, message , date) VALUES (? , ? , ?) "
- , userstate.username , message, new Date());
- }
- if (message.toLowerCase().indexOf("!bet") == 0){
- message = message.trim().toLowerCase().substring(4).trim();
- betTeam = message.substr(0, 1);
- message = message.trim().toLowerCase().substring(1).trim();
- betAmount = message;
- if (betTeam == "0"){
- betTeam = "Radient";
- }
- if (betTeam == "1"){
- betTeam = "Dire";
- }
- queueFunction( userstate.username , message + " protein on " + betTeam + "!" , " bets " );
- }
- });
- setInterval(function(){
- readMessage();
- }, 5000);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement