plugins/xkcd.lua

changeset 66
bdaf81ab55ad
parent 65
25f4445447b2
child 77
7e50244d8e42
equal deleted inserted replaced
65:25f4445447b2 66:bdaf81ab55ad
34 34
35 function handle_xkcd_command(command) 35 function handle_xkcd_command(command)
36 local xkcdnum = command.param; 36 local xkcdnum = command.param;
37 if not xkcdnum then return "Please supply an XKCD number or a search string :)"; end 37 if not xkcdnum then return "Please supply an XKCD number or a search string :)"; end
38 if not tonumber(xkcdnum) then -- Search for an xkcd 38 if not tonumber(xkcdnum) then -- Search for an xkcd
39 xkcdnum = xkcdnum:gsub("[()]", function(s) return "%" .. s end) 39 xkcdnum = xkcdnum:lower()
40 :lower() 40 local xkcdpat = xkcdnum:gsub("[()]", function(s) return "%" .. s end)
41 :gsub("[%[]",function(s) return "%" .. s end) 41 :gsub("[%[]",function(s) return "%" .. s end)
42 :gsub("%%(%b[])",function(s) return (#s > 2 and "" or "%") .. s end); 42 :gsub("%%(%b[])",function(s) return (#s > 2 and "" or "%") .. s end);
43 local results = {}; 43 local results = {};
44 for x, xkcd in pairs(xkcd_list) do 44 for x, xkcd in pairs(xkcd_list) do
45 name = xkcd:lower() 45 name = xkcd:lower()
46 if name == xkcdnum then -- exact match 46 if name == xkcdnum then -- exact match
47 return xkcd..", http://xkcd.org/"..x.."/"; 47 return xkcd..", http://xkcd.org/"..x.."/";
48 elseif name:match(xkcdnum) then 48 elseif name:match(xkcdpat) then
49 table.insert(results, x); 49 table.insert(results, x);
50 --return commands.xkcd(msg, x); 50 --return commands.xkcd(msg, x);
51 end 51 end
52 end 52 end
53 if #results == 0 then 53 if #results == 0 then

mercurial