Mattermost async bot
Project description
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
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file aiomatter-0.1.5.tar.gz
.
File metadata
- Download URL: aiomatter-0.1.5.tar.gz
- Upload date:
- Size: 9.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 12a51c6dffc874a24f42617f51f6a43e1a41d45e9232c397a131d45ed771345d |
|
MD5 | ceedb8f43fc13dac3065bee1cd2da651 |
|
BLAKE2b-256 | be159c71e834f62df17024a1ab95842f9013ae112031d8262cb8daf8d4184c27 |
File details
Details for the file aiomatter-0.1.5-py3-none-any.whl
.
File metadata
- Download URL: aiomatter-0.1.5-py3-none-any.whl
- Upload date:
- Size: 11.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 29208c4f5d56be4024ad156072a16fc3f0511770c5801c7192bc9caf05d6bb12 |
|
MD5 | 8841634385ac81c0d68086d5d788e994 |
|
BLAKE2b-256 | 4e8db3d216fe65c9beee73a29ddd18e95e47359cf6ed9552ed42beda9358dff8 |