clix/archive.lua

changeset 148
27a9f28724d3
parent 147
0bc82a318c45
child 159
68e09745d928
equal deleted inserted replaced
147:0bc82a318c45 148:27a9f28724d3
1 local jid_split = require"util.jid".split;
1 local bare_jid = require"util.jid".bare; 2 local bare_jid = require"util.jid".bare;
2 local parse_datetime = require"util.datetime".parse; 3 local parse_datetime = require"util.datetime".parse;
3 return function (opts, arg) 4 return function (opts, arg)
4 if opts.short_help then 5 if opts.short_help then
5 print("Fetch archived messages"); 6 print("Fetch archived messages");
36 local datetime = require"util.datetime".datetime; 37 local datetime = require"util.datetime".datetime;
37 function print_message(i) 38 function print_message(i)
38 print(st.stanza("forwarded",{xmlns="urn:xmpp:forward:0"}) 39 print(st.stanza("forwarded",{xmlns="urn:xmpp:forward:0"})
39 :tag("delay", {xmlns="urn:xmpp:delay", stamp=datetime(i.stamp)}):up() 40 :tag("delay", {xmlns="urn:xmpp:delay", stamp=datetime(i.stamp)}):up()
40 :add_child(i.message)); 41 :add_child(i.message));
42 end
43 elseif opts.format == "irc" then
44 local date;
45 local os_date = os.date;
46 function print_message(i)
47 local m = i.message;
48 local body = m:get_child_text("body");
49 local a = m.attr;
50 local _, _, nick = jid_split(a.from);
51
52 local curdate = os_date("%F", i.stamp);
53 if date ~= curdate then
54 print("-!- "..curdate);
55 date = curdate;
56 end
57 if nick and body then
58 print(("%s <%s> %s"):format(os_date("%T", i.stamp), nick, body));
59 end
41 end 60 end
42 end 61 end
43 62
44 local function on_connect(conn) 63 local function on_connect(conn)
45 if opts.debug then 64 if opts.debug then

mercurial