node-twitchbot
kritzware/twitch-bot
NOTE: This package has been discontinued. It is highly recommend to use the new version atThis package is not to be used for Twitch botting (inflating live viewer counts) and should only be used for chatbots. Attempting to 'bot' a Twitch channel can lead to your account being permanently banned.
Installation
Version 2.0.0^ (Recommended):
$ npm install node-twitchbot
Version 1 (Deprecated):
$ npm install [email protected]
V2 DOCS
Example
const TwitchBot = require('node-twitchbot')
const Bot = new TwitchBot({
username : 'GLADOS',
oauth : 'oauth:secret-oauth-pass',
channel : 'Aperture'
})
/* Connect bot to Twitch IRC */
Bot.connect()
.then(() => {
/* Listen for all messages in channel */
Bot.listen((err, chatter) => {
if(err) {
console.log(err)
} else {
console.log(chatter.msg) // 'Hello World!'
}
})
/* Listen for an exact messages match */
Bot.listenFor('KKona', (err, chatter) => {
console.log(chatter)
})
/* Send a message in the channel */
Bot.msg('this is the message text PogChamp')
/* Listen for raw IRC events */
Bot.raw((err, event) => {
console.log(event)
})
})
.catch(err => {
console.log('Connection error!')
console.log(err)
})
Chatter Object
Most callbacks return a chatter
object which contains the following attributes:
{
user: 'kritzware',
msg: 'Hello world! Kappa',
channel: 'kritzware',
twitch_id: '44667418',
level: 'mod',
sub: 0,
turbo: 0
}
V1 DOCS
Example
const Bot = require('node-twitchbot')
Bot.run({
username: 'bot_username',
oauth: 'oauth:twitch_oauth_key',
channel: 'channel'
})
/* Exact message match */
Bot.listenFor('Kappa', (err, chatter) => {
if(err) {
console.log(err)
} else {
console.log(chatter)
}
})
/* Return all user message in channel */
Bot.listenFor('*', (err, chatter) {
// Returns all viewer messages in channel
})
/* String is included in message */
Bot.listen('PogChamp', (err, chatter) => {
console.log(chatter)
})
/* Sub/resub event in chat */
Bot.resub((err, chatter, sub) => {
console.log(sub)
})
/* Say messages in chat */
Bot.msg('Hello chat!')
/* Private message user */
Bot.whisper('kritzware', 'This is a private message Kappa')
/* Setting commands instead of checking via string match */
const commands = {
help : 'For help using this bot, contact kritzware',
twitter : 'Follow this channel at https://twitter.com/test123',
/* You can also use functions to generate a command response */
random : (chatter) => {
return Math.floor((Math.random() * -1) + 1)
},
/* Command functions can make use of the chatter object of the user who executed the command */
goodnight : (chatter) => {
return 'Goodnight ' + chatter.user + '! FeelsGoodMan'
}
}
Bot.commands('!', commands, (err, chatter, command) => {
if(err) {
console.log(err)
} else {
console.log(command)
console.log(chatter)
}
})
Output for example '!goodnight' command above
Example of a command
Bot.listenFor('!command', (err, chatter) => {
Bot.msg('This is the command response')
})