Another pass on the docs

This commit is contained in:
Luke Murphy 2021-01-24 01:13:43 +01:00
parent 7b96a74299
commit b1f4d6112f
No known key found for this signature in database
GPG Key ID: 5E2EF5A63E3718CC

View File

@ -11,9 +11,8 @@ A friendly lightweight wrapper around
[slixmpp](https://slixmpp.readthedocs.io/) for writing XMPP bots in Python. The [slixmpp](https://slixmpp.readthedocs.io/) for writing XMPP bots in Python. The
goal is to make writing and running XMPP bots easy and fun. `xbotlib` is a goal is to make writing and running XMPP bots easy and fun. `xbotlib` is a
[single file implementation](./xbotlib.py) which can easily be understood and [single file implementation](./xbotlib.py) which can easily be understood and
extended. The `xbotlib` source code and ideas are largely extended. The `xbotlib` source code and ideas are largely borrowed from the
borrowed/stolen/adapted/reimagined from the XMPP bot experiments that have gone XMPP bot experiments going on in
on and are still going on in
[Varia](https://git.vvvvvvaria.org/explore/repos?tab=&sort=recentupdate&q=bots). [Varia](https://git.vvvvvvaria.org/explore/repos?tab=&sort=recentupdate&q=bots).
We're lurking in We're lurking in
@ -54,8 +53,9 @@ $ pip install xbotlib
## Example ## Example
Put the following in a `echo.py` file. This bot is pretty simple: it echoes Put the following in a `echo.py` file. This bot echoes back whatever message
back whatever message you send it. It is an easy way to get started. you send it in both direct messages and group messages. In group chats, you
need to message the bot directly (e.g. `echobot: hi`).
```python ```python
from xbotlib import Bot from xbotlib import Bot
@ -67,6 +67,8 @@ class EchoBot(Bot):
def group(self, message): def group(self, message):
self.reply(message.content, room=message.room) self.reply(message.content, room=message.room)
EchoBot()
``` ```
And then `python echo.py`. You will be asked a few questions in order to load And then `python echo.py`. You will be asked a few questions in order to load
@ -260,7 +262,7 @@ deployments.
In order to store data you can make use of the `self.db` attribute of the `Bot` In order to store data you can make use of the `self.db` attribute of the `Bot`
class. It is a Python dictionary which will be saved to disk automatically for class. It is a Python dictionary which will be saved to disk automatically for
you as a `<nick>.json` in your current working directory. The name and path to you as a `<nick>.json` in your current working directory. The name and path to
this file can be configured. this file can be configured using the storage file option.
```python ```python
def group(self, message): def group(self, message):
@ -272,7 +274,7 @@ If you want to inspect the database when the bot is not running, you can look
in the file directly. in the file directly.
```bash ```bash
$ cat mybot.json $ cat <nick>.json
``` ```
For more advanced use cases, `xbotlib` also supports [Redis](https://redis.io/) For more advanced use cases, `xbotlib` also supports [Redis](https://redis.io/)
@ -344,7 +346,7 @@ but you must specify the `content_type=...` keyword argument for `respond`.
If you want to pass data from your `direct`/`group` functions to the `serve` If you want to pass data from your `direct`/`group` functions to the `serve`
function, you'll need to make use of [some type of persistent function, you'll need to make use of [some type of persistent
storage](#persistent-storage). Your `serve` function can read from the storage storage](#storage-back-end). Your `serve` function can read from the storage
back-end and then respond. back-end and then respond.
## Deploy your bots ## Deploy your bots