mcbot/cmds/tvcal.lua
changeset 37 9d7f19e4e4fe
parent 36 2aedd0749666
child 38 a51ddbce247b
equal deleted inserted replaced
36:2aedd0749666 37:9d7f19e4e4fe
    58     return true
    58     return true
    59 end
    59 end
    60 
    60 
    61 local function tvcal_by_date (d)
    61 local function tvcal_by_date (d)
    62     if not tvcaldata[d] then
    62     if not tvcaldata[d] then
    63         return "No episode found for this date"
    63         return "No episode found for this date ("..d..")"
    64     end
    64     end
    65 
    65 
    66     local r = "Shows on " .. d .. ":\n"
    66     local r = "Shows on " .. d .. ":\n"
    67     for i,j in ipairs(tvcaldata[d]) do
    67     for i,j in ipairs(tvcaldata[d]) do
    68         r = r .. j.name .. " (" ..j.ep .. ")\n"
    68         r = r .. j.name .. " (" ..j.ep .. ")\n"
   104 
   104 
   105     if not arg or arg == "today" then
   105     if not arg or arg == "today" then
   106         arg = os.date("%F")
   106         arg = os.date("%F")
   107     elseif arg == "tomorrow" then
   107     elseif arg == "tomorrow" then
   108         arg = os.date("%F", os.date("%s")+86400)
   108         arg = os.date("%F", os.date("%s")+86400)
       
   109     elseif arg:match("^%+%d+$") then
       
   110         local n = tonumber(arg:match("^%+(%d+)$"))
       
   111         if n < 60 then
       
   112             arg = os.date("%F", os.date("%s")+86400*n)
       
   113         end
   109     end
   114     end
   110 
   115 
   111     if arg:match("^%d%d%d%d%-%d%d%-%d%d$") then
   116     if arg:match("^%d%d%d%d%-%d%d%-%d%d$") then
   112         return tvcal_by_date(arg)
   117         return tvcal_by_date(arg)
   113     end
   118     end