Sun, 05 Dec 2021 18:35:39 +0000
Add rtbl_admin plugin
local verse = require "verse"; local jid = require "util.jid"; local sha256 = require "util.hashes".sha256; function riddim.plugins.rtbl_admin(bot) bot.stream:add_plugin("pubsub"); local config = bot.config.rtbl_admin; bot:hook("commands/rtbl-add", function (command) local reported_jid = command.param and jid.prep(command.param:match("^%S+")); local hash = sha256(reported_jid, true); bot.stream.pubsub(config.host, config.node):publish( hash, -- item id nil, -- options (not implemented anyway) -- <report xmlns="urn:xmpp:reporting:1" reason="urn:xmpp:reporting:abuse"/> verse.stanza("report", { xmlns = "urn:xmpp:reporting:1"; reason = "urn:xmpp:reporting:spam"; }), function (success) -- callback if not success then command:reply("Failed to update RTBL"); return; end command:reply("RTBL entry added"); end ); end); bot:hook("commands/rtbl-remove", function (command) local reported_jid = command.param and jid.prep(command.param:match("^%S+")); local hash = sha256(reported_jid, true); bot.stream.pubsub(config.host, config.node):retract( hash, -- item id function (success) -- callback if not success then command:reply("Failed to update RTBL"); return; end command:reply("RTBL entry removed"); end ); end); end