pxslip / brittlq

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

brittlq

Simple client-side chatbot for Twitch used for queueing chat members for community engagement.

Actions Status

Building

The application is built in two steps:

cargo build
cd frontend && npm install && npm run build
# or to watch and recompile as frontend files change use
cd frontend && npm run watch

Running

Create a file called Settings.toml in the same location as the brittlq executable that contains the following:

name = "<bot_name>"
channel = "<channel_name>"

Replace <bot_name> with the account name the bot is using in chat, and <channel_name> with the channel the bot is joining.

You must click Connect to chat after starting brittlq. This will take you to the Twitch Authentication page, which requires you to authenticate as the same account as the name field in the Settings.toml file. This allows the bot to sign into Twitch and join the specified channel.

brittlq starts with the queue closed. Click the Open button to allow users in chat to begin joining the queue.

Chat Commands

  • !join - User: add themselves to the queue. A user is not allowed to be in the queue multiple times. They must be removed by either !leave-ing themselves, or via the frontend, before they can join again. !joining more than once will result in the bot responding with that user's position as if the user did used the !place command.
  • !leave - User: remove themselves from the queue.
  • !next - User: peek at the upcoming group. Does not modify the queue.
  • !place - User: get their position in the queue, with an estimated wait time.

Developing

To set environment variables for the frontend application copy frontend/.env.local.base to frontend/.env.local and set your Twitch client id and redirect uri there.

Roadmap

  • Add ability to change party size. Not really necessary in its current use case, this would just make the bot less brittle
  • Separate backend onto remote host.
    • Create frontend application
    • Switch to stronger oauth flow
    • Create website so the queue owner, moderators, and community members can monitor/interact with the queue
  • Allow for reordering queue entries
  • Add moderator controls to the chat bot
  • Discord integration?
  • Customizability of chat announcements

About


Languages

Language:Rust 58.3%Language:Vue 18.2%Language:TypeScript 17.2%Language:Dockerfile 3.3%Language:JavaScript 1.6%Language:HTML 0.8%Language:CSS 0.3%Language:Shell 0.2%