# HG changeset patch # User God of Dice@mf-nb # Date 1310861001 -7200 # Node ID 00ad6fe8975e8d273c744d2d7ea820cdf0426b0a # Parent 7e50244d8e42aac8927d19995fa6371b500a8117 plugins.xkcd: reformat code diff -r 7e50244d8e42 -r 00ad6fe8975e plugins/xkcd.lua --- a/plugins/xkcd.lua Sun Jul 17 02:03:21 2011 +0200 +++ b/plugins/xkcd.lua Sun Jul 17 02:03:21 2011 +0200 @@ -33,46 +33,46 @@ end function handle_xkcd_command(command) - local xkcdnum = command.param; - if not xkcdnum then return "Please supply an XKCD number or a search string :)"; end - if not tonumber(xkcdnum) then -- Search for an xkcd - xkcdnum = xkcdnum:lower() - local xkcdpat = xkcdnum:gsub("[()]", function(s) return "%" .. s end) - :gsub("[%[]",function(s) return "%" .. s end) - :gsub("%%(%b[])",function(s) return (#s > 2 and "" or "%") .. s end); - local results = {}; - for x, xkcd in pairs(xkcd_list) do - name = xkcd:lower() - if name == xkcdnum then -- exact match - return xkcd..", http://xkcd.org/"..x.."/"; - elseif name:match(xkcdpat) then - table.insert(results, x); - --return commands.xkcd(msg, x); - end - end - if #results == 0 then - return "Sorry, I couldn't find a match"; - elseif #results == 1 then - command.param = results[1]; - return handle_xkcd_command(command); - else - -- We have more than one match - local ret = "Multiple matches:"; - for _, x in ipairs(results) do - local xkcdnum = tostring(tonumber(x)); - local xkcd = xkcd_list[tostring(x)]; - ret = string.format("%s %s%s", ret, xkcd, ((_ < #results) and ",") or ""); - if _ > 5 then ret = ret .. " " .. (#results - 5) .. " more"; break; end - end - return ret; - end - end - -- Check that xkcdnum is a valid number - xkcdnum = tostring(tonumber(xkcdnum)); - if not xkcdnum then return "What XKCD strip number? Or enter a search string."; end - xkcd = xkcd_list[xkcdnum]; - if not xkcd then return "Sorry, I don't think there is a XKCD #"..xkcdnum; end - return xkcd..", http://xkcd.org/"..xkcdnum.."/"; + local xkcdnum = command.param; + if not xkcdnum then return "Please supply an XKCD number or a search string :)"; end + if not tonumber(xkcdnum) then -- Search for an xkcd + xkcdnum = xkcdnum:lower() + local xkcdpat = xkcdnum:gsub("[()]", function(s) return "%" .. s end) + :gsub("[%[]",function(s) return "%" .. s end) + :gsub("%%(%b[])",function(s) return (#s > 2 and "" or "%") .. s end); + local results = {}; + for x, xkcd in pairs(xkcd_list) do + name = xkcd:lower() + if name == xkcdnum then -- exact match + return xkcd..", http://xkcd.org/"..x.."/"; + elseif name:match(xkcdpat) then + table.insert(results, x); + --return commands.xkcd(msg, x); + end + end + if #results == 0 then + return "Sorry, I couldn't find a match"; + elseif #results == 1 then + command.param = results[1]; + return handle_xkcd_command(command); + else + -- We have more than one match + local ret = "Multiple matches:"; + for _, x in ipairs(results) do + local xkcdnum = tostring(tonumber(x)); + local xkcd = xkcd_list[tostring(x)]; + ret = string.format("%s %s%s", ret, xkcd, ((_ < #results) and ",") or ""); + if _ > 5 then ret = ret .. " " .. (#results - 5) .. " more"; break; end + end + return ret; + end + end + -- Check that xkcdnum is a valid number + xkcdnum = tostring(tonumber(xkcdnum)); + if not xkcdnum then return "What XKCD strip number? Or enter a search string."; end + xkcd = xkcd_list[xkcdnum]; + if not xkcd then return "Sorry, I don't think there is a XKCD #"..xkcdnum; end + return xkcd..", http://xkcd.org/"..xkcdnum.."/"; end function parse_xkcd_list(t)