Mercurial > prosody-modules
diff mod_pastebin/mod_pastebin.lua @ 167:0d37d18ea073
mod_pastebin: Fix trigger_string matching when no trigger is set, and add support for counting lines (pastebin_line_threshold, default: 4)
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Thu, 10 Jun 2010 00:46:46 +0100 |
parents | b51741b7e86d |
children | 16d367e3c04e |
line wrap: on
line diff
--- a/mod_pastebin/mod_pastebin.lua Thu Jun 10 04:35:06 2010 +0500 +++ b/mod_pastebin/mod_pastebin.lua Thu Jun 10 00:46:46 2010 +0100 @@ -7,6 +7,7 @@ local add_task = require "util.timer".add_task; local length_threshold = config.get(module.host, "core", "pastebin_threshold") or 500; +local line_threshold = config.get(module.host, "core", "pastebin_line_threshold") or 4; local base_url = config.get(module.host, "core", "pastebin_url"); @@ -14,7 +15,7 @@ local expire_after = math.floor((config.get(module.host, "core", "pastebin_expire_after") or 24) * 3600); local trigger_string = config.get(module.host, "core", "pastebin_trigger"); -trigger_string = (trigger_string and trigger_string .. " ") or ""; +trigger_string = (trigger_string and trigger_string .. " "); local pastes = {}; local default_headers = { ["Content-Type"] = "text/plain; charset=utf-8" }; @@ -60,8 +61,14 @@ --module:log("debug", "Body(%s) length: %d", type(body), #(body or "")); - if body and ((#body > length_threshold) or (body:find(trigger_string, 1, true) == 1)) then - body = body:gsub("^" .. trigger_string, "", 1); + if body and ( + (#body > length_threshold) or + (trigger_string and body:find(trigger_string, 1, true) == 1) or + (select(2, body:gsub("\n", "%0")) >= line_threshold) + ) then + if trigger_string then + body = body:gsub("^" .. trigger_string, "", 1); + end local url = pastebin_text(body); module:log("debug", "Pasted message as %s", url); --module:log("debug", " stanza[bodyindex] = %q", tostring( stanza[bodyindex]));