Цвет

Чат бот для Twitch

129₽ 169₽

Категории:

nodejstwitch

В этом скрипте мы научимся делать чат бот для Твича

Для начала установите NodeJS, если он у вас не установлен.

Далее, с помощью командной строки (если вы на Windows -> cmd в поиске) перейдите в нужную директорию (папку), где вы хотите расположить свой скрипт.

cd "B:\NodeJS projects\TwitchBot"
cd /d "B:\NodeJS projects\TwitchBot"

Параметр

/d

используйте когда переключаетесь с одного диска на другой.

И так, в этой директории создайте пустой файл

app.js

и впишите команду в консоли

npm install tmi.js

После этого установится нужный модуль и мы плавно переходим к файлу

app.js

Откройте его с помощью удобного текстового редактора. Я предлагаю вам бесплатные Notepad++ или VSCode

Отлично, но для начала сгенерируйте токен для вашего твич аккаунта, который будет служить ботом (можно использовать свой основной аккаунт). Скопируйте его

Теперь в нашем документе app.js пишем

const TWITCH_OAUTH_TOKEN='ваш_токен';
const tmi = require('tmi.js');

Токен в формате oauth:цифры_и_буквы

Теперь создаем объект client

const client = new tmi.Client({
   //options: { debug: true },
   connection: {
     cluster: 'aws',
     timeout: 2000,
     reconnect: true,
     secure: true,
     reconnectInterval: 1500,
     maxReconnectInterval: 5000,
     reconnectDecay: 1.2
   },
   identity: {
     username: 'логин_на_твиче',
     password: TWITCH_OAUTH_TOKEN //process.env.TWITCH_OAUTH_TOKEN
   },
   channels: ['канал_с_чатом']
});

Вы догадались, что логин_на_твиче - это логин вашего аккаунта твич, а канал_с_чатом - это логин аккаунта твич, чат которого будет мониториться. Здесь так же ставьте свой логин.

Дальше с помощью метода connect коннектимся.

client.connect();

Подготовим функцию для рандома

function getRandomInt(max) {
   return Math.floor(Math.random() * max);
}

Дальше пишем блок для отправленного сообщения

client.on('message', (channel, tags, message, self) => { });

Дальше код будем писать внутри этого блока

Для начала выпишем сообщение в консоль

console.log(`${channel} : ${tags['display-name']}: ${message}`);

Если сообщение отправляется себе, то возвращаем ничего

if(self){
   return ;
}

Если нет, то проверяем начинается ли сообщение с восклицательного знака. Если нет (то есть обычное сообщение), то проверяем начинается ли сообщение со слова "привет".

else{
    if(!message.startsWith('!')) {
     const msg1 = message.toLowerCase();
     if(msg1.indexOf("привет")== 0){
       client.say(channel, `Привет, @${tags.username}.`);
      }
   }
   else{

   }
}

Вы обратили внимание, что с помощью строчки

const msg1 = message.toLowerCase();

мы переводим сообщение в нижний регистр, чтобы легче было его проверить.

В блоке else пишем что будет, если сообщение начинается с ! (то есть команда для бота)

else{
   const msg1 = message.toLowerCase();
   if(msg1.indexOf("!монета") == 0){
     if(getRandomInt(2)==0){
       client.say(channel, `Привет, @${tags.username}, тебе выпала решка.`);
     }
     else{
       client.say(channel, `Привет, @${tags.username}, тебе выпал орёл.`);
     }
   }
}

Если человек напишет

!монета

То ему выдаст либо решка, либо орел

Осталось запустить наш скрипт, находясь в той же директории в командной строке Windows (cmd), впишите команду

node app.js

Теперь заходите в свой чат на твиче через панель управления трансляцией чтобы видеть чат.

Теперь можем протестировать бота, отправив "привет" в чат.

Впишите команду !монета несколько раз