diff options
| author | Gustav Sörnäs <gustav@sornas.net> | 2020-11-16 16:19:21 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-11-16 16:19:21 +0100 |
| commit | a20e0162412ac4af6ef629e4b99654afad5a464a (patch) | |
| tree | 0841535afce3070ab71591d56cb46a9d3e174aac /README.md | |
| parent | f771b73bcda915ce69db49f40473558ae567223f (diff) | |
| parent | 96b9a8f66f62e64bc4907e12de0772392f7804c7 (diff) | |
| download | kodapa-a20e0162412ac4af6ef629e4b99654afad5a464a.tar.gz | |
Merge pull request #1 from lithekod/rust
Initial minimum viable bot
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 73 |
1 files changed, 67 insertions, 6 deletions
@@ -1,6 +1,69 @@ A bot to help the board with their meeting agenda and meeting reminders. +## Requirements + +The binary itself depends on OpenSSL, as well as the usual suspects (glibc): + +``` +$ ldd target/debug/agenda-bot + linux-vdso.so.1 (0x00007ffc353fd000) + libssl.so.1.1 => /usr/lib/libssl.so.1.1 (0x00007f58987d2000) + libcrypto.so.1.1 => /usr/lib/libcrypto.so.1.1 (0x00007f58984f4000) + libdl.so.2 => /usr/lib/libdl.so.2 (0x00007f58984ee000) + libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007f58984cc000) + libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007f58984b2000) + libc.so.6 => /usr/lib/libc.so.6 (0x00007f58982e9000) + /lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2 (0x00007f5899b1b000) + libm.so.6 => /usr/lib/libm.so.6 (0x00007f58981a1000) +``` + +It has only been tested on Linux. macOS should work. Rust stable is needed to +compile. + +## Building + +In order to actually use the bot you need: + +- Somewhere for it to live +- A Slack "classic" bot user +- A Discord bot user +- Necessary permissions to add bots to your Slack workspace and Discord server + +Then, either pass the bot tokens as enviornment variables (`DISCORD_API_TOKEN` +and `SLACK_API_TOKEN`), or hard-code them into the binary (**NOT RECOMMENDED** +except for development purposes) by editing `src/discord.rs` and `src/slack.rs`. + +Which channels the messages are sent to is currently specified via either +hard-coded constant values (again, not recommended, but at least not a security +issue here) or environment variables (`DISCORD_CHANNEL` and `SLACK_CHANNEL`). If +any of the two isn't set the bot will print a list of channels and their IDs +when starting so you can specify a channel. + +The following shows all necessary steps needed to build and run the bot: + +```shell +$ git clone https://github.com/lithekod/agenda-bot.git +$ cd agenda-bot +$ DISCORD_API_TOKEN="" \ # fill + SLACK_API_TOKEN="" \ # in + DISCORD_CHANNEL="" \ # your + SLACK_CHANNEL="" \ # values + cargo run +``` + +## Current (non-)features + +- Messages are sent where they should +- ...but they aren't stored anywhere and can't be summarized. +- No reminders. +- No permissions / trusted users / trusted channels. Please, only private + testing servers for now. + +See the TODO for more planned features. + +## Sales pitch (not yet implemented) + Board members can add items to the agenda by sending a message containing something like @@ -9,10 +72,8 @@ containing something like ``` in either Slack or Discord. The bot sends a confirmation in both Slack -and Discord so everyone can see what's added. - -Every wednesday afternoon (configurable), the day before the meeting, -the bot sends a reminder in both Slack and Discord, as well as the -agenda. +and Discord so everyone can see what's being added. -More features TBD. +Every Wednesday afternoon (configurable) the bot sends a reminder and the agenda +in both Slack and Discord. An additional reminder is sent 1 hour before the +meeting. |
