soft fork of https://github.com/maubot/maubot, but for building local containers
Find a file
Denis Laxalde 8220bcedf6 Fix required=True not accounted for for simple argument
CommandHandler.__parse_args__ checks for the None value returned Argument.match() to possibly raise
if no value got passed to a *required* argument. Unfortunately, SimpleArgument.match() never
returns None but would instead return the empty string it receives (which is being stripped by
the caller, __parse_args__()). As such, `@argument(..., required=True)` does not work and silently
passes an empty string to the command handler.

We fix this returning None early in SimpleArgument.match() when it receives an empty string value.
2023-06-16 10:00:00 +02:00
.github/workflows Update linters 2023-02-12 12:45:48 +02:00
docker Remove legacy alembic command in docker/run.sh 2022-06-24 18:21:53 +03:00
examples Add missing file 2022-03-27 20:05:34 +03:00
maubot Fix required=True not accounted for for simple argument 2023-06-16 10:00:00 +02:00
.dockerignore Remove .md files from .dockerignore 2020-07-12 18:06:31 +03:00
.editorconfig Add changelog in a file 2022-03-25 20:51:44 +02:00
.gitignore Update gitignore 2023-01-05 00:37:47 +02:00
.gitlab-ci-plugin.yml Add GitLab CI file used by all plugins 2022-06-19 14:23:06 +03:00
.gitlab-ci.yml Update dependencies and alpine 2022-12-31 02:28:10 +02:00
.pre-commit-config.yaml Update linters 2023-02-12 12:45:48 +02:00
CHANGELOG.md Bump version to 0.4.1 2023-03-15 20:00:31 +02:00
dev-requirements.txt Update linters 2023-02-12 12:45:48 +02:00
Dockerfile Update dependencies and alpine 2022-12-31 02:28:10 +02:00
Dockerfile.ci Update dependencies and alpine 2022-12-31 02:28:10 +02:00
LICENSE Initial commit 2018-06-14 01:41:05 +03:00
MANIFEST.in Add changelog in a file 2022-03-25 20:51:44 +02:00
optional-requirements.txt Add support for asyncpg plugin databases 2022-03-26 13:59:49 +02:00
pyproject.toml Update and unpin black 2022-03-28 22:24:08 +03:00
README.md Update README.md 2022-12-29 18:33:15 +02:00
requirements.txt Update mautrix-python 2023-04-07 15:37:32 +03:00
setup.py Bump version to 0.4.0 2023-01-29 17:13:52 +02:00

maubot

Languages License Release GitLab CI Code style Imports

A plugin-based Matrix bot system written in Python.

Documentation

All setup and usage instructions are located on docs.mau.fi. Some quick links:

Discussion

Matrix room: #maubot:maunium.net

Plugins

Open a pull request or join the Matrix room linked above to get your plugin listed here.

The plugin wishlist lives at https://github.com/maubot/plugin-wishlist/issues.

Official plugins

  • sed - A bot to do sed-like replacements.
  • factorial - A bot to calculate unexpected factorials.
  • media - A bot that replies with the MXC URI of images you send it.
  • dice - A combined dice rolling and calculator bot.
  • karma - A user karma tracker bot.
  • xkcd - A bot to view xkcd comics.
  • echo - A bot that echoes pings and other stuff.
  • rss - A bot that posts RSS feed updates to Matrix.
  • reminder - A bot to remind you about things.
  • translate - A bot to translate words.
  • reactbot - A bot that responds to messages that match predefined rules.
  • exec - A bot that executes code.
  • commitstrip - A bot to view CommitStrips.
  • supportportal - A bot to manage customer support on Matrix.
  • gitlab - A GitLab client and webhook receiver.
  • github - A GitHub client and webhook receiver.
  • tex - A bot that renders LaTeX.
  • altalias - A bot that lets users publish alternate aliases in rooms.
  • satwcomic - A bot to view SatWComics.
  • songwhip - A bot to post Songwhip links.
  • manhole - A plugin that lets you access a Python shell inside maubot.

3rd party plugins

  • subreddit linkifier - A bot that condescendingly corrects a user when they enter an r/subreddit without providing a link to that subreddit
  • giphy - A bot that generates a gif (from giphy) given search terms
  • trump - A bot that generates a Trump tweet with the given content
  • poll - A bot that will create a simple poll for users in a room
  • urban - A bot that fetches definitions from Urban Dictionary.
  • twilio - Maubot-based SMS bridge
  • tmdb - A bot that posts information about movies fetched from TheMovieDB.org.
  • invite - A bot to generate invitation tokens from matrix-registration
  • wolframalpha - A bot that allows requesting information from WolframAlpha.
  • pingcheck - A bot to ping the echo bot and send rtt to Icinga passive check
  • ticker - A bot to return financial data about a stock or cryptocurrency.
  • weather - A bot to get the weather from wttr.in and return a single line of text for the location specified
  • youtube previewer - A bot that responds to a YouTube link with the video title and thumbnail.
  • reddit previewer - A bot that responds to a link of a reddit post with the sub name and title. If available, uploads the image or video.
  • pocket - A bot integrating with Pocket to fetch articles and archive them.
  • alternatingcaps - A bot repeating last message using aLtErNaTiNg cApS.
  • metric - A bot that will reply to a message that contains imperial units and replace them with metric units.
  • urlpreview - A bot that responds to links with a link preview embed, using Matrix API to fetch meta tags.
  • autoreply - A bot that sends automated replies when you're away, and shows you a summary of missed messages when you come back.
  • alertbot - A bot that recives monitoring alerts via alertmanager and forwards them to a matrix room.
  • hasswebhookbot - A bot receiving webhooks from Home Assistant.
  • ovgumensabot - A bot that automatically sends meals from OvGU canteen every day.
  • token - A maubot to create and manage your synapse user registration tokens.
  • redactbot - A bot that immediately redacts any posted file (except for whitelisted types).
  • join - A plugin that restricts who can convince your bot to join new rooms to certain users.
  • create-room - A plugin that creates new rooms and automatically sets them to be part of a private Matrix Space.
  • welcome - A plugin that greets new people with a configurable message when they join a room.
  • activity tracker - A plugin that minimally tracks user activity within a space. Useful for kicking inactive users from a private community.
  • random subreddit post - A plugin that returns a random post from a given subreddit.

† Uses a synchronous library which can block the whole maubot process (e.g. requests instead of aiohttp)

Deprecated/unmaintained plugins

  • jesaribot - A simple bot that replies with an image when you say "jesari".
    • Superseded by reactbot
  • gitea - A Gitea client and webhook receiver.