nod / nio-smith

a modular bot for @matrix-org, written in python using matrix-nio, supporting end-to-end-encryption out of the box

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Nio Smith

#nio-smith

A modular bot for @matrix-org, written in python using matrix-nio, supporting end-to-end-encryption out of the box. It's based on the lovely nio-template and tries to incorporate most of @anoadragon453 's improvements.

Be advised: the bot (and it's name ;-) is a work in progress, but basic functionality exists. Huge or small rewrites of any part of the project may or may not happen soon(ish).

Please see docs/BREAKING.md for a list of breaking changes.

Currently included plugins consist mostly of pretty silly, mostly semi-useful stuff we used on IRC. PRs and feedback welcome. :-)

Features

  • ✔ transparent end-to-end encryption (EE2E)
  • ✔ configurable command-prefix
  • ✔ fuzzy command matching (for the autocorrect-victims among us)
  • ✔ dynamic plugin-loading (on startup), just place your plugin in the plugins-directory
  • ✔ autojoin channels on invite (can be restricted to specified accounts)
  • ✔ silently ignores unknown commands to avoid clashes with other bots using the same command prefix
  • ✔ dynamic population of help-command with plugins valid for the respective room
  • ✔ resilience against temporary homeserver-outages (e.g. during restarts)
  • ✔ resilience against exceptions caused by plugins
  • ❌ cross-signing support
  • ❌ dynamic plugin-loading (at runtime)
  • ❌ user-management

See docs/PLUGINS.md for further details on plugin capabilities.

Requirements

  • python 3.8 or later
  • libolm
  • matrix-nio with end-to-end-encryption enabled
  • fuzzywuzzy for fuzzy command matching and nick linking (yes, it's worth it)

See docs/PLUGINS.md for further details on additional plugin requirements.

Setup

docs/SETUP.md contains a short guide on getting you started with the bot.

Project Structure

Please see docs/STRUCTURE.md for a description of the project structure and included files.

About

a modular bot for @matrix-org, written in python using matrix-nio, supporting end-to-end-encryption out of the box

License:Apache License 2.0


Languages

Language:Python 100.0%