Software /
code /
prosody
Diff
plugins/mod_csi_simple.lua @ 11401:228bd43fbc3d
mod_csi_simple: Add command to test importance algorithm on stream of stanzas
This won't include behavior provided by extra modules tho.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Tue, 23 Feb 2021 19:52:57 +0100 |
parent | 11380:9a1758c5aaa4 |
child | 11425:fc7706fe115d |
line wrap: on
line diff
--- a/plugins/mod_csi_simple.lua Tue Feb 23 16:07:41 2021 +0100 +++ b/plugins/mod_csi_simple.lua Tue Feb 23 19:52:57 2021 +0100 @@ -218,3 +218,35 @@ end end end + +function module.command(arg) + if arg[1] ~= "test" then + print("Usage: "..module.name.." test < test-stream.xml") + print(""); + print("Provide a series of stanzas to test against importance algoritm"); + return 1; + end + -- luacheck: ignore 212/self + local xmppstream = require "util.xmppstream"; + local input_session = { notopen = true } + local stream_callbacks = { stream_ns = "jabber:client", default_ns = "jabber:client" }; + function stream_callbacks:handlestanza(stanza) + local important, because = is_important(stanza); + print("--"); + print(stanza:indent(nil, " ")); + -- :pretty_print() maybe? + if important then + print((because or "unspecified reason").. " -> important"); + else + print((because or "unspecified reason").. " -> unimportant"); + end + end + local input_stream = xmppstream.new(input_session, stream_callbacks); + input_stream:reset(); + input_stream:feed(st.stanza("stream", { xmlns = "jabber:client" }):top_tag()); + input_session.notopen = nil; + + for line in io.lines() do + input_stream:feed(line); + end +end