3 releases

0.1.4 Mar 22, 2024
0.1.2 Jan 19, 2024
0.1.0 Jan 18, 2024

#321 in Web programming

Download history 3/week @ 2024-01-16 1/week @ 2024-02-13 10/week @ 2024-02-20 70/week @ 2024-02-27 12/week @ 2024-03-05 130/week @ 2024-03-19 1/week @ 2024-03-26 21/week @ 2024-04-02

152 downloads per month

BSD-3-Clause

91KB
2.5K SLoC

Richard

Project Sandbox

Richard is a friendly chatbot which can help you trigger alerts.

For now, the bot only support Webex room to speak for has a modular architecture to add any other communication protocols.

Features

Richard is modular and every module must be explicitely enabled.

Available modules:

  • webex: interface with Webex chat service
  • ping: responds to /ping commands with "pong"
  • help: responds to /help command
  • triggers: allow commands to be sent to all other modules
  • down_detectors: watch for one or more URL. Alert when target goes down
  • github_orgs: watch for all releases of all repositories of one or more github organisation
  • github_repos: watch one or more specific githib repositories, trigger message on new release
  • hello: send a random quote at a specific time interval
  • ollama: interface with ollama API, respond when no command is triggered
  • feeds: watch for one or more RSS feeds, alert on new items
  • roll: responds to /roll commands. e.g. /roll 1d20
  • webpages: watch for one or more webpages. Alert when page content change.
  • outscale_api_versions: watch for new API version of one or more Outscale API endpoints

Build

  1. Install Rustlang
  2. Run cargo build --release

If you need to have a static binary:

  1. Install musl toolchain: rustup target add x86_64-unknown-linux-musl
  2. Install musl-gcc (for Debian apt install musl-tools)
  3. Build with cargo build --target x86_64-unknown-linux-musl --release

Configure

Parameters are passed through environment variables. See config.env.ori example. Use --show-params flag to print all needed var env per modules

As a facility, you can:

  1. copy config.env.ori to config.env
  2. edit config.env
  3. load options by running source config.env

Run

source myconf.env && cargo run

Dependencies

~16–32MB
~533K SLoC