1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
|
--[[
Translate www.katsomo.fi video webpages URLs to the corresponding
movie URL
Copyright © 2009 the VideoLAN team
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
--]]
-- Probe function.
function probe()
return vlc.access == "http"
and string.match( vlc.path, "^www%.katsomo%.fi/" )
and ( string.match( vlc.path, "treeId" ) or string.match( vlc.path, "progId" ) )
end
function find( haystack, needle )
local _,_,r = string.find( haystack, needle )
return r
end
-- Parse function.
function parse()
p = {}
if string.match( vlc.path, "progId" )
then
programid = string.match( vlc.path, "progId=(%d+)")
path = "http://www.katsomo.fi/metafile.asx?p="..programid.."&bw=800"
table.insert(p, { path = path; } )
return p
end
title=""
arturl="http://www.katsomo.fi/multimedia/template/logos/katsomo_logo_2.gif"
while true
do
line = vlc.readline()
if not line then break end
if string.match( line, "<title>" )
then
title = vlc.strings.decode_uri( find( line, "<title>(.-)<" ) )
title = vlc.strings.from_charset( "ISO_8859-1", title )
end
if( find( line, "img class=\"pngImg\" src=\"/multimedia/template/logos" ) )
then
arturl = "http://www.katsomo.fi"..find( line, " src=\"(.-)\" alt=" )
end
for treeid,name in string.gmatch( line, '/%?treeId=(%d+)">([^<]+)</a') do
name = vlc.strings.resolve_xml_special_chars( name )
name = vlc.strings.from_charset( "ISO_8859-1", name )
path = "http://www.katsomo.fi/?treeId="..treeid
table.insert( p, { path = path; name = name; arturl=arturl; } )
end
for programid in string.gmatch( line, "<li class=\"program.*\" id=\"program(%d+)\" title=\".+\"" ) do
description = vlc.strings.resolve_xml_special_chars( find( line, "title=\"(.+)\"" ) )
description = vlc.strings.from_charset( "ISO_8859-1", description )
path = "http://www.katsomo.fi/metafile.asx?p="..programid.."&bw=800"
table.insert( p, { path = path; name = description; arturl=arturl; } )
end
end
return p
end
|