d41b588adcf2d043a3a1bce269e27fb388e0ceb1
`2026-matrix-csonac` (it uses this package) failed to send messages to the room after bot restart. The problem would go away if the bot received some message in the room it was trying to send a message to. This commit fixes the problem. - Added `load_store` (issue #1) - Added `full_state=True` to sync_forever
mab
mab (MAtrix Bot) is a very simple Python package that can be used to develop very simple Matrix bots. I have decided to make something like this because I wasn't satisfied by simplicity and usage of other libraries. So this library does not aim to be "the best matrix bot library", it only aims to be good enough for me.
Installation
Use pip to install this package:
python -m pip install git+https://git.tyukalov.su/nikita/mab
Basic usage
This is the most simple bot you can create
import asyncio
from mab import MatrixBot, MatrixBotConfig
from nio import MatrixRoom, MatrixMessageText
bot: MatrixBot
async def on_room_message_text(room: MatrixRoom, event: RoomMessageText) -> None:
global bot
# do not respond to ourselves
if event.sender == bot.get_client().user_id:
return
text = f"You message contains {len(event.body)} symbols"
await bot.send_text_to_room(room.room_id, text)
async def main() -> None:
global bot
# create and start the bot
cfg = MatrixBotConfig(
matrix_homeserver_url="matrix.domain.su",
matrix_username_localpart="nagibator666",
storage_directory=Path("storage_nagibator666")
)
bot = MatrixBot(matrix_bot_config)
bot.start()
# wait for Ctrl+C
try:
while True:
await asyncio.sleep(1)
except:
pass
# stop the bot
await bot.stop()
if __name__ == "__main__":
asyncio.run(main())
Languages
Python
100%