soft fork of https://github.com/maubot/maubot, but for building local containers
8220bcedf6
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. |
||
---|---|---|
.github/workflows | ||
docker | ||
examples | ||
maubot | ||
.dockerignore | ||
.editorconfig | ||
.gitignore | ||
.gitlab-ci-plugin.yml | ||
.gitlab-ci.yml | ||
.pre-commit-config.yaml | ||
CHANGELOG.md | ||
dev-requirements.txt | ||
Dockerfile | ||
Dockerfile.ci | ||
LICENSE | ||
MANIFEST.in | ||
optional-requirements.txt | ||
pyproject.toml | ||
README.md | ||
requirements.txt | ||
setup.py |
maubot
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)