Lurk_Bots/node/autoban.js

64 lines
2.1 KiB
JavaScript

const tmi = require('tmi.js');
require('dotenv').config();
const colors = require('colors');
const lurk_bots = require("./db/lurk_bots");
console.log(`ANTI / Lurk Bots`.black.bgBrightRed);
console.log(`v 0.1 | BETA`.black.bgBrightRed);
console.log(`Loading... | Lurk Bot DB`.black.bgGreen);
const {banlist} = lurk_bots
console.log(`Loading... | Setting from .env file`.black.bgGreen);
const client = new tmi.Client({
options: { debug: true },
connection: {
secure: true,
reconnect: true
},
identity: {
username: process.env.TTV_STREAMER_USERNAME,
password: process.env.TTV_STREAMER_OAUTH
},
channels: [ process.env.TTV_STREAMER_CHANNEL ]
});
console.log(`Loading... | Chatbot`.black.bgGreen);
client.connect();
client.on("connected", (address, port) => {
console.log('LOG | Connected @'.green, address.yellow, 'on port'.green, port);
});
client.on("connecting", (address, port) => {
console.log('LOG | Connecting @'.green, address.yellow, 'on port'.green, port);
});
client.on("disconnected", (reason) => {
console.log('LOG |'.brightRed, reason.yellow, 'caused a disconnection...'.brightRed);
});
client.on('message', (channel, tags, message, self) => {
//if(botlist) return;
const badges = tags.badges || {}; // Scan Badges
const isBroadcaster = badges.broadcaster; // Define Streamer
const isMod = badges.moderator; // Define Mod
const isModUp = isBroadcaster || isMod; // Permission Merge = Mod+Streamer
const botUserState = client.userstate[channel]; // MOD Status Check
const amMod = botUserState !== undefined && botUserState.mod === true; // Define Mod Status
if(self || !message.startsWith('!')) return; // Command Parser
const args = message.slice(1).split(' ');
const command = args.shift().toLowerCase(); // !COMMAND => command
// Mods + Streamer
if(isModUp) {
if(command === 'test') {
client.say(channel, `test `);
}
if(command === 'banbots') {
client.say(channel, `/ban `+ botlist);
}
if(command === 'unbanbots') {
client.say(channel, `/ban `+ botlist);
}
}
});
//console.log(process.env.API_HOST);