From f329cde7e0b7a66382350dacea1029cd0853b40b Mon Sep 17 00:00:00 2001 From: Toni Gundogdu Date: Fri, 1 Jun 2012 10:22:35 +0300 Subject: [PATCH] =?utf8?q?publicsenat.lua:=20Port=20Rapha=C3=ABl's=20v0.4.?= =?utf8?q?3=20changes?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit * Extend support for more recent media URLs Other changes: * Add thumbnail_url Test cases: * http://www.publicsenat.fr/vod/un-monde-de-bulles/speciale-journal-de-spirou/67141 * http://www.publicsenat.fr/cms/video-a-la-demande/vod.html?idE=119298 ref: http://article.gmane.org/gmane.comp.web.flash.quvi/45 --- share/lua/website/publicsenat.lua | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/share/lua/website/publicsenat.lua b/share/lua/website/publicsenat.lua index f7ab5e8..c92d4e8 100644 --- a/share/lua/website/publicsenat.lua +++ b/share/lua/website/publicsenat.lua @@ -1,6 +1,6 @@ -- libquvi-scripts --- Copyright (C) 2010 Raphaël Droz. +-- Copyright (C) 2010,2012 Raphaël Droz. -- -- This file is part of libquvi-scripts . -- @@ -28,7 +28,7 @@ function ident(self) r.formats = "default" r.categories = C.proto_http local U = require 'quvi/util' - r.handles = U.handles(self.page_url, {r.domain}, {"/vod/.-%d+"}) + r.handles = U.handles(self.page_url, {r.domain}, {"/vod", "/vod.html"}) return r end @@ -42,23 +42,24 @@ end function parse(self) self.host_id = "publicsenat" - local p = quvi.fetch (self.page_url) + local p = quvi.fetch(self.page_url) - self.title = p:match('(.-)%s+%|') - or error("no match: media title") + self.title = p:match('<title>(.-)%s+%|') or error("no match: media title") - self.id = self.page_url:match("^http://www.publicsenat.fr/vod/.-(%d+)$") - or error("no match: media id") + self.id = self.page_url:match(".-idE=(%d+)$") + or self.page_url:match(".-/(%d+)$") + or error("no match: media ID") - local c_url = "http://videos.publicsenat.fr/vodiFrame.php?idE=" - .. self.id + local t = p:match('id="imgEmissionSelect" value="(.-)"') or '' + if #t >0 then + self.thumbnail_url = 'http://publicsenat.fr' .. t + end - local c = quvi.fetch(c_url, {fetch_type = 'config'}) + local u = "http://videos.publicsenat.fr/vodiFrame.php?idE=" ..self.id + local c = quvi.fetch(u, {fetch_type='config'}) - local s = c:match('id="flvEmissionSelect" value="(.-)"') - or error("no match: media url") - - self.url = {s} + self.url = {c:match('id="flvEmissionSelect" value="(.-)"') + or error("no match: media stream URL")} return self end -- 2.11.4.GIT