Software /
code /
verse
File
plugins/blocking.lua @ 445:b119dc4d8bc2
plugins.smacks: Don't warn about zero stanzas acked
It's only if the count somehow goes backwards that something is really
wrong. An ack for zero stanzas is fine and we don't need to do anything.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Thu, 10 Jun 2021 11:58:23 +0200 |
parent | 250:a5ac643a7fd6 |
line wrap: on
line source
local verse = require "verse"; local xmlns_blocking = "urn:xmpp:blocking"; function verse.plugins.blocking(stream) -- FIXME: Disco stream.blocking = {}; function stream.blocking:block_jid(jid, callback) stream:send_iq(verse.iq{type="set"} :tag("block", { xmlns = xmlns_blocking }) :tag("item", { jid = jid }) , function () return callback and callback(true); end , function () return callback and callback(false); end ); end function stream.blocking:unblock_jid(jid, callback) stream:send_iq(verse.iq{type="set"} :tag("unblock", { xmlns = xmlns_blocking }) :tag("item", { jid = jid }) , function () return callback and callback(true); end , function () return callback and callback(false); end ); end function stream.blocking:unblock_all_jids(callback) stream:send_iq(verse.iq{type="set"} :tag("unblock", { xmlns = xmlns_blocking }) , function () return callback and callback(true); end , function () return callback and callback(false); end ); end function stream.blocking:get_blocked_jids(callback) stream:send_iq(verse.iq{type="get"} :tag("blocklist", { xmlns = xmlns_blocking }) , function (result) local list = result:get_child("blocklist", xmlns_blocking); if not list then return callback and callback(false); end local jids = {}; for item in list:childtags() do jids[#jids+1] = item.attr.jid; end return callback and callback(jids); end , function (result) return callback and callback(false); end ); end end