forked from imbev/simplematrixbotlib
An easy to use bot library for the Matrix ecosystem written in Python. https://matrix.to/#/#simplematrixbotlib:matrix.org
- Python 100%
| .github | ci: 👷 Remove manual pip install pytest-github-actions-annotate-failures from pytest workflow | |
| doc | Add notice to readthedocs | |
| examples | Add reply_to param in api.send_text_message. Also add usage example. ( #47 ) | |
| simplematrixbotlib | allow invalid configuration, useful in some rare special use cases. | |
| tests | Fix unit tests ( #92 ) | |
| .gitignore | add .venv to gitignore | |
| CHANGELOG.md | Release 2.12.0 | |
| CONTRIBUTING.md | Update references from Github to Codeberg repository ( #82 ) | |
| LICENSE | Update LICENSE | |
| pyproject.toml | version v2.42.27 | |
| README.md | Release 2.12.0 | |
Simple-Matrix-Bot-Lib
(Version 2.12.0)
Simple-Matrix-Bot-Lib is a Python bot library for the Matrix ecosystem built on matrix-nio.
View on Codeberg or View on PyPi or View docs on readthedocs.io
Learn how you can contribute here.
Features
- hands-off approach: get started with just 10 lines of code (see example)
- end-to-end encryption support
- limited verification support (device only)
- easily extensible config file
- user access management
- access the matrix-nio library to use advanced features
Installation
simplematrixbotlib can be either installed from PyPi or downloaded from Codeberg.
Installation from PyPi:
python -m pip install simplematrixbotlib
Read the docs to learn how to install E2E encryption support.
Download from Codeberg:
git clone --branch master https://codeberg.org/imbev/simplematrixbotlib.git
Example Usage
# echo.py
# Example:
# randomuser - "!echo example string"
# echo_bot - "example string"
import simplematrixbotlib as botlib
creds = botlib.Creds("https://home.server", "echo_bot", "pass")
bot = botlib.Bot(creds)
PREFIX = '!'
@bot.listener.on_message_event
async def echo(room, message):
match = botlib.MessageMatch(room, message, bot, PREFIX)
if match.is_not_from_this_bot() and match.prefix() and match.command("echo"):
await bot.api.send_text_message(
room.room_id, " ".join(arg for arg in match.args())
)
bot.run()
More information and examples can be found here.