Aiomatter Bot
Aiomatter is a Python library for creating a bot that interacts with Mattermost via its API and WebSocket. This README provides instructions on setting up the bot and an example of a greeting plugin.
Table of Contents
Installation
To install Aiomatter, use pip:
pip install aiomatter
Configuration
To configure the bot, you need to create a settings object with the following parameters:
bot_token: Your Mattermost bot token.base_url: The base URL of your Mattermost server.api_path: The API path (default is/api/v4).
Example:
from aiomatter.settings import Settings
settings = Settings(
bot_token='your_bot_token',
base_url='https://chat.yourserver.com',
api_path='/api/v4'
)
Running the Bot
To run the bot, create an instance of the Bot class and call the run method:
from aiomatter.bot import Bot
from aiomatter.settings import Settings
from plugins import MyPlugin # Your plugin
def get_bot() -> Bot:
settings = Settings(
bot_token='your_bot_token',
base_url='https://chat.yourserver.com',
api_path='/api/v4'
)
plugins = [MyPlugin()]
return Bot(settings=settings, plugins=plugins)
if __name__ == '__main__':
bot = get_bot()
bot.run()
Example Greeting Plugin
The following example demonstrates a simple greeting plugin that responds to the POSTED event.
from aiomatter.plugin import Plugin
from aiomatter.wrappers import listen
from aiomatter.events import EventType
from aiomatter.schemas.events import PostEvent
class MyPlugin(Plugin):
@listen(EventType.POSTED)
async def hello(self, event: PostEvent):
channel_id = event.data.post.channel_id # Access channel_id from the typed event
if channel_id:
await self.driver.send_message(
channel_id=channel_id,
message='Hello!'
)
self.logger.info(f"Message sent to channel {channel_id}.")
Note on Typing
In the plugin methods, the decorator processes the event and returns a typed event instead of a generic event. This enhances type safety and improves code readability.
License
This project is licensed under the MIT License.
Author
Vladimir Savelev - GitHub Profile Polina Grunina - GitHub Profile
Release files for aiomatter 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| aiomatter-0.2.0.tar.gz | 13.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| aiomatter-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 30.7 kB
Release files / aiomatter-0.2.0.tar.gz
| Download URL | aiomatter-0.2.0.tar.gz |
|---|---|
| Size | 13.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7f83f80db773442d2dfb14a6fc4c2ab4bdbae157214b0935c40526e6e1be4b11
|
|
BLAKE2b-256 checksum How to use checksums |
9b710eaf499d055ea3bc6b0c24f4f35716dd387d56f3d3b4e919c03247f4568e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.0.1 CPython/3.11.1
|
Release files / aiomatter-0.2.0-py3-none-any.whl
| Download URL | aiomatter-0.2.0-py3-none-any.whl |
|---|---|
| Size | 16.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7b205b020382dbf77e58a6f8907ff35b575ca3fda537ba786e0226db62bc009b
|
|
BLAKE2b-256 checksum How to use checksums |
353aa4d863e27774d3e80d097930a8ddb5a93461f80699d5318e274499a79470
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.0.1 CPython/3.11.1
|