comparison mod_pastebin/mod_pastebin.lua @ 156:b51741b7e86d

mod_pastebin: Optionally bin if message starts with a configurable trigger string
author Florian Zeitz <florob@babelmonkeys.de>
date Sun, 23 May 2010 17:24:09 +0200
parents 1fc4e8dc66a6
children 0d37d18ea073
comparison
equal deleted inserted replaced
155:7a037cb5ab9e 156:b51741b7e86d
10 10
11 local base_url = config.get(module.host, "core", "pastebin_url"); 11 local base_url = config.get(module.host, "core", "pastebin_url");
12 12
13 -- Seconds a paste should live for in seconds (config is in hours), default 24 hours 13 -- Seconds a paste should live for in seconds (config is in hours), default 24 hours
14 local expire_after = math.floor((config.get(module.host, "core", "pastebin_expire_after") or 24) * 3600); 14 local expire_after = math.floor((config.get(module.host, "core", "pastebin_expire_after") or 24) * 3600);
15
16 local trigger_string = config.get(module.host, "core", "pastebin_trigger");
17 trigger_string = (trigger_string and trigger_string .. " ") or "";
15 18
16 local pastes = {}; 19 local pastes = {};
17 local default_headers = { ["Content-Type"] = "text/plain; charset=utf-8" }; 20 local default_headers = { ["Content-Type"] = "text/plain; charset=utf-8" };
18 21
19 local xmlns_xhtmlim = "http://jabber.org/protocol/xhtml-im"; 22 local xmlns_xhtmlim = "http://jabber.org/protocol/xhtml-im";
55 if not body then return; end 58 if not body then return; end
56 body = body:get_text(); 59 body = body:get_text();
57 60
58 --module:log("debug", "Body(%s) length: %d", type(body), #(body or "")); 61 --module:log("debug", "Body(%s) length: %d", type(body), #(body or ""));
59 62
60 if body and #body > length_threshold then 63 if body and ((#body > length_threshold) or (body:find(trigger_string, 1, true) == 1)) then
64 body = body:gsub("^" .. trigger_string, "", 1);
61 local url = pastebin_text(body); 65 local url = pastebin_text(body);
62 module:log("debug", "Pasted message as %s", url); 66 module:log("debug", "Pasted message as %s", url);
63 --module:log("debug", " stanza[bodyindex] = %q", tostring( stanza[bodyindex])); 67 --module:log("debug", " stanza[bodyindex] = %q", tostring( stanza[bodyindex]));
64 stanza[bodyindex][1] = url; 68 stanza[bodyindex][1] = url;
65 local html = st.stanza("html", { xmlns = xmlns_xhtmlim }):tag("body", { xmlns = xmlns_xhtml }); 69 local html = st.stanza("html", { xmlns = xmlns_xhtmlim }):tag("body", { xmlns = xmlns_xhtml });