annotate mod_muc_bot/README.markdown @ 5173:460f78654864

mod_muc_rtbl: also filter messages This was a bit tricky because we don't want to run the JIDs through SHA256 on each message. Took a while to come up with this simple plan of just caching the SHA256 of the JIDs on the occupants. This will leave some dirt in the occupants after unloading the module, but that should be ok; once they cycle the room, the hashes will be gone. This is direly needed, otherwise, there is a tight race between the moderation activities and the actors joining the room.
author Jonas Schäfer <jonas@wielicki.name>
date Tue, 21 Feb 2023 21:37:27 +0100
parents 55cf7f063af6
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4568
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
4569
9cbdb60e21f2 mod_muc_bot: Add Compatibility section to README
Kim Alvefur <zash@zash.se>
parents: 4568
diff changeset
48 # Compatibility
9cbdb60e21f2 mod_muc_bot: Add Compatibility section to README
Kim Alvefur <zash@zash.se>
parents: 4568
diff changeset
49
5011
55cf7f063af6 mod_muc_bot/README: Update to account for 0.12 going stable
Kim Alvefur <zash@zash.se>
parents: 4569
diff changeset
50 Works with Prosody 0.12 or later.