plugins/rtbl_admin.lua

Mon, 06 Dec 2021 11:27:16 +0000

author
Matthew Wild <mwild1@gmail.com>
date
Mon, 06 Dec 2021 11:27:16 +0000
changeset 167
2073137bc943
parent 166
95b668d73ff9
child 168
1c2b8d10ceed
permissions
-rw-r--r--

rtbl_admin: Notify subscribers on item removal (requires verse 98dc1750584d)

165
ec0567256b11 Add rtbl_admin plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1 local verse = require "verse";
ec0567256b11 Add rtbl_admin plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2 local jid = require "util.jid";
ec0567256b11 Add rtbl_admin plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3 local sha256 = require "util.hashes".sha256;
ec0567256b11 Add rtbl_admin plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
4
ec0567256b11 Add rtbl_admin plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
5 function riddim.plugins.rtbl_admin(bot)
ec0567256b11 Add rtbl_admin plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
6 bot.stream:add_plugin("pubsub");
ec0567256b11 Add rtbl_admin plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
7
ec0567256b11 Add rtbl_admin plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
8 local config = bot.config.rtbl_admin;
ec0567256b11 Add rtbl_admin plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
9
ec0567256b11 Add rtbl_admin plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
10 bot:hook("commands/rtbl-add", function (command)
ec0567256b11 Add rtbl_admin plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
11 local reported_jid = command.param and jid.prep(command.param:match("^%S+"));
ec0567256b11 Add rtbl_admin plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
12 local hash = sha256(reported_jid, true);
ec0567256b11 Add rtbl_admin plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
13 bot.stream.pubsub(config.host, config.node):publish(
ec0567256b11 Add rtbl_admin plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
14 hash, -- item id
ec0567256b11 Add rtbl_admin plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
15 nil, -- options (not implemented anyway)
ec0567256b11 Add rtbl_admin plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
16 -- <report xmlns="urn:xmpp:reporting:1" reason="urn:xmpp:reporting:abuse"/>
ec0567256b11 Add rtbl_admin plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
17 verse.stanza("report", {
ec0567256b11 Add rtbl_admin plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
18 xmlns = "urn:xmpp:reporting:1";
166
95b668d73ff9 rtbl_admin: Fix reason string (abuse is defined to be the most generic)
Matthew Wild <mwild1@gmail.com>
parents: 165
diff changeset
19 reason = "urn:xmpp:reporting:abuse"; }),
165
ec0567256b11 Add rtbl_admin plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
20 function (success) -- callback
ec0567256b11 Add rtbl_admin plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
21 if not success then
ec0567256b11 Add rtbl_admin plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
22 command:reply("Failed to update RTBL");
ec0567256b11 Add rtbl_admin plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
23 return;
ec0567256b11 Add rtbl_admin plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
24 end
ec0567256b11 Add rtbl_admin plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
25 command:reply("RTBL entry added");
ec0567256b11 Add rtbl_admin plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
26 end
ec0567256b11 Add rtbl_admin plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
27 );
ec0567256b11 Add rtbl_admin plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
28 end);
ec0567256b11 Add rtbl_admin plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
29
ec0567256b11 Add rtbl_admin plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
30 bot:hook("commands/rtbl-remove", function (command)
ec0567256b11 Add rtbl_admin plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
31 local reported_jid = command.param and jid.prep(command.param:match("^%S+"));
ec0567256b11 Add rtbl_admin plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
32 local hash = sha256(reported_jid, true);
ec0567256b11 Add rtbl_admin plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
33 bot.stream.pubsub(config.host, config.node):retract(
ec0567256b11 Add rtbl_admin plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
34 hash, -- item id
167
2073137bc943 rtbl_admin: Notify subscribers on item removal (requires verse 98dc1750584d)
Matthew Wild <mwild1@gmail.com>
parents: 166
diff changeset
35 true, -- notify subscribers
165
ec0567256b11 Add rtbl_admin plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
36 function (success) -- callback
ec0567256b11 Add rtbl_admin plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
37 if not success then
ec0567256b11 Add rtbl_admin plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
38 command:reply("Failed to update RTBL");
ec0567256b11 Add rtbl_admin plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
39 return;
ec0567256b11 Add rtbl_admin plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
40 end
ec0567256b11 Add rtbl_admin plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
41 command:reply("RTBL entry removed");
ec0567256b11 Add rtbl_admin plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
42 end
ec0567256b11 Add rtbl_admin plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
43 );
ec0567256b11 Add rtbl_admin plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
44 end);
ec0567256b11 Add rtbl_admin plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
45 end

mercurial