comparison mod_pastebin/mod_pastebin.lua @ 501:e851f386c904

mod_pastebin: Threshold is now UTF-8 characters (thanks Grom_PE for initial patch)
author Matthew Wild <mwild1@gmail.com>
date Thu, 08 Dec 2011 22:01:54 +0000
parents 3f101f7a26d0
children c819365ac6ab
comparison
equal deleted inserted replaced
500:bd08727378be 501:e851f386c904
15 or (start >= 240 and start <= 244 and #seq < 4) 15 or (start >= 240 and start <= 244 and #seq < 4)
16 or (start > 244) then 16 or (start > 244) then
17 return ""; 17 return "";
18 end 18 end
19 return seq; 19 return seq;
20 end
21
22 local function utf8_length(str)
23 local _, count = string.gsub(str, "[^\128-\193]", "");
24 return count;
20 end 25 end
21 26
22 local pastebin_private_messages = module:get_option_boolean("pastebin_private_messages", hosts[module.host].type ~= "component"); 27 local pastebin_private_messages = module:get_option_boolean("pastebin_private_messages", hosts[module.host].type ~= "component");
23 local length_threshold = module:get_option_number("pastebin_threshold", 500); 28 local length_threshold = module:get_option_number("pastebin_threshold", 500);
24 local line_threshold = module:get_option_number("pastebin_line_threshold", 4); 29 local line_threshold = module:get_option_number("pastebin_line_threshold", 4);
76 body = body:get_text(); 81 body = body:get_text();
77 82
78 --module:log("debug", "Body(%s) length: %d", type(body), #(body or "")); 83 --module:log("debug", "Body(%s) length: %d", type(body), #(body or ""));
79 84
80 if body and ( 85 if body and (
81 (#body > length_threshold) or 86 ((#body > length_threshold)
87 and (length_utf8(body) > length_threshold)) or
82 (trigger_string and body:find(trigger_string, 1, true) == 1) or 88 (trigger_string and body:find(trigger_string, 1, true) == 1) or
83 (select(2, body:gsub("\n", "%0")) >= line_threshold) 89 (select(2, body:gsub("\n", "%0")) >= line_threshold)
84 ) then 90 ) then
85 if trigger_string then 91 if trigger_string then
86 body = body:gsub("^" .. trigger_string, "", 1); 92 body = body:gsub("^" .. trigger_string, "", 1);