multi-stream-chatbot

1.0.0 • Public • Published

multi-stream-chatbot

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

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.

Versions

Current Tags

VersionDownloads (Last 7 Days)Tag
1.0.00latest

Version History

VersionDownloads (Last 7 Days)Published
1.0.00

Package Sidebar

Install

npm i multi-stream-chatbot

Weekly Downloads

0

Version

1.0.0

License

ISC

Unpacked Size

36.1 kB

Total Files

24

Last publish

Collaborators

  • atainter