Mon, 08 Feb 2021 22:59:49 +0100
clix.archive: Add 'irc' output format, useful for MUC export
local verse = require "verse"; local well_known = { geoloc = "http://jabber.org/protocol/geoloc"; -- XEP-0080 avatar = "urn:xmpp:avatar:metadata"; -- XEP-0084 mood = "http://jabber.org/protocol/mood"; -- XEP-0107 activity = "http://jabber.org/protocol/activity"; -- XEP-0108 tune = "http://jabber.org/protocol/tune"; -- XEP-0118 nick = "http://jabber.org/protocol/nick"; -- XEP-0172 chatting = "urn:xmpp:chatting:0"; -- XEP-0194 browsing = "urn:xmpp:browsing:0"; -- XEP-0195 gaming = "urn:xmpp:gaming:0"; -- XEP-0196 viewing = "urn:xmpp:viewing:0"; -- XEP-0197 vcard4 = "urn:xmpp:vcard4"; -- XEP-0292 }; return function (opts, arg) if opts.short_help then print("Watches PEP notifications from all contacts") return; end if opts.help or not arg[1] then print("clix watch_pep [--noempty] PEP-NODE+") return; end local function handle_notification(event) local payload = event.item; if not payload then return end if opts.noempty and not payload[1] then return end if event.from then io.stderr:write("# From "..event.from.."\n"); end if payload.attr.xmlns == "urn:xmpp:json:0" then print(payload:get_tex()) elseif opts.pretty then if payload.indent then print(payload:indent(nil, " "):pretty_print()); else print(payload:pretty_print()); end else print(payload); end end local function onconnect(conn) for _, node in ipairs(arg) do conn:hook_pep(well_known[node] or node, handle_notification); end if not opts.presence then conn:send(verse.presence()); end end clix_connect(opts, onconnect, {"pep"}) end;