automuteus

Discord Bot to automute Among Us players at round transitions, in conjunction with https://github.com/automuteus/amonguscapture

MIT License

Stars
945
Committers
57

Bot releases are visible (Hide)

automuteus - 4.0.0

Published by github-actions[bot] almost 4 years ago

Version 4.0 is primarily about enabling better reliability, robustness, and scaling. As such, most of this release isn't so exciting for the average user. v5.0 should bring some other more exciting features to the wider userbase.

⚠️⚠️⚠️
Version 4.0+ introduces several breaking changes over v2/v3. Please refer to the breaking changes section below before considering upgrading!
⚠️⚠️⚠️

Breaking Changes:

  • Introduces a Socket.io server and message broker that is not optional. This server handles all the capture socket connections and transmits information to the bot via Redis (as a message broker). This is to enable greater decoupling of the Bot from the Capture connections. This server can be found here: https://github.com/automuteus/galactus, but see the docker-compose.yml and sample.env to see how this is integrated into the docker-compose stack. For those wondering why it's called galactus...
  • Renaming and refactoring of several environment variables with documentation to match. Please see sample.env for details and usage; documentation has been enhanced in this domain (thanks @OiYouYeahYou !).
  • CONFIG_PATH has been deprecated. This was actually unused in v3, but now has been formally and completely removed

If you are upgrading from v3, please see the docker-compose.yml and sample.env to see how things have changed for this new version!

New Features:

  • Addition of a Socket.io server "message broker". This decouples the capture connections from the actual bot, and enables much better scaling, overall reliability, and ability to perform "rolling" updates.
  • Addition of Dutch, German, and French localizations, and improvements to Russian thanks to @xTCry @MoritzLerch @SphereBread and @ElectrizZ !!!
  • .au settings language list to view all available localizations
  • .au stats to view the guild count, current active games, version and latest commit hash for the bot
  • @AutoMuteUs to announce the command prefix, if you happen to forget it
  • Galactus exposes an HTTP endpoint at / to print JSON-wrapped stats information, identical to that displayed by .au stats
  • Misc. easter eggs... Have fun out there...

Bug Fixes and Misc. Improvements:

Changelog

e31189f Merge pull request #224 from denverquane/broker
ddee500 Adds more docs and stubs for future env
c4c5b1c Fixes HOST port defaults, updated docker-compose docs
470164e Adds Commit to stats
5a0047d Supports owo faces appended on messages, crucial hotfix
435ea36 Merges master, updates ENV vars
5317676 Merge branch 'master' into broker
e87b327 Merge pull request #239 from xTCry/master
0d0a631 chore: very important changes (locale & ascii)
a40d616 Merge remote-tracking branch 'upstream/master'
ee3b86d Updates examples, merge fixes
c79fc15 Merge branch 'master' into broker
8ff60a1 Mocks out PSQL integration, removes old code
921487b Adds prelim match stats tracking
6cf7c45 Adds unmute/deaf on player DC, removes status update
9d817f5 updates sample compose/env, stats
01c9fbe adds the worst localization imaginable
61c4ed0 Merge branch 'master' into broker
0e2ff28 adds handling for server kick/removal
4589d05 exposes 8080 for liveness/readiness
397374f adds log for done identifying
6dd22ac adds liveness/readiness endpoints
8e7c288 adds Galactus integration
6b60604 chore(ascii): very important addition
766b3f2 Merge pull request #15 from denverquane/master
2e7fd23 Adds stats command, better Redis queries/recording
05a85cb Adds locale path
9a58517 Merge branch 'master' into broker
4b27bf3 Fixes scanning all tracking channels on newgame
02046c3 Merges master, accurate guild counter fix
776e342 Merge branch 'master' into broker
c8d4d95 Acks on startup for existing games
44dea65 Adds first pass at message broker integration

automuteus - 3.2.0

Published by github-actions[bot] almost 4 years ago

Changelog

b7ed769 Merge pull request #228 from OiYouYeahYou/misc
7e02354 Merge pull request #233 from SphereBread/master
19ea8cf Russian language reworked: typos and gramm errors fix
bbedfcc Merge pull request #223 from ElectrizZ/patch-1
194f701 Merge pull request #229 from MoritzLerch/patch-2
f8655fb Merge pull request #226 from xTCry/patch-1
72f89a3 "singular/plural" output matching to count
ec9ee47 docker-compose.yaml fiddling
4ad2f00 Fix locales
262cd52 Depreciate CONFIG_PATH
e879dc3 Update active.fr.toml
618169c chore(commands): added bar chart Emoji
b74410b Merge pull request #225 from xTCry/ascii
83f8766 chore(ascii): very important addition
97a21b6 Merge pull request #222 from ZeeuwsGamertje/patch-1
3462d73 Add .env & docker-compse.yaml to .gitignore & .dockerignore
7f21664 Update active.fr.toml
d6347db Create active.fr.toml
4f69426 Create active.nl.toml (Dutch translation)
435f610 Merge pull request #219 from MoritzLerch/patch-1
2865e9f DE translation fix: typos, grammatical errors #2
4f2025a German translation fix: typos, grammatical errors
3ae74d1 Merge pull request #213 from madbyte/master
44db3f3 German translation
c849c56 German translation
83a3313 Adds 3.0 video to readme
787525f german translation

automuteus - 3.1.0

Published by github-actions[bot] almost 4 years ago

⚠️Self-hosting without Docker and Docker-compose is not supported in this release⚠️

Either use the official Bot, or stick with 2.0 versions if you're unfamiliar with Docker/compose.

Changelog

cb002a4 Reduces redis lock timeouts and adds retry strategies

automuteus - 3.0.2

Published by github-actions[bot] almost 4 years ago

Changelog

713192c Comments out goreleaser to prevent mistaken 3.0 downloads

automuteus - 3.0.1

Published by github-actions[bot] almost 4 years ago

Changelog

4830fc3 Merge pull request #212 from bin101/patch-1
a9badb8 fix(permissions): if a permission array is empty the user should get the permission
2dad4ca fix(permissions):
e1152e6 Adds jobs for future message broker integration
967317e Update sample.env
3116fa0 Update README.md

automuteus - 3.0.0

Published by github-actions[bot] almost 4 years ago

⚠️Self-hosting without Docker and Docker-compose is not supported in this release⚠️

Either use the official Bot, or stick with 2.0 versions if you're unfamiliar with Docker/compose.

Changelog

748db4d Merge pull request #200 from denverquane/redis
1ad789e Merge pull request #209 from xTCry/redis
d813690 Merge branch 'redis' of https://github.com/denverquane/automuteus into redis
38e7562 chore(locale): update strings
3d3fb23 Fixes incorrect command aliases, rephrasing
d125ac9 Fixes guild counter
41a4e2a Adds unmuteall, fixes force, @bot for prefix, settings show cmd
ae4c519 Fixes key naming convention
0b03b24 Fixes miscount of linked players
663982b Merge remote-tracking branch 'origin/master' into redis
a9d616c Adds game timeout and proper key TTL, readme update
5974ccf Shortens shutdown delays for hotswap
494a754 Fix exile delay bug, filter help on perms
d22981e Fix player disconnect unlink bug, fix relink bug, add tiered permissions for commands
542d9d7 Merge pull request #204 from xTCry/locale
ddbf7dd Merge branch 'redis' into locale
11ee3ba chore(locale): update localization
d668db1 feat(chore): added the ability to select a language
30681e3 chore(locale): updated locale package
f41fc3f chore(locale): shortening to Arg
0e4d6e7 fix(settings): search for lowercase args
ff2f378 Fix Exile detection bug
02038e6 chore(locale): another localization addition
35cca65 chore(locale): update localization
349ebc5 fix(locale): fixed localization call
7ac9762 chore(locale): update locales
cc03156 Merge branch 'redis' into locale
fb8f64a chore(locale): added a note to localization
ac51381 chore(locale): update ru locale
5fedef1 Fix link and player @s, split large debugstate msgs
5afe8dd chore(locale): large update of localization
70d8d39 Add Redis game state and game pointers cleanup
b001154 feat(locale): added localization doc
5434bc5 fix(test): fixed out non-working code
442c72d chore(redis): added password option
fb7387c chore(require): update require
f8ca052 fix(locale): removed formatting directive %s
16f6033 Merge branch 'redis' into locale
406f351 chore: removed redundant types from maps
5d2173c reformatting
a4b17f9 chore: removed redundant type from array
b68472e Merge pull request #11 from xTCry/master
9dcc33b Merge branch 'locale' into master
dc8ad3c Merge pull request #10 from denverquane/master
b847263 Added bot GIF and embed to readme
4905f1d Update readme with self-hosting steps and updated links/badges
fe6c6bb Mute/unmute fixes, resuming old games w/ new app, readme changes, added bot presence
8d113f8 Better handling of voice states in game state, and how users should be updated
8784944 Refactoring and file code splitting. Locks+voice change detection still finicky. Need more granular locking/unlocking
3459aee Added emojis to command definitions, cleaned up intro/help embed
3d0f64f Merge master, dependency reconciliation
2d3a722 Merge branch 'master' into redis
2be3c75 Merge pull request #9 from denverquane/master
08eeca0 Better locking/delay behavior, better game cleanup/deletion, stats
eadfab6 forgetme now clears username cache, bug fixed w/ linking twice, "clear" option for prids and auids
e54aa5d Added proper Redis locking/unlocking for state changes
05d27f8 Merge remote-tracking branch 'origin/master' into redis
98a39ca Better JSON formatting for debug command, added easter egg command
ccb1b34 Wrapped get/set of underlying data under methods of DGS, still have race conditions of Redis data... (get1, get2, then set1 means get2 is out-of-date)
1876d19 Misc redis fixes, new commands for debug, added commands to show/wipe user data (GDPR)
70039db Get/Set settings user and guild settings from redis
59c2da9 Deletion of old redis ptrs and game info
ab32b7e Redis stuff finally working; quite the refactor...
8a3a68b chore(locale): added BOT_LANG to app.json
9a67132 feat(GuildSettings): added Language support
488b5c2 chore(locale): update locales
2b4eb8d feat(main): add default lang BOT_LANG to config.txt
3d677c9 Merge pull request #7 from xTCry/master
fd98ed5 Merge pull request #6 from denverquane/master
a73985f chore(locale): update
6d8185a fix(.gitignore): ignore log files
864e503 Merge branch 'master' into locale
cd2761b Merge pull request #5 from denverquane/master
1591bca Initial tinkering with Redis, very broken refactor commit
5b825b1 chore(locale): update ru locale
4b389b4 chore(locale): extract en locale
adf3cb5 chore(locale): revert changes
cffceaa Revert "chore(locale): don't do it"
dcc3f2b chore(locale): don't do it
e9c1dc3 Merge branch 'locale' of https://github.com/xTCry/amongusdiscord into locale
c73a4d6 chore(locale): another localization addition
8d2f960 fix(locale): fixed crash with no translation
67423ba fix(locales): double slash removed
0caa39e Merge branch 'xtcry' into locale
8744128 Merge pull request #2 from xTCry/patch-1
e429aa4 feat(locale): added Russian localization
a967973 chore(locale): added localization in message_handlers
7f78182 chore(locale): added localization of phases in the state
a7499d1 chore(locale): added localization in responses
e27c1a5 feat(locale): trying to add a localization

automuteus - 2.4.3

Published by github-actions[bot] almost 4 years ago

Changelog

3d7a51c Merge pull request #202 from OiYouYeahYou/docker-updating
2968b4b Add .dockerignore
438a7e2 Set up non-root user and dedicated app directories
29bfd71 Lint Dockerfile with Hadolint
3b59576 Merge pull request #193 from denverquane/renovate/docker-build-push-action-2.x
ecb9bf5 Merge pull request #192 from denverquane/renovate/google.golang.org-api-0.x
b5f3a5c Merge pull request #197 from garrafote/master
80cd7b1 Avoiding 404 error on root requests
cbeb264 Update module google.golang.org/api to v0.34.0
a7d22af Update docker/build-push-action action to v2

automuteus - 2.4.2

Published by github-actions[bot] almost 4 years ago

Changelog

6da612f Hotfix- adjust default capture timeout to 10 hours
3cba513 Merge pull request #191 from denverquane/renovate/configure
abfd081 Add renovate.json
eac963c Merge pull request #189 from beheh/patch-1
2088f10 Disable docker-build.yml in PRs
f280e82 Readme changes didn't push
0939253 Added Smiles' banner and profile pictures, readme changes

automuteus - 2.4.1

Published by github-actions[bot] almost 4 years ago

Changelog

04d64e6 Merge remote-tracking branch 'origin/master'
eb04381 Further fixing of the permissions issue
11051bb Merge pull request #187 from contejus/master
dbb2689 Update app.json with changed environment variables for Heroku deployment
76205b0 Merge pull request #182 from beheh/fix-perms
4fdad88 Merge pull request #186 from xTCry/patch-1
c6e43e9 fix (commands): fixed critical bug
fbbe56c Fix HasRolePerms

automuteus - 2.4.0

Published by github-actions[bot] almost 4 years ago

New Features:

  • Username cache. Once you link a single time, the bot will remember which Discord user is associated with which in-game name. These can be viewed in the user_<userid>_settings.json if you feel like adding or removing mappings.
  • Prettier command and help message text!
  • Inactive game and socket timeouts; 60 minutes of inactivity from the capture will end the game.
  • CONFIG_PATH variable if you prefer to store config files in a different location (or in a directory that is volume-mounted by Docker)
  • LOG_FILE variable if you want logs stored elsewhere than the current directory
  • Better logging, logging by guild (labels AND separate log files), log command to record an anomaly (for finding in logs later)

BREAKING CHANGES:

  • Your config files will now be named guild_<id>_settings.json, and will not load the old file. Simply copy the contents to the new file to preserve your old settings.
  • SERVER_URL and EXT_PORT have been collapsed into a single HOST variable.
    Here is how your config would change:
SERVER_URL=http://host
EXT_PORT=1234

New Config:

HOST=http://host:1234

Changelog

137dc9a Merge pull request #177 from denverquane/organization
933df6a Bumped timeout to 30 minutes, added SERVICE_PORT variable and docs, logs for inactivity update
d0ed2c5 Added capture timeout variable and documentation
1d6d598 Merge branch 'master' into organization
fb077a4 Sigterm now triggers a graceful shutdown, better graceful shutdown behavior
9d831fa Merge pull request #176 from xTCry/patch-1
fdadc85 Nil pointer dereference fix
8cd1bc5 fix(commands): fixed runtime error: index out of range
7f92c58 Merge pull request #175 from chauffer/master
9fab272 goreleaser: Remove architecture from filename
8f28e41 Dockerfile: Build with latest tag and commit hash versions
b28f259 Settings and commands refactor to make them pretty
3e54a2a Fixed settings not updating/writing
1eaed87 Small name matching hotfix
e98cae6 Websocket timeout worker, merged master, fix for username file caching
94f02e1 Merge remote-tracking branch 'origin/master' into organization
41b30f0 Merge pull request #168 from chauffer/patch-2
07ef2ee goreleaser: Disable checksum
960707d Documentation
b9aeb9b Merge branch 'master' into organization
8266126 Writing to username caches, log command, filtered/separate guild logs, modified env vars
3ed20e9 Preliminary user name caches
24e5898 guild settings refactor to separate from persistent guild data
b881e4c Merge branch 'master' into organization
529c3bd Misc broken changes
eb1f36c Initial commit of many refactoring changes

automuteus - 2.3.4

Published by github-actions[bot] about 4 years ago

Changelog

5d3e92e Nil pointer fix and version link

automuteus - 2.3.3

Published by github-actions[bot] about 4 years ago

Changelog

e9abf13 Merge pull request #163 from argash/master
785d435 Update README.md
45c2592 Merge pull request #160 from INGY23/master
d13fe69 Fix capture download URL
ec348cf Update README.md
c2c3e82 Merge pull request #152 from argash/master
f8c16cd Update README.md
fc43806 Update README.md
1c50a79 Merge pull request #146 from chauffer/master
328be37 Add goreleaser
3ed74d9 Merge pull request #144 from Inaruslynx/patch-1
8f1042e Change to line 56
682465f Further corrected Heroku instructions
7fcb5f8 Added unRAID XML file for CA
b46a9f4 Merge pull request #145 from chauffer/patch-1
f5652c3 Update README.md
388c8ef Added instructions for heroku
01ed8df Add .github/workflows/docker-build.yml
27bf7fd Fixed regex oy vey
7de92ac Updated README.md for clarity of automatic launch
8d385ee Fixes to URL matching and display, and added 64bit dl links to the DM
42f9973 Merge pull request #136 from contejus/master
a931011 Update app.json
b20ff41 add port, emoji guild id env vars to app.json
e2de7df add remaining env vars in app.json, along with defaults and new GOVERSION var for heroku
dae40f8 update app.json
c09854f Merge pull request #135 from Khord/patch-1
a990a2e use heroku format for go version req
e166bbf Merge pull request #133 from denverquane/revert-132-master
067a276 Revert "Update voice status using "Channel Workers""
021a38a Merge pull request #132 from auyer/master
5b79ffb updates voice state with workers, removes priority

automuteus - Pause command, better Heroku support, bug fixes

Published by denverquane about 4 years ago

  • New .au pause command; bot will ignore all player/game updates and not apply any mutes/unmutes, etc.

  • Fixed .au end still applying player/game updates erroneously

  • Fixed common issue with URL the bot sends not being encoded properly for the capture to understand.

  • Thanks to @theoddtech for the External Port config work (should make Heroku users' lives easier!) Use the External Port (details in readme) when the externally-reachable port might be different from the port that the bot is running the socket.io server on (such as in Heroku).

  • Thanks to @nzbr for work to make troubleshooting easier; .au new will now display the URL and Code that you can manually enter into the capture, in case the Link URI doesn't automatically link. Nzbr also added support for the capture to actually accept the 8-character codes, so thanks for that 😆

automuteus - 2.3.1 Multi-token support, better status messages

Published by denverquane about 4 years ago

  • Fixed the functionality of DISCORD_BOT_TOKEN_2. This now functions as expected, and will dramatically improve the speed and reliability at which users are muted/deafened in 7+ player games! Setup a second bot exactly like the first (make sure to also invite it your server, same permissions as the first bot), and provide this token for it to be used.

  • Drastically improved the responsiveness of status message updates.

  • Cleaner and more predictable status messages; shorter message with less info for Menu and Unlinked statuses.

  • Unlinked players will now be listed so you can see which in-game players are still unlinked to discord users (finally).

  • Miscellaneous bug fixes and stability improvements

automuteus - 2.3.0 Easier Linking, Settings, auto-link, bug fixes!

Published by denverquane about 4 years ago

Lots of exciting features in this one :)

  • Linking with the capture is much easier now; no copying capture codes anymore! Simply run .au new and follow the steps (thanks @ph0t0shop)!
  • Room code/region in the status message will now be auto-updated as you enter or switch lobbies
  • .au settings to change settings while the bot is running (thanks @Giorgio)!
  • Auto-linking based on in-game names matching discord usernames or nicknames! This one can be a little finicky sometimes; if you join the VC late, try to change your in-game color to force the link to update automatically
  • (Potentially) Breaking Change: Changed SERVER_PORT to just PORT
  • Support for a 2nd Bot Token for distributing API requests. Recommended for 8+ player games. See README for details.

Developer/Contributor Patch Notes:

  • Added support for running the bot in sharded mode. See the README for details on the env for this.
  • Numerous additional ENV variables, including the ability to specify an alternative config location.
  • Added a flexible storage interface for writing/reading PersistentGuildData from an arbitrary store. This includes filesystem and Google Firestore storage for now; see storage/storage.go to see details for extending this interface to support other storage methods or databases.
  • Env variables to more readily enable remote deployments. See README.
automuteus - 2.2.4 Fixed player leaving/rejoining incorrect links

Published by denverquane about 4 years ago

This fixes the issue where old player data would hang around even after players have left. This resulted in new players being incorrectly linked to old data when joining.

Also fixed a bug where link wouldn't work until a user had joined a voice channel already (thanks CloakingPotion 👍 )

automuteus - 2.2.3 Better command handling

Published by denverquane about 4 years ago

Small release, but you can now use commands more flexibly, for example:

.au help and .auhelp are equivalent in this update.

Added version number to the help text/command reference
Added preliminary support for sharding...

automuteus - 2.2.2 Permissions hotfix

Published by denverquane about 4 years ago

Fixes an issue where the bot would respond with "no permission" to ANY text, not just .au commands

automuteus - 2.2.1 Functioning permissions in guildid_config.json

Published by denverquane about 4 years ago

You can now restrict permissions by certain "admin" userIDs, or by roleIDs in your config json!
You can also specify the default tracked channel name there, too

ex:

    "defaultTrackedChannel": "general",
    "adminIDs": ["12123434", "23213445"],
    "permissionRoleIDs": ["14352134", "12345656"],
automuteus - 2.2.0 Voice "overlapping" fixes, refresh command, bug fixes

Published by denverquane about 4 years ago

Biggest aspect of this release is the new behavior for muting/unmuting; users mentioned there was occasional overlap between when dead players were unmuted, and when alive players were re-muted (resulting in potentially leaked information).
Now, the mute/deafen changes for players will only apply once the changes to the more "priority" users have completed. Aka, only undeafen alive players at discussion once we're sure that the dead players are muted (no overlap)!

Status message will now update when the socket initially connects, or when it disconnects!

A couple miscellaneous bug fixes, better handling of async socket messages for future large deployments, the "refresh" (.au refresh) command to remake the status message at the bottom of the chat, a rare race condition, etc have been fixed

Package Rankings
Top 4.5% on Proxy.golang.org
Badges
Extracted from project README
Quickstart Crowdin