Commit 41d25f75 authored by François Revol's avatar François Revol Committed by Jean-Baptiste Kempf

Fetch art urls from free.fr for most channels. This should avoid seeing funky images instead.

Signed-off-by: default avatarFrançois Revol <revol@free.fr>
Signed-off-by: default avatarJean-Baptiste Kempf <jb@videolan.org>
parent 18925e8f
......@@ -25,7 +25,48 @@ function descriptor()
end
function main()
local fd, msg = vlc.stream( "http://mafreebox.freebox.fr/freeboxtv/playlist.m3u" )
local logos = {}
-- fetch urls for basic channels logos
local fd, msg = vlc.stream( "http://free.fr/adsl/pages/television/services-de-television/acces-a-plus-250-chaines/bouquet-basique.html" )
if not fd then
vlc.msg.warn(msg)
-- not fatal
else
local channel, logourl
local line = fd:readline()
while line ~= nil do
if( string.find( line, "tv%-chaine%-" ) ) then
_, _, channel, logourl = string.find( line, "\"tv%-chaine%-(%d+)\".*<img%s*src=\"([^\"]*)\"" )
-- fix spaces
logourl = string.gsub( logourl, " ", "%%20" )
logos[channel] = "http://free.fr" .. logourl
end
line = fd:readline()
end
end
-- fetch urls for optional channels logos
local fd, msg = vlc.stream( "http://www.free.fr/adsl/pages/television/services-de-television/acces-a-plus-250-chaines/en-option.html" )
if not fd then
vlc.msg.warn(msg)
-- not fatal
else
local channel, logourl
local line = fd:readline()
while line ~= nil do
if( string.find( line, "tv%-chaine%-" ) ) then
_, _, channel, logourl = string.find( line, "\"tv%-chaine%-(%d+)\".*<img%s*src=\"([^\"]*)\"" )
-- fix spaces
logourl = string.gsub( logourl, " ", "%%20" )
logos[channel] = "http://free.fr" .. logourl
end
line = fd:readline()
end
end
-- fetch the playlist
fd, msg = vlc.stream( "http://mafreebox.freebox.fr/freeboxtv/playlist.m3u" )
if not fd then
vlc.msg.warn(msg)
return nil
......@@ -35,19 +76,21 @@ function main()
return nil
end
line = fd:readline()
local duration, artist, name
local duration, artist, name, arturl
local options={"deinterlace=1"}
while line ~= nil do
if( string.find( line, "#EXTINF" ) ) then
_, _, duration, artist, name = string.find( line, ":(%w+),(%w+)%s*-%s*(.+)" )
arturl = logos[artist]
elseif( string.find( line, "#EXTVLCOPT" ) ) then
_, _, option = string.find( line, ":(.+)" )
table.insert( options, option )
else
vlc.sd.add_item( {path=line,duration=duration,artist=artist,title=name,options=options} )
vlc.sd.add_item( {path=line,duration=duration,artist=artist,title=name,arturl=arturl,options=options} )
duration = nil
artist = nil
name = nil
arturl = nil
options={"deinterlace=1"}
end
line = fd:readline()
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment