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

139
6909e479c56b clix.watch_pep: Subscribe to a PEP node
Kim Alvefur <zash@zash.se>
parents:
diff changeset
1 local verse = require "verse";
6909e479c56b clix.watch_pep: Subscribe to a PEP node
Kim Alvefur <zash@zash.se>
parents:
diff changeset
2
6909e479c56b clix.watch_pep: Subscribe to a PEP node
Kim Alvefur <zash@zash.se>
parents:
diff changeset
3 return function (opts, arg)
140
8815232cbbeb clix.watch_pep: Take PEP node as positional argument
Kim Alvefur <zash@zash.se>
parents: 139
diff changeset
4 if opts.short_help or not arg[1] then
139
6909e479c56b clix.watch_pep: Subscribe to a PEP node
Kim Alvefur <zash@zash.se>
parents:
diff changeset
5 print("Watches PEP notifications from all contacts")
140
8815232cbbeb clix.watch_pep: Take PEP node as positional argument
Kim Alvefur <zash@zash.se>
parents: 139
diff changeset
6 print("clix watch_pep [--noempty] PEP-NODE")
139
6909e479c56b clix.watch_pep: Subscribe to a PEP node
Kim Alvefur <zash@zash.se>
parents:
diff changeset
7 return;
6909e479c56b clix.watch_pep: Subscribe to a PEP node
Kim Alvefur <zash@zash.se>
parents:
diff changeset
8 end
6909e479c56b clix.watch_pep: Subscribe to a PEP node
Kim Alvefur <zash@zash.se>
parents:
diff changeset
9
6909e479c56b clix.watch_pep: Subscribe to a PEP node
Kim Alvefur <zash@zash.se>
parents:
diff changeset
10 local function onconnect(conn)
140
8815232cbbeb clix.watch_pep: Take PEP node as positional argument
Kim Alvefur <zash@zash.se>
parents: 139
diff changeset
11 conn:hook_pep(arg[1], function (event)
139
6909e479c56b clix.watch_pep: Subscribe to a PEP node
Kim Alvefur <zash@zash.se>
parents:
diff changeset
12 local payload = event.item;
6909e479c56b clix.watch_pep: Subscribe to a PEP node
Kim Alvefur <zash@zash.se>
parents:
diff changeset
13 if not payload then return end
6909e479c56b clix.watch_pep: Subscribe to a PEP node
Kim Alvefur <zash@zash.se>
parents:
diff changeset
14 if opts.noempty and not payload[1] then return end
6909e479c56b clix.watch_pep: Subscribe to a PEP node
Kim Alvefur <zash@zash.se>
parents:
diff changeset
15 if event.from then
6909e479c56b clix.watch_pep: Subscribe to a PEP node
Kim Alvefur <zash@zash.se>
parents:
diff changeset
16 io.stderr:write("# From "..event.from.."\n");
6909e479c56b clix.watch_pep: Subscribe to a PEP node
Kim Alvefur <zash@zash.se>
parents:
diff changeset
17 end
6909e479c56b clix.watch_pep: Subscribe to a PEP node
Kim Alvefur <zash@zash.se>
parents:
diff changeset
18 if payload.attr.xmlns == "urn:xmpp:json:0" then
6909e479c56b clix.watch_pep: Subscribe to a PEP node
Kim Alvefur <zash@zash.se>
parents:
diff changeset
19 print(payload:get_tex())
6909e479c56b clix.watch_pep: Subscribe to a PEP node
Kim Alvefur <zash@zash.se>
parents:
diff changeset
20 elseif opts.pretty then
6909e479c56b clix.watch_pep: Subscribe to a PEP node
Kim Alvefur <zash@zash.se>
parents:
diff changeset
21 print(payload:indent(nil, " "));
6909e479c56b clix.watch_pep: Subscribe to a PEP node
Kim Alvefur <zash@zash.se>
parents:
diff changeset
22 else
6909e479c56b clix.watch_pep: Subscribe to a PEP node
Kim Alvefur <zash@zash.se>
parents:
diff changeset
23 print(payload);
6909e479c56b clix.watch_pep: Subscribe to a PEP node
Kim Alvefur <zash@zash.se>
parents:
diff changeset
24 end
6909e479c56b clix.watch_pep: Subscribe to a PEP node
Kim Alvefur <zash@zash.se>
parents:
diff changeset
25 end);
6909e479c56b clix.watch_pep: Subscribe to a PEP node
Kim Alvefur <zash@zash.se>
parents:
diff changeset
26 if not opts.presence then
6909e479c56b clix.watch_pep: Subscribe to a PEP node
Kim Alvefur <zash@zash.se>
parents:
diff changeset
27 conn:send(verse.presence());
6909e479c56b clix.watch_pep: Subscribe to a PEP node
Kim Alvefur <zash@zash.se>
parents:
diff changeset
28 end
6909e479c56b clix.watch_pep: Subscribe to a PEP node
Kim Alvefur <zash@zash.se>
parents:
diff changeset
29 end
6909e479c56b clix.watch_pep: Subscribe to a PEP node
Kim Alvefur <zash@zash.se>
parents:
diff changeset
30
6909e479c56b clix.watch_pep: Subscribe to a PEP node
Kim Alvefur <zash@zash.se>
parents:
diff changeset
31 clix_connect(opts, onconnect, {"pep"})
6909e479c56b clix.watch_pep: Subscribe to a PEP node
Kim Alvefur <zash@zash.se>
parents:
diff changeset
32 end;

mercurial