2022-02-14 05:59:45 +00:00
|
|
|
const tmi = require('tmi.js');
|
2022-02-18 05:18:23 +00:00
|
|
|
require('dotenv').config();
|
2022-02-14 05:59:45 +00:00
|
|
|
const colors = require('colors');
|
2022-02-23 07:01:00 +00:00
|
|
|
const lurk_bots = require("./db/lurk_bots");
|
2022-02-16 18:11:46 +00:00
|
|
|
|
2022-02-16 18:55:19 +00:00
|
|
|
console.log(`ANTI / Lurk Bots`.black.bgBrightRed);
|
|
|
|
console.log(`v 0.1 | BETA`.black.bgBrightRed);
|
2022-02-14 05:59:45 +00:00
|
|
|
|
2022-02-16 18:55:19 +00:00
|
|
|
console.log(`Loading... | Lurk Bot DB`.black.bgGreen);
|
2022-02-23 07:00:08 +00:00
|
|
|
const {banlist} = lurk_bots
|
2022-02-14 05:59:45 +00:00
|
|
|
|
2022-02-16 18:55:19 +00:00
|
|
|
console.log(`Loading... | Setting from .env file`.black.bgGreen);
|
2022-02-14 05:59:45 +00:00
|
|
|
const client = new tmi.Client({
|
|
|
|
options: { debug: true },
|
|
|
|
connection: {
|
|
|
|
secure: true,
|
|
|
|
reconnect: true
|
|
|
|
},
|
|
|
|
identity: {
|
2022-02-16 18:11:46 +00:00
|
|
|
username: process.env.TTV_STREAMER_USERNAME,
|
|
|
|
password: process.env.TTV_STREAMER_OAUTH
|
2022-02-14 05:59:45 +00:00
|
|
|
},
|
2022-02-16 18:11:46 +00:00
|
|
|
channels: [ process.env.TTV_STREAMER_CHANNEL ]
|
2022-02-14 05:59:45 +00:00
|
|
|
});
|
|
|
|
|
2022-02-23 07:06:00 +00:00
|
|
|
console.log(`Loading... | Chatbot`.black.bgGreen);
|
2022-02-14 05:59:45 +00:00
|
|
|
client.connect();
|
|
|
|
|
2022-02-16 18:55:19 +00:00
|
|
|
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
|
2022-02-23 06:46:25 +00:00
|
|
|
// Mods + Streamer
|
|
|
|
if(isModUp) {
|
2022-02-23 07:06:00 +00:00
|
|
|
if(command === 'test') {
|
|
|
|
client.say(channel, `test `);
|
|
|
|
}
|
2022-02-18 05:18:23 +00:00
|
|
|
if(command === 'banbots') {
|
2022-02-23 06:46:25 +00:00
|
|
|
client.say(channel, `/ban `+ botlist);
|
2022-02-18 05:18:23 +00:00
|
|
|
}
|
|
|
|
if(command === 'unbanbots') {
|
2022-02-23 06:46:25 +00:00
|
|
|
client.say(channel, `/ban `+ botlist);
|
2022-02-18 05:18:23 +00:00
|
|
|
}
|
2022-02-16 23:02:27 +00:00
|
|
|
}
|
|
|
|
});
|
2022-02-16 18:55:19 +00:00
|
|
|
console.log(process.env.API_HOST);
|