mod_muc_bot/README.markdown
author Kim Alvefur <zash@zash.se>
Sun, 03 Mar 2024 11:23:40 +0100
changeset 5857 97c9b76867ca
parent 5015 55cf7f063af6
permissions -rw-r--r--
mod_log_ringbuffer: Detach event handlers on logging reload (thanks Menel) Otherwise the global event handlers accumulate, one added each time logging is reoladed, and each invocation of the signal or event triggers one dump of each created ringbuffer.
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
5015
55cf7f063af6 mod_muc_bot/README: Update to account for 0.12 going stable
Kim Alvefur <zash@zash.se>
parents: 4573
diff changeset
    50
Works with Prosody 0.12 or later.