clix/watch_pep.lua

Sun, 15 Nov 2020 20:45:50 +0100

author
Kim Alvefur <zash@zash.se>
date
Sun, 15 Nov 2020 20:45:50 +0100
changeset 140
8815232cbbeb
parent 139
6909e479c56b
child 141
93eda3dd85f7
permissions
-rw-r--r--

clix.watch_pep: Take PEP node as positional argument

Thanks MattJ

local verse = require "verse";

return function (opts, arg)
	if opts.short_help or not arg[1] then
		print("Watches PEP notifications from all contacts")
		print("clix watch_pep [--noempty] PEP-NODE")
		return;
	end

	local function onconnect(conn)
		conn:hook_pep(arg[1], function (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
				print(payload:indent(nil, "  "));
			else
				print(payload);
			end
		end);
		if not opts.presence then
			conn:send(verse.presence());
		end
	end

	clix_connect(opts, onconnect, {"pep"})
end;

mercurial