From eb4bb860cc481a2eba70cf768ec4a9811753a2c6 Mon Sep 17 00:00:00 2001 From: Toni Gundogdu Date: Tue, 26 Nov 2013 16:26:41 +0200 Subject: [PATCH] FIX: media/publicsenat: Reimpl. support Notable changes: - Fetch and parse media properties from an emission URL - Use LuaJSON to parse the properties ({stream,thumb} URL) Signed-off-by: Toni Gundogdu --- share/media/publicsenat.lua | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/share/media/publicsenat.lua b/share/media/publicsenat.lua index 891d5d5..301473a 100644 --- a/share/media/publicsenat.lua +++ b/share/media/publicsenat.lua @@ -33,13 +33,22 @@ end function parse(qargs) local p = quvi.http.fetch(qargs.input_url).data - local t = p:match('id="imgEmissionSelect" value="(.-)"') or '' - qargs.thumb_url = (#t >0) and ('http://publicsenat.fr'..t) or '' + local u = p:match('id="dmcloudUrlEmissionSelect" value="(.-)"') + or error('no match: emission URL') + + local e = quvi.http.fetch(u).data + local d = e:match('info = (.-);') or error('no match: info') + + local J = require 'json' + local j = J.decode(d) qargs.id = qargs.input_url:match("/vod/.-/(%d+)$") or '' + qargs.title = p:match('(.-)%s+%|') or '' - qargs.streams = PublicSenat.iter_streams(p) + qargs.streams = PublicSenat.iter_streams(j) + + qargs.thumb_url = j.thumbnail_url or '' return qargs end @@ -61,11 +70,9 @@ function PublicSenat.can_parse_url(qargs) end end -function PublicSenat.iter_streams(p) - local u = p:match('id="flvEmissionSelect" value="(.-)"') - or error('no match: media stream URL') +function PublicSenat.iter_streams(j) local S = require 'quvi/stream' - return {S.stream_new(u)} + return {S.stream_new(j.mp4_url)} end -- vim: set ts=2 sw=2 tw=72 expandtab: -- 2.11.4.GIT