Go to file
2020-03-22 23:45:42 -04:00
__mocks__ catch bot rate limiting error, update tests 2020-03-18 03:00:43 -04:00
dist catch bot rate limiting error, update tests 2020-03-18 03:00:43 -04:00
src update bot ot use groups 2020-03-20 17:43:12 -04:00
transcripts changes from glitch 2020-03-15 14:10:59 -04:00
.babelrc refactor into a bot class 2020-02-23 13:58:09 -05:00
.env.sample use dotenv instead of config, sync with changes from glitch 2020-03-02 17:52:25 -05:00
.gitignore catch bot rate limiting error, update tests 2020-03-18 03:00:43 -04:00
package.json catch bot rate limiting error, update tests 2020-03-18 03:00:43 -04:00
README.md Update README.md 2020-03-22 23:45:42 -04:00
webpack.config.js bot proof of concept 2020-02-22 19:30:27 -05:00
yarn.lock bot test suite and refactoring 2020-03-16 14:42:22 -04:00

OCRCC Bot

A simple Matrix bot that handles inviting, uninviting, and notifying Riot users on the recieving end of the OCRCC chatbox.

A demo of this bot is hosted on Glitch: https://glitch.com/edit/#!/nomadic-labs-ocrcc-bot You can remix it and continue developing directly on Glitch. All you need to do is add an .env file with the following variables:

MATRIX_SERVER_URL=
BOT_DISPLAY_NAME=
BOT_USERNAME=
BOT_PASSWORD=
BOT_USERID=
FACILITATOR_ROOM_ID=
FACILITATOR_GROUP_ID=
CHAT_OFFLINE_MESSAGE=
CAPTURE_TRANSCRIPTS=

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
  • On startup, the bot deletes all of the old device IDs for its account

Bot commands

Command Response
!bot hi Bot responds with a greeting
!bot transcript Bot sends the chat transcript as a .txt file
!bot transcript please Bot happily sends the transcript :)

Local development

If you prefer to develop locally instead of on Glitch:

Clone the project

git clone https://github.com/nomadic-labs/ocrcc-bot.git

Install dependencies

cd ocrcc-bot
yarn

Copy the sample .env file and add in your own variables

cp .env.sample .env

Start the local server

yarn develop

Run the tests

yarn test

Production build

yarn build