Self-hosted alternative to one of the big bots managed by big companies…
Go to file
Knut Ahlers cbf50ff928
[core] Fix: Allow PATCH method in CORS
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2022-03-29 00:56:10 +02:00
.github [docs] Update README and funding 2021-10-22 21:37:48 +02:00
ci [editor] Rework to use esbuild / Vue component files (#12) 2021-12-06 17:25:19 +01:00
crypt [core] Implement dynamic token update and broadcaster permissions (#13) 2021-12-31 13:42:37 +01:00
docs Allow to customize token 2021-04-04 20:26:32 +02:00
editor [editor] Rework to use esbuild / Vue component files (#12) 2021-12-06 17:25:19 +01:00
examples/plugin [lint] Properly format inputs 2021-11-25 23:48:16 +01:00
internal [filesay] Lint: Remove dead code 2022-03-04 23:50:38 +01:00
plugins Allow reading floats as ints loosing precision 2022-02-20 13:36:14 +01:00
src [editor] Improve location of permission warning 2022-02-10 02:22:02 +01:00
twitch [core] Re-check token validity more often than on expiry 2022-03-20 14:32:11 +01:00
wiki [filesay] Add FileSay actor 2022-03-04 23:35:37 +01:00
.dockerignore [editor] Rework to use esbuild / Vue component files (#12) 2021-12-06 17:25:19 +01:00
.eslintrc.js [editor] Rework to use esbuild / Vue component files (#12) 2021-12-06 17:25:19 +01:00
.gitignore [editor] Rework to use esbuild / Vue component files (#12) 2021-12-06 17:25:19 +01:00
.golangci.yml Breaking: Add configuration interface and switch to more generic config format (#7) 2021-09-22 15:36:45 +02:00
.repo-runner.yaml [ci] Set application to production mode on publish 2022-01-20 01:22:35 +01:00
action_counter.go [counter] Add template support for counter step 2022-01-31 01:50:08 +01:00
action_script.go [lint] Properly format inputs 2021-11-25 23:48:16 +01:00
action_setvar.go [lint] Properly format inputs 2021-11-25 23:48:16 +01:00
actions.go [overlays] Add overlays server capability (#14) 2022-02-08 19:58:19 +01:00
actorDocs.go [lint] Properly format inputs 2021-11-25 23:48:16 +01:00
actorDocs.tpl [quotedb] Add new actor 2021-10-19 00:22:05 +02:00
auth.go [core] Implement dynamic token update and broadcaster permissions (#13) 2021-12-31 13:42:37 +01:00
automessage.go [automessage] Add disable switch 2021-12-18 19:22:18 +01:00
botEditor.go [core] Implement dynamic token update and broadcaster permissions (#13) 2021-12-31 13:42:37 +01:00
botUserState.go [lint] Properly format inputs 2021-11-25 23:48:16 +01:00
config.go [core] Fix: Accept 1s cooldown, fix user and channel cooldowns 2022-03-12 01:28:20 +01:00
configEditor_automessage.go [lint] Properly format inputs 2021-11-25 23:48:16 +01:00
configEditor_dev.go [editor] Rework to use esbuild / Vue component files (#12) 2021-12-06 17:25:19 +01:00
configEditor_general.go [editor] Display disconnected status instead of error 2021-12-31 19:09:29 +01:00
configEditor_global.go [editor] Fix: Upgrade contains a header send, error must not send headers 2022-02-10 00:30:40 +01:00
configEditor_prod.go [editor] Rework to use esbuild / Vue component files (#12) 2021-12-06 17:25:19 +01:00
configEditor_rules.go [lint] Properly format inputs 2021-11-25 23:48:16 +01:00
configEditor.go [editor] Add bot version to frontend 2022-01-20 01:16:20 +01:00
configwatch.go Fix: Do not spam events when file is gone for longer 2021-05-24 18:00:50 +02:00
cors.go [core] Fix: Allow PATCH method in CORS 2022-03-29 00:56:10 +02:00
default_config.yaml Breaking: Add configuration interface and switch to more generic config format (#7) 2021-09-22 15:36:45 +02:00
Dockerfile [editor] Update nodejs build version and deps 2022-02-26 17:26:02 +01:00
events.go [core] Add delete event for deleted chat messages 2022-02-11 20:10:19 +01:00
functions_counter.go [lint] Properly format inputs 2021-11-25 23:48:16 +01:00
functions_irc.go [lint] Properly format inputs 2021-11-25 23:48:16 +01:00
functions_twitch.go [core] add streamUptime / formatDuration template functions 2021-10-13 14:30:45 +02:00
functions.go [editor] Rework to use esbuild / Vue component files (#12) 2021-12-06 17:25:19 +01:00
git.go [core] Allow the bot to track config editor changes through Git 2021-10-22 17:09:39 +02:00
go.mod [overlays] Add overlays server capability (#14) 2022-02-08 19:58:19 +01:00
go.sum [overlays] Add overlays server capability (#14) 2022-02-08 19:58:19 +01:00
helpers.go Lint: Fix daedcode / error message 2022-01-31 02:14:36 +01:00
History.md prepare release v2.2.0 2022-01-16 15:42:16 +01:00
irc.go [core] Add origin_id to subgift / submysterygift events 2022-02-26 14:48:00 +01:00
LICENSE Add META 2020-12-21 01:55:48 +01:00
main.go [core] Add support for OPTIONS requests 2022-03-29 00:50:42 +02:00
Makefile [wiki] Update actor documentation 2022-02-10 02:02:25 +01:00
msgformatter.go [core] Fix: Strip newlines from message templates 2021-12-14 18:35:07 +01:00
package-lock.json [editor] Update nodejs build version and deps 2022-02-26 17:26:02 +01:00
package.json [ci] Ensure build dependencies are available for prod builds 2022-01-20 02:20:22 +01:00
plugins_core.go [filesay] Add FileSay actor 2022-03-04 23:35:37 +01:00
plugins_unsupported.go Add plugin support to allow extending of functionality (#6) 2021-08-19 15:33:56 +02:00
plugins.go [lint] Properly format inputs 2021-11-25 23:48:16 +01:00
README.md [docs] Update README 2022-01-05 18:17:07 +01:00
scopes.go [core] Fix: ChannelEditor must be present on token 2022-01-09 17:40:48 +01:00
status.go [core] Implement dynamic token update and broadcaster permissions (#13) 2021-12-31 13:42:37 +01:00
store.go [counter] Remove stored counter value on zero value 2022-02-20 15:15:16 +01:00
swagger.go [lint] Properly format inputs 2021-11-25 23:48:16 +01:00
swagger.html [openapi] Allow subdir serving 2021-10-10 01:40:44 +02:00
timers.go Add plugin support to allow extending of functionality (#6) 2021-08-19 15:33:56 +02:00
twitchWatcher.go [core] Fix: EventSub messages had misformatted channel 2022-02-05 23:50:30 +01:00
writeAuth.go [overlays] Add overlays server capability (#14) 2022-02-08 19:58:19 +01:00
wrNoOpCloser.go Add raw-log functionality 2021-04-09 18:14:44 +02:00

Go Report Card

Luzifer / twitch-bot

Twitch-Bot is intended as an alternative to having a bot managed by Streamlabs or Streamelements and therefore having more control over it, the availability and how it works.

At the moment it is a work-in-progress and does not yet implment all features it shall in the future.

Configuration

Please see the Wiki for documentation of the configuration file.

# twitch-bot --help
Usage of twitch-bot:
      --base-url string                  External URL of the config-editor interface (set to enable EventSub support)
      --command-timeout duration         Timeout for command execution (default 30s)
  -c, --config string                    Location of configuration file (default "./config.yaml")
      --log-level string                 Log level (debug, info, warn, error, fatal) (default "info")
      --plugin-dir string                Where to find and load plugins (default "/usr/lib/twitch-bot")
      --rate-limit duration              How often to send a message (default: 20/30s=1500ms, if your bot is mod everywhere: 100/30s=300ms, different for known/verified bots) (default 1.5s)
      --storage-encryption-pass string   Passphrase to encrypt secrets inside storage (defaults to twitch-client:twitch-client-secret)
      --storage-file string              Where to store the data (default "./storage.json.gz")
      --twitch-client string             Client ID to act as
      --twitch-client-secret string      Secret for the Client ID
      --twitch-token string              OAuth token valid for client (fallback if no token was set in interface)
  -v, --validate-config                  Loads the config, logs any errors and quits with status 0 on success
      --version                          Prints current version and exits
# twitch-bot help
Supported sub-commands are:
  actor-docs                     Generate markdown documentation for available actors
  api-token <name> <scope...>    Generate an api-token to be entered into the config
  help                           Prints this help message