2023-05-19 11:05:53 +03:00
|
|
|
# LXMFBot
|
|
|
|
|
|
|
|
|
|
Python class to easily develop a simple Telethon style chatbot for the LXMF protocol.
|
|
|
|
|
|
|
|
|
|
## Installation
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
$ pip install -r requirements.txt
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Usage
|
|
|
|
|
|
|
|
|
|
- Instantiate the class with a name for the bot as parameter
|
|
|
|
|
- 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 |
|
|
|
|
|
|----|------|
|
|
|
|
|
| Linux: | `~/.local/share/LXMFBot/<botname>` |
|
|
|
|
|
| MacOS: | `~/Library/Application Support/LXMFBot/<botname>` |
|
|
|
|
|
| Windows: | `C:\Users\<username>\AppData\Local\LXMFBot\<botname>` |
|