gotato

command module
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 15, 2023 License: MIT Imports: 16 Imported by: 0

README

gotato

A Twitch chatbot that allows chatters to play hot potato for points that they can then gamble (for fun and non-channel points because Twitch doesn't allow bots to interact with channel points)!

Usage

Building is of course the first priority, so assuming you have Go installed on your computer, you can run go build in this repo and you'll get a binary.

The second thing you'll need is some environment variables for authenication:

  • GOTATO_CHANNEL: The channel to connect to
  • GOTATO_USERNAME: Twitch username to connect with
  • GOTATO_CLIENT_ID: Twitch app client ID
  • GOTATO_CLIENT_SECRET: Twitch app client secret

You can get client ID/secret pairs by creating an application at https://dev.twitch.tv/console

The third part, which is optional and just changes the existing defaults, are some more environment variables that tweak game options:

  • GOTATO_JOIN_DURATION: Join phase duration in seconds (default: 30)
  • GOTATO_DURATION_MIN: Minimum game length in seconds (default: 30)
  • GOTATO_DURATION_MAX: Maximum game length in seconds (default: 60)
  • GOTATO_TIMEOUT_DURATION: Loss timeout in seconds (default: 30)
  • GOTATO_REWARD_BASE: Base points rewarded to winner (default: 100)
  • GOTATO_COOLDOWN_DURATION: Cooldown between games in seconds (default: 120)

Once those are set (or not if you want the defaults), just run the binary:

./gotato

This will open up a browser tab that will prompt you to authorize the app for chat read/write/ban permissions (ban for timeout punishments). Once you complete that flow, the goroutines will boot up and you'll see a message in your chat from gotato.

Note that the client user needs to type !enable in the chat to turn on timeouts and points whispers. This is necessary for the API client to receive the necessary user IDs to execute requests.

Design

See DESIGN.md for design/implementation details.

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL