mirror of
https://code.videolan.org/videolan/vlc
synced 2024-09-12 13:44:56 +02:00
Change vlc.stream() and vlc.memory_stream() error reporting to behave like lua's io.open() or loadfile() functions.
This commit is contained in:
parent
0e4feb1e12
commit
4822a79c71
@ -62,7 +62,11 @@ static const luaL_Reg vlclua_stream_reg[] = {
|
|||||||
static int vlclua_stream_new_inner( lua_State *L, stream_t *p_stream )
|
static int vlclua_stream_new_inner( lua_State *L, stream_t *p_stream )
|
||||||
{
|
{
|
||||||
if( !p_stream )
|
if( !p_stream )
|
||||||
return luaL_error( L, "Error when opening stream" );
|
{
|
||||||
|
lua_pushnil( L );
|
||||||
|
lua_pushliteral( L, "Error when opening stream" );
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
|
||||||
stream_t **pp_stream = lua_newuserdata( L, sizeof( stream_t * ) );
|
stream_t **pp_stream = lua_newuserdata( L, sizeof( stream_t * ) );
|
||||||
*pp_stream = p_stream;
|
*pp_stream = p_stream;
|
||||||
|
@ -337,6 +337,9 @@ n:add_node( ... ): Same as sd.add_node(), but as a subnode of n.
|
|||||||
Stream
|
Stream
|
||||||
------
|
------
|
||||||
stream( url ): Instantiate a stream object for specific url.
|
stream( url ): Instantiate a stream object for specific url.
|
||||||
|
memory_stream( string ): Instantiate a stream object containing a specific string.
|
||||||
|
Those two functions return the stream object upon success and nil if an
|
||||||
|
error occured, in that case, the second return value will be an error message.
|
||||||
|
|
||||||
s = vlc.stream( "http://www.videolan.org/" )
|
s = vlc.stream( "http://www.videolan.org/" )
|
||||||
s:read( 128 ) -- read up to 128 characters. Return 0 if no more data is available (FIXME?).
|
s:read( 128 ) -- read up to 128 characters. Return 0 if no more data is available (FIXME?).
|
||||||
|
@ -100,7 +100,11 @@ function click_okay()
|
|||||||
-- Search IMDb
|
-- Search IMDb
|
||||||
local url = "http://www.imdb.com/find?s=all&q="
|
local url = "http://www.imdb.com/find?s=all&q="
|
||||||
local title = string.gsub(txt:get_text(), " ", "+")
|
local title = string.gsub(txt:get_text(), " ", "+")
|
||||||
local s = vlc.stream(url .. title)
|
local s, msg = vlc.stream(url .. title)
|
||||||
|
if not s then
|
||||||
|
vlc.msg.warn(msg)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
-- Fetch HTML data
|
-- Fetch HTML data
|
||||||
local data = s:read(65000)
|
local data = s:read(65000)
|
||||||
@ -171,7 +175,12 @@ function click_open()
|
|||||||
|
|
||||||
-- userLink:set_text("<a href=\"url\">" .. url .. "</a>")
|
-- userLink:set_text("<a href=\"url\">" .. url .. "</a>")
|
||||||
|
|
||||||
local s = vlc.stream(url)
|
local s, msg = vlc.stream(url)
|
||||||
|
if not s then
|
||||||
|
vlc.msg.warn(msg)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
data = s:read(65000)
|
data = s:read(65000)
|
||||||
|
|
||||||
text = "<h1>" .. titles[sel].title .. " (" .. titles[sel].year .. ")</h1>"
|
text = "<h1>" .. titles[sel].title .. " (" .. titles[sel].year .. ")</h1>"
|
||||||
@ -214,7 +223,11 @@ function click_open()
|
|||||||
text = text .. actors .. "</table>"
|
text = text .. actors .. "</table>"
|
||||||
|
|
||||||
text = text .. "<h2>Plot Summary</h2>"
|
text = text .. "<h2>Plot Summary</h2>"
|
||||||
s = vlc.stream(url .. "plotsummary")
|
s, msg = vlc.stream(url .. "plotsummary")
|
||||||
|
if not s then
|
||||||
|
vlc.msg.warn(msg)
|
||||||
|
return
|
||||||
|
end
|
||||||
data = s:read(65000)
|
data = s:read(65000)
|
||||||
|
|
||||||
-- We read only the first summary
|
-- We read only the first summary
|
||||||
|
@ -34,6 +34,7 @@ function try_query(query)
|
|||||||
l = nil
|
l = nil
|
||||||
vlc.msg.dbg( query )
|
vlc.msg.dbg( query )
|
||||||
local s = vlc.stream( query )
|
local s = vlc.stream( query )
|
||||||
|
if not s then return nil end
|
||||||
local page = s:read( 65653 )
|
local page = s:read( 65653 )
|
||||||
|
|
||||||
-- FIXME: multiple results may be available
|
-- FIXME: multiple results may be available
|
||||||
|
@ -49,6 +49,8 @@ function fetch_art()
|
|||||||
return nil
|
return nil
|
||||||
end
|
end
|
||||||
fd = vlc.stream( "http://images.google.com/images?q=" .. get_query( title ) )
|
fd = vlc.stream( "http://images.google.com/images?q=" .. get_query( title ) )
|
||||||
|
if not fd then return nil end
|
||||||
|
|
||||||
page = fd:read( 65653 )
|
page = fd:read( 65653 )
|
||||||
fd = nil
|
fd = nil
|
||||||
_, _, arturl = string.find( page, "imgurl=([^&]+)" )
|
_, _, arturl = string.find( page, "imgurl=([^&]+)" )
|
||||||
|
@ -46,6 +46,7 @@ function fetch_meta()
|
|||||||
end
|
end
|
||||||
|
|
||||||
local fd = vlc.stream("http://services.tvrage.com/feeds/search.php?show=" .. get_query(showName))
|
local fd = vlc.stream("http://services.tvrage.com/feeds/search.php?show=" .. get_query(showName))
|
||||||
|
if not fd then return nil end
|
||||||
local page = fd:read( 65653 )
|
local page = fd:read( 65653 )
|
||||||
fd = nil
|
fd = nil
|
||||||
_, _, showid = string.find( page, "<showid>(.-)</showid>" )
|
_, _, showid = string.find( page, "<showid>(.-)</showid>" )
|
||||||
@ -54,6 +55,7 @@ function fetch_meta()
|
|||||||
end
|
end
|
||||||
|
|
||||||
fd = vlc.stream("http://services.tvrage.com/feeds/full_show_info.php?sid=" .. showid)
|
fd = vlc.stream("http://services.tvrage.com/feeds/full_show_info.php?sid=" .. showid)
|
||||||
|
if not fd then return nil end
|
||||||
page = fd:read( 65653 )
|
page = fd:read( 65653 )
|
||||||
fd = nil
|
fd = nil
|
||||||
_, _, season = string.find(page, "<Season no=\""..seasonNumber.."\">(.-)</Season>")
|
_, _, season = string.find(page, "<Season no=\""..seasonNumber.."\">(.-)</Season>")
|
||||||
|
@ -29,7 +29,8 @@ module("simplexml",package.seeall)
|
|||||||
-- text content (string)
|
-- text content (string)
|
||||||
--]]
|
--]]
|
||||||
|
|
||||||
local function parsexml(stream)
|
local function parsexml(stream, errormsg)
|
||||||
|
if not stream then return nil, errormsg end
|
||||||
local xml = vlc.xml()
|
local xml = vlc.xml()
|
||||||
local reader = xml:create_reader(stream)
|
local reader = xml:create_reader(stream)
|
||||||
|
|
||||||
|
@ -25,7 +25,11 @@ function descriptor()
|
|||||||
end
|
end
|
||||||
|
|
||||||
function main()
|
function main()
|
||||||
local fd = vlc.stream( "http://mafreebox.freebox.fr/freeboxtv/playlist.m3u" )
|
local fd, msg = vlc.stream( "http://mafreebox.freebox.fr/freeboxtv/playlist.m3u" )
|
||||||
|
if not fd then
|
||||||
|
vlc.msg.warn(msg)
|
||||||
|
return nil
|
||||||
|
end
|
||||||
local line= fd:readline()
|
local line= fd:readline()
|
||||||
if line ~= "#EXTM3U" then
|
if line ~= "#EXTM3U" then
|
||||||
return nil
|
return nil
|
||||||
|
Loading…
Reference in New Issue
Block a user