lxmf-bot/README.md

54 lines
1.6 KiB
Markdown
Raw Normal View History

2023-05-19 11:05:53 +03:00
# LXMFBot
Python class to easily develop a simple Telethon style chatbot for the LXMF protocol.
2023-05-24 17:31:22 +03:00
![screenshot](screenshot.png)
2023-05-19 11:05:53 +03:00
## Installation
```
$ pip install -r requirements.txt
```
## Usage
- Instantiate the class with a `name` for the bot as parameter.
- Two additional options the class takes as parameters are `announce` to define the announce interval in seconds (defaults to `360`) and an `announce_immediately` boolean to define whether the bot should announce itself immediately after instantiation or not (defaults to `False`)
2023-05-19 11:05:53 +03:00
- Use the `received` decorator to define functions for parsing received messages
2023-05-19 11:13:16 +03:00
- Use the `<instance>.send(recipient_hash, message)` or `msg.reply(message)` methods to send messages
2023-05-19 11:05:53 +03:00
- Launch the bot using the `run` method
2023-05-19 11:13:33 +03:00
### Message Object
2023-05-19 11:13:16 +03:00
Functions decorated by `received` have access to a `msg` parameter that has the following content:
- `msg.sender` : the sender hash address
- `msg.content`: the received message as utf-8 string
- `msg.reply` : function that takes a string parameter and sends it as reply to the sender
- `msg.lxmf` : the complete `LXMessage` object for more complex parsing
2023-05-19 11:13:55 +03:00
### Example
2023-05-19 11:05:53 +03:00
Example of a bot that echos a message back to the sender:
```Python
2023-05-19 11:18:30 +03:00
from lxmfbot import LXMFBot
2023-05-19 11:05:53 +03:00
bot = LXMFBot("NodeBot")
@bot.received
def echo_msg(msg):
msg.reply(msg.content)
bot.run()
2023-05-24 00:41:10 +03:00
```
### Identity & Announce Files
2023-05-24 00:44:05 +03:00
The bots' identity and announce file location
2023-05-24 00:41:10 +03:00
2023-05-24 00:44:05 +03:00
| OS | Path |
2023-05-24 00:45:49 +03:00
|:-- |:--- |
2023-05-24 00:44:05 +03:00
| Linux: | `~/.local/share/LXMFBot/<botname>` |
| MacOS: | `~/Library/Application Support/LXMFBot/<botname>` |
| Windows: | `C:\Users\<username>\AppData\Local\LXMFBot\<botname>` |