1.0.0 • Published 4 years ago

multi-stream-chatbot v1.0.0

Weekly downloads
4
License
ISC
Repository
github
Last release
4 years ago

multi-stream-chatbot

Chatbot framework that listens and sends messages to multiple live-streaming platforms simultaneously

npm.io

Documentation

Quick Start

// Create an action
class DiceRollAction extends AbstractSimpleChatAction {
    matchesCommand(message, ctx) {
        return new MessageParser().parseCommand(message) === "!dice"
    }

    async makeMessage(message, ctx) {
        const num = this.rollDice()
        return `You rolled a ${num}`
    }

    rollDice() {
        const sides = 6
        return Math.floor(Math.random() * sides) + 1
    }
}

const actions = [new DiceRollAction()]

// Configure twitch auth
const twitchAuth = new TwitchAuth({
    oauthToken: process.env.TWITCH_BOT_KEY,
    botUsername: process.env.TWITCH_BOT_USERNAME,
    channel:  process.env.TWITCH_CHANNEL
})

// Create a bot
const bot = new StreamBot({
    streams: [new TwitchStream(twitchAuth)],
    actions
})

// Start the bot
bot.start()

Streams

Supports:

  • Youtube
  • Twitch
  • Dummy (Interval)

Actions

SimpleChatAction

Handles one command. See DiceAction for more details.

var {
    AbstractSimpleChatAction,
} = require("multi-stream-chatbot/actions")

StrategyBasedChatAction

Handles multiple commands that share state. See PollActions for more details.

var {
    AbstractStrategyBasedChatAction,
    AbstractMessageStrategy,
} = require("multi-stream-chatbot/actions")

Test Locally

npm test
npm pretty

Example

See the Hacker Shack livestream chatbot repo to see usage examples.

Donations

Thanks for the support!

  • Zachary Nawrocki: Love your videos. I've been working on a chat bot for my personal home assistant project, and these ideas have given me some inspiration. Thanks.