diff --git a/README.md b/README.md index 557e42f..801c43b 100644 --- a/README.md +++ b/README.md @@ -6,14 +6,24 @@ 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. +## Features + +The package supports the following features: +- **Filter-based callback system** +- **Images sending** +- **Videos sending with automatic thumbnail generation (requires `ffmpeg`)** + ## Installation Use `pip` to install this package: ```bash -python -m pip install git+https://git.tyukalov.su/nikita/mab +python -m pip install git+https://git.tyukalov.su/nikita/mab@v0.3.0 ``` +You should specify package version you want to use, because `main` without tags +contain unstable code. + ## Basic usage This is the most simple bot you can create. It would respond to any message @@ -23,21 +33,16 @@ that starts with `!test`, `!hello` or `!hi`. import asyncio from mab import MatrixBot, MatrixBotConfig from mab import TextCommandFilter +from mab.types import RoomEventData -from nio import MatrixRoom, MatrixMessageText - -bot: MatrixBot - -async def on_valid_command(room: MatrixRoom, event: RoomMessageText) -> None: - global bot +async def on_valid_command(data: RoomEventData) -> None: # do not respond to ourselves - if event.sender == bot.get_client().user_id: + if event.sender == data.bot.get_client().user_id: return - text = f"Your message contains {len(event.body)} symbols" - await bot.send_text_to_room(room.room_id, text) + text = f"Your message contains {len(data.event.body)} symbols" + await data.bot.send_text_to_room(data.room, text) async def main() -> None: - global bot # create and start the bot cfg = MatrixBotConfig( matrix_homeserver_url="matrix.domain.su", @@ -45,11 +50,11 @@ async def main() -> None: storage_directory=Path("storage_nagibator666") ) bot = MatrixBot(matrix_bot_config) - bot.add_event_callback( - on_valid_command, - TextCommandFilter(["test", "hello", "hi"]) + bot.add_callback( + TextCommandFilter(["test", "hello", "hi"]), + on_valid_command ) - bot.start() + await bot.start() # wait for Ctrl+C try: while True: diff --git a/pyproject.toml b/pyproject.toml index 4cb2cf9..31e453a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "mab" -version = "0.2.0" +version = "0.3.0" authors = [ { name = "Tyukalov Nikita", email = "nikita@tyukalov.su" } ]