mod_muc_bot/README.markdown
author Matthew Wild <mwild1@gmail.com>
Tue, 18 Jan 2022 17:01:18 +0000
changeset 4880 0f5f2d4475b9
parent 4573 9cbdb60e21f2
child 5015 55cf7f063af6
permissions -rw-r--r--
mod_http_xep227: Add support for import via APIs rather than direct store manipulation In particular this transitions PEP nodes and data to be imported via mod_pep's APIs, fixing issues with importing at runtime while PEP data may already be live in RAM. Next obvious candidate for this approach is rosters, so clients get immediate roster pushes and other special handling (such as emitting subscribes to reach the desired subscription state).
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
4572
88089c61121d mod_muc_bot: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     1
---
88089c61121d mod_muc_bot: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     2
summary: Module for improving the life of bot authors
88089c61121d mod_muc_bot: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     3
---
88089c61121d mod_muc_bot: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     4
88089c61121d mod_muc_bot: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     5
This module makes it easier to write MUC bots by removing the
88089c61121d mod_muc_bot: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     6
requirement that the bot be online and joined to the room.
88089c61121d mod_muc_bot: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     7
88089c61121d mod_muc_bot: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     8
All the bot needs to do is send a message and this module handles the
88089c61121d mod_muc_bot: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     9
rest.
88089c61121d mod_muc_bot: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    10
88089c61121d mod_muc_bot: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    11
# Configuration
88089c61121d mod_muc_bot: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    12
88089c61121d mod_muc_bot: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    13
Example configuration in Prosody:
88089c61121d mod_muc_bot: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    14
88089c61121d mod_muc_bot: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    15
```lua
88089c61121d mod_muc_bot: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    16
Component "muc.example.com" "muc"
88089c61121d mod_muc_bot: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    17
88089c61121d mod_muc_bot: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    18
modules_enabled = {
88089c61121d mod_muc_bot: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    19
    "muc_bot",
88089c61121d mod_muc_bot: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    20
}
88089c61121d mod_muc_bot: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    21
known_bots = { "bot@example.com" }
88089c61121d mod_muc_bot: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    22
bots_get_messages = false
88089c61121d mod_muc_bot: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    23
ignore_bot_errors = true
88089c61121d mod_muc_bot: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    24
```
88089c61121d mod_muc_bot: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    25
88089c61121d mod_muc_bot: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    26
# Sending messages
88089c61121d mod_muc_bot: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    27
88089c61121d mod_muc_bot: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    28
Simply send a stanza like this from your bot:
88089c61121d mod_muc_bot: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    29
88089c61121d mod_muc_bot: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    30
```xml
88089c61121d mod_muc_bot: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    31
<message type="groupchat" to="channel@muc.example.com">
88089c61121d mod_muc_bot: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    32
  <body>Beep boop, I'm a bot!</body>
88089c61121d mod_muc_bot: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    33
  <nick xmlns="http://jabber.org/protocol/nick">Botty</nick>
88089c61121d mod_muc_bot: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    34
</message>
88089c61121d mod_muc_bot: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    35
```
88089c61121d mod_muc_bot: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    36
88089c61121d mod_muc_bot: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    37
## Use with mod_rest
88089c61121d mod_muc_bot: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    38
88089c61121d mod_muc_bot: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    39
Using [mod_rest] to interact with MUC suffers from the same need to join
88089c61121d mod_muc_bot: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    40
with an online resource, so this module helps with that as well!
88089c61121d mod_muc_bot: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    41
88089c61121d mod_muc_bot: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    42
```bash
88089c61121d mod_muc_bot: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    43
curl https://xmpp.example.com/rest/message/groupchat/room@muc.example.com \
88089c61121d mod_muc_bot: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    44
    -d body="beep boop" \
88089c61121d mod_muc_bot: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    45
    -d nick="Botty"
88089c61121d mod_muc_bot: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    46
```
88089c61121d mod_muc_bot: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    47
4573
9cbdb60e21f2 mod_muc_bot: Add Compatibility section to README
Kim Alvefur <zash@zash.se>
parents: 4572
diff changeset
    48
# Compatibility
9cbdb60e21f2 mod_muc_bot: Add Compatibility section to README
Kim Alvefur <zash@zash.se>
parents: 4572
diff changeset
    49
9cbdb60e21f2 mod_muc_bot: Add Compatibility section to README
Kim Alvefur <zash@zash.se>
parents: 4572
diff changeset
    50
Prosody **trunk** required.