Changeset

139:6909e479c56b

clix.watch_pep: Subscribe to a PEP node
author Kim Alvefur <zash@zash.se>
date Sun, 15 Nov 2020 15:05:24 +0100
parents 138:1783d4226ba1
children 140:8815232cbbeb
files clix/watch_pep.lua squishy
diffstat 2 files changed, 33 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/clix/watch_pep.lua	Sun Nov 15 15:05:24 2020 +0100
@@ -0,0 +1,32 @@
+local verse = require "verse";
+
+return function (opts, arg)
+	if opts.short_help then
+		print("Watches PEP notifications from all contacts")
+		print("clix watch_pep [--node PEP-NODE] [--noempty]")
+		return;
+	end
+
+	local function onconnect(conn)
+		conn:hook_pep(opts.node or "urn:xmpp:microblog:0", 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;
--- a/squishy	Sat Nov 14 15:42:10 2020 +0100
+++ b/squishy	Sun Nov 15 15:05:24 2020 +0100
@@ -14,6 +14,7 @@
 	"sendfile";
 	"archive";
 	"presence";
+	"watch_pep";
 }
 
 for _, cmd in ipairs(commands) do