2020-05-06 20:43:20 -04:00
# Safe Support Chat Bot
2020-03-02 17:43:30 -05:00
2020-05-06 20:43:20 -04:00
A simple Matrix bot that handles inviting, uninviting, and notifying Riot users on the recieving end of the [Safe Support chatbox ](https://github.com/nomadic-labs/safesupport-chatbox ).
2020-03-02 17:43:30 -05:00
2020-05-06 20:43:20 -04:00
The bot can be configured with an `.env` file with the following variables:
2020-03-02 17:43:30 -05:00
```
2020-03-22 23:38:07 -04:00
MATRIX_SERVER_URL=
BOT_DISPLAY_NAME=
BOT_USERNAME=
BOT_PASSWORD=
BOT_USERID=
FACILITATOR_ROOM_ID=
FACILITATOR_GROUP_ID=
CHAT_OFFLINE_MESSAGE=
CAPTURE_TRANSCRIPTS=
2020-03-02 17:43:30 -05:00
```
2020-03-22 23:38:07 -04:00
## What does the bot do?
* The bot receives an invitation to every chatroom created by the embedded chatbox, and automatically accepts
* Upon joining a new room, the bot invites all of the members of the Facilitators community
* When the first facilitator accepts the invitation, the bot uninvites the rest of the facilitators
* The bot notifies the Support Chat Notifications chatroom when there is a support request and when a facilitator joins
* If there are no facilitators online, the bot notifies the support seeker
* The bot makes the facilitator a moderator of the chatroom so they can change the room settings (i.e. room name)
* The bot listens to all the incoming messages and prints them to a transcript if that setting is enabled (`CAPTURE_TRANSCRIPT` )
* Messages that start with `!bot` are treated as commands.
* The bot sends a notification to the support chatroom and the Support Chat Notifications room if it crashes
2020-03-22 23:45:42 -04:00
* On startup, the bot deletes all of the old device IDs for its account
2020-03-22 23:38:07 -04:00
### Bot commands
|Command|Response|
2020-03-22 23:39:32 -04:00
--- | ---
2020-03-22 23:40:35 -04:00
|`!bot hi` |Bot responds with a greeting|
|`!bot transcript` |Bot sends the chat transcript as a .txt file|
2020-03-22 23:41:18 -04:00
|`!bot transcript please` |Bot happily sends the transcript :)|
2020-03-02 17:43:30 -05:00
## Local development
If you prefer to develop locally instead of on Glitch:
Clone the project
```
2020-05-06 20:43:20 -04:00
git clone https://github.com/nomadic-labs/safesupport-bot.git
2020-03-02 17:43:30 -05:00
```
Install dependencies
```
2020-05-06 20:43:20 -04:00
cd safesupport-bot
2020-03-02 17:43:30 -05:00
yarn
```
Copy the sample `.env` file and add in your own variables
```
cp .env.sample .env
```
Start the local server
```
2020-03-16 18:21:04 -04:00
yarn develop
```
Run the tests
```
yarn test
```
Production build
```
yarn build
2020-03-02 17:43:30 -05:00
```