Comparison

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
comparison
equal deleted inserted replaced
11400:19a59cb7311e 11401:228bd43fbc3d
216 disable_optimizations(session); 216 disable_optimizations(session);
217 end 217 end
218 end 218 end
219 end 219 end
220 end 220 end
221
222 function module.command(arg)
223 if arg[1] ~= "test" then
224 print("Usage: "..module.name.." test < test-stream.xml")
225 print("");
226 print("Provide a series of stanzas to test against importance algoritm");
227 return 1;
228 end
229 -- luacheck: ignore 212/self
230 local xmppstream = require "util.xmppstream";
231 local input_session = { notopen = true }
232 local stream_callbacks = { stream_ns = "jabber:client", default_ns = "jabber:client" };
233 function stream_callbacks:handlestanza(stanza)
234 local important, because = is_important(stanza);
235 print("--");
236 print(stanza:indent(nil, " "));
237 -- :pretty_print() maybe?
238 if important then
239 print((because or "unspecified reason").. " -> important");
240 else
241 print((because or "unspecified reason").. " -> unimportant");
242 end
243 end
244 local input_stream = xmppstream.new(input_session, stream_callbacks);
245 input_stream:reset();
246 input_stream:feed(st.stanza("stream", { xmlns = "jabber:client" }):top_tag());
247 input_session.notopen = nil;
248
249 for line in io.lines() do
250 input_stream:feed(line);
251 end
252 end