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:gsub("[()]", function(s) return "%" .. s end) |
|
40 :lower() |
40 :gsub("[%[]",function(s) return "%" .. s end) |
41 :gsub("[%[]",function(s) return "%" .. s end) |
41 :gsub("%%(%b[])",function(s) return (#s > 2 and "" or "%") .. s end); |
42 :gsub("%%(%b[])",function(s) return (#s > 2 and "" or "%") .. s end); |
42 local results = {}; |
43 local results = {}; |
43 for x, xkcd in pairs(xkcd_list) do |
44 for x, xkcd in pairs(xkcd_list) do |
44 name = xkcd:lower() |
45 name = xkcd:lower() |
45 if name:match(xkcdnum:lower()) then |
46 if name == xkcdnum then -- exact match |
|
47 return xkcd..", http://xkcd.org/"..x.."/"; |
|
48 elseif name:match(xkcdnum) then |
46 table.insert(results, x); |
49 table.insert(results, x); |
47 --return commands.xkcd(msg, x); |
50 --return commands.xkcd(msg, x); |
48 end |
51 end |
49 end |
52 end |
50 if #results == 0 then |
53 if #results == 0 then |