mcbot/cmds/tvcal.lua
changeset 61 5d807892b439
parent 59 0a39d217b80a
child 63 31f967ba9e1f
equal deleted inserted replaced
60:74697f376dad 61:5d807892b439
    30 
    30 
    31     if not contents then
    31     if not contents then
    32         return nil, "Could not fetch calendar, please try again later!"
    32         return nil, "Could not fetch calendar, please try again later!"
    33     end
    33     end
    34 
    34 
       
    35     -- Work around frackin ugly end of line characters... :/
       
    36     local eol = "[%s"..string.char(13).."]*"
       
    37 
    35     -- Regex for each day
    38     -- Regex for each day
    36     local tabregex = '<td id="d_(%d+_%d+_%d%d%d%d)" class="t?o?day"%s*>'..
    39     local tabregex = '<td id="d_(%d+_%d+_%d%d%d%d)" class="t?o?day"%s*>'..
    37                      '%s*(.-)%s*</td>'
    40                      '%s*(.-)%s*</td>'
    38 
    41 
    39     -- Regex for parsing one day
    42     -- Regex for parsing one day
    40     local epregex = '<p[^>]*>'..
    43     local epregex = '<p[^>]*>'..
    41                       '<a href=[^>]+>([^<]+)</a>'..       -- Name
    44                       '<a href=[^>]+>([^<]+)</a>'..eol..        -- Name
    42                       '<br /><a href=[^>]+>([^<]+)</a>'.. -- Episode
    45                       '<br /><a href=[^>]+>([^<]+)</a>'..eol..  -- Episode
    43                     '</p>'
    46                     '</p>'
    44 
    47 
    45     -- loop over all days
    48     -- loop over all days
    46     for day, daytab in string.gmatch(contents, tabregex) do
    49     for day, daytab in string.gmatch(contents, tabregex) do
    47         local d, m, y = day:match("^(%d+)_(%d+)_(%d%d%d%d)$")
    50         local d, m, y = day:match("^(%d+)_(%d+)_(%d%d%d%d)$")