media/guardian.lua: Check for expired content (BACKPORTpt4)
authorToni Gundogdu <legatvs@gmail.com>
Tue, 18 Jun 2013 15:46:45 +0000 (18 18:46 +0300)
committerToni Gundogdu <legatvs@gmail.com>
Tue, 18 Jun 2013 15:46:50 +0000 (18 18:46 +0300)
* Backported from maint-0.4 (22ff394)

Signed-off-by: Toni Gundogdu <legatvs@gmail.com>
share/media/guardian.lua

index 2fc2924..7d82526 100644 (file)
@@ -30,7 +30,7 @@ end
 
 -- Parse the media properties.
 function parse(qargs)
-  local p = quvi.http.fetch(qargs.input_url).data
+  local p = Guardian.fetch(qargs)
 
   qargs.duration_ms = tonumber(p:match('duration%:%s+"?(%d+)"?') or 0) * 1000
 
@@ -66,6 +66,13 @@ function Guardian.can_parse_url(qargs)
   end
 end
 
+function Guardian.fetch(qargs)
+  local p = quvi.http.fetch(qargs.input_url).data
+  local e = p:match('<div class="expired">.-<p>(.-)</p>.-</div>') or ''
+  if #e >0 then error(e) end
+  return p
+end
+
 function Guardian.iter_streams(p)
   local u = p:match('file:%s+"(.-)"')
               or error("no match: media stream URL")