[vlc-devel] [PATCH] lua: add Liveleak playlist parser

Ludovic Fauvet etix at videolan.org
Mon Dec 10 11:49:14 CET 2012


On Fri, Dec 7, 2012 at 7:25 PM, Ludovic Fauvet <etix at videolan.org> wrote:
> ---
>  share/Makefile.am               |  2 ++
>  share/lua/playlist/liveleak.lua | 67 +++++++++++++++++++++++++++++++++++++++++
>  2 files changed, 69 insertions(+)
>  create mode 100644 share/lua/playlist/liveleak.lua
>
> diff --git a/share/Makefile.am b/share/Makefile.am
> index 403be9e..7a5d3ff 100644
> --- a/share/Makefile.am
> +++ b/share/Makefile.am
> @@ -176,6 +176,7 @@ nobase_vlclib_DATA = \
>         lua/playlist/katsomo.luac \
>         lua/playlist/koreus.luac \
>         lua/playlist/lelombrik.luac \
> +       lua/playlist/liveleak.luac \
>         lua/playlist/metacafe.luac \
>         lua/playlist/metachannels.luac \
>         lua/playlist/mpora.luac \
> @@ -266,6 +267,7 @@ EXTRA_DIST += \
>         lua/playlist/katsomo.lua \
>         lua/playlist/koreus.lua \
>         lua/playlist/lelombrik.lua \
> +       lua/playlist/liveleak.lua \
>         lua/playlist/metacafe.lua \
>         lua/playlist/metachannels.lua \
>         lua/playlist/mpora.lua \
> diff --git a/share/lua/playlist/liveleak.lua b/share/lua/playlist/liveleak.lua
> new file mode 100644
> index 0000000..6811977
> --- /dev/null
> +++ b/share/lua/playlist/liveleak.lua
> @@ -0,0 +1,67 @@
> +--[[
> + $Id$
> +
> + Copyright © 2012 VideoLAN and AUTHORS
> +
> + Authors: Ludovic Fauvet <etix at videolan.org>
> +
> + 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.liveleak.com/view" )
> +end
> +
> +-- Util function
> +function find( haystack, needle )
> +    local _,_,r = string.find( haystack, needle )
> +    return r
> +end
> +
> +-- Parse function.
> +function parse()
> +    local p = {}
> +    local title
> +    local art
> +    local video
> +
> +    while true do
> +        line = vlc.readline()
> +        if not line then break end
> +
> +        -- Try to find the title
> +        if string.match( line, '<span class="section_title"' ) then
> +            title = find( line, '<span class="section_title"[^>]*>(.-)<' )
> +            title = string.gsub( title, ' ', ' ' )
> +        end
> +
> +        -- Try to find the art
> +        if string.match( line, 'image:' ) then
> +            art = find( line, 'image: "(.-)"' )
> +        end
> +
> +        -- Try to find the video
> +        if string.match( line, 'file:' ) then
> +            video = find( line, 'file: "(.-)"' )
> +        end
> +    end
> +    if video then
> +        table.insert( p, { path = video; name = title; arturl = art; } )
> +    end
> +    return p
> +end
> +
> --
> 1.8.0.1
>

Ping.

--
Ludovic Fauvet



More information about the vlc-devel mailing list