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() ...@@ -25,7 +25,48 @@ function descriptor()
end end
function main() 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 if not fd then
vlc.msg.warn(msg) vlc.msg.warn(msg)
return nil return nil
...@@ -35,19 +76,21 @@ function main() ...@@ -35,19 +76,21 @@ function main()
return nil return nil
end end
line = fd:readline() line = fd:readline()
local duration, artist, name local duration, artist, name, arturl
local options={"deinterlace=1"} local options={"deinterlace=1"}
while line ~= nil do while line ~= nil do
if( string.find( line, "#EXTINF" ) ) then if( string.find( line, "#EXTINF" ) ) then
_, _, duration, artist, name = string.find( line, ":(%w+),(%w+)%s*-%s*(.+)" ) _, _, duration, artist, name = string.find( line, ":(%w+),(%w+)%s*-%s*(.+)" )
arturl = logos[artist]
elseif( string.find( line, "#EXTVLCOPT" ) ) then elseif( string.find( line, "#EXTVLCOPT" ) ) then
_, _, option = string.find( line, ":(.+)" ) _, _, option = string.find( line, ":(.+)" )
table.insert( options, option ) table.insert( options, option )
else 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 duration = nil
artist = nil artist = nil
name = nil name = nil
arturl = nil
options={"deinterlace=1"} options={"deinterlace=1"}
end end
line = fd:readline() 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