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 :gsub("[%[]",function(s) return "%" .. s end) |
|
41 :gsub("%%(%b[])",function(s) return (#s > 2 and "" or "%") .. s end); |
40 local results = {}; |
42 local results = {}; |
41 for x, xkcd in pairs(xkcd_list) do |
43 for x, xkcd in pairs(xkcd_list) do |
42 name = " "..xkcd:lower().." "; |
44 name = " "..xkcd:lower().." "; |
43 if name:match(xkcdnum:lower():gsub("%-", "%%-")) then |
45 if name:match(xkcdnum:lower():gsub("%-", "%%-")) then |
44 table.insert(results, x); |
46 table.insert(results, x); |