Development#
nix develop
just dev
./server/.envrc needs to contain export FLUXER_BOT_TOKEN=
Deployment#
Dockerfile and example docker-compose.yml to be added
Also prebuilt images
TODO#
features#
- add roles
-
@bot add-reaction-role :emote: @role <message-link> - respond to message with
@bot add-reaction-role :emote: @role -
@bot add-reaction-rolestep by step process
-
- same role different emotes
- handle new user reactions on startup
- handle duplicate emotes
- way to remove
emote -> rolemappings-
@bot remove-reaction-role :emote: <message-link> - respond to message with
emote -> rolemappings with@bot remove-reaction-role :emote: -
@bot remove-reaction-role :emote:-> remove if only one exists & prompt for choice when multiple exist -
@bot remove-reaction-role-> list all, allow deletion via reactions | when theres multiple with the same emote on different messages, make it a 2 step process
-
- clean up
- notify success/failure
- fix-reaction-roles command
- spread on_event over multiple actors (per guild)
- hold guild roles in actor state
- hold
emote -> rolemappings in actor state - handle gateway role changes
- GUILD_ROLE_CREATE
- GUILD_ROLE_UPDATE
- GUILD_ROLE_UPDATE_BULK
- GUILD_ROLE_DELETE
- handle bot leaving/getting removed from guild
- proper grom gateway supervision
bug-fixes#
- restart after crash / supervision
- bot giving itself all roles
- occasional ssl issue WARN #(charlist.from_string("Actor discarding unexpected message: ~s"), [charlist.from_string("Ssl(Sslsocket(//erl(#Port<0.17>), //erl(<0.159.0>), //erl(<0.158.0>), GenTcp, TlsGenConnection, //erl(#Ref<0.3355478690.2935619588.73249>), Undefined), <<129, 42, 123, 34, 100, 34, 58, 123, 34, 104, 101, 97, 114, 116, 98, 101, 97, 116, 95, 105, 110, 116, 101, 114, 118, 97, 108, 34, 58, 52, 49, 50, 53, 48, 125, 44, 34, 111, 112, 34, 58, 49, 48, 125>>)")])
- CouldNotDecode(UnableToDecode([DecodeError("Bool", "Dict", [])]))