[vlc-commits] lua: add Liveleak playlist parser
Ludovic Fauvet
git at videolan.org
Mon Dec 10 13:48:57 CET 2012
vlc | branch: master | Ludovic Fauvet <etix at videolan.org> | Fri Dec 7 19:25:46 2012 +0100| [45059b5adde4cab5b2559ae960d38d5c147cd4a5] | committer: Konstantin Pavlov
lua: add Liveleak playlist parser
Signed-off-by: Konstantin Pavlov <thresh at videolan.org>
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=45059b5adde4cab5b2559ae960d38d5c147cd4a5
---
share/Makefile.am | 2 ++
share/lua/playlist/liveleak.lua | 67 +++++++++++++++++++++++++++++++++++++++
2 files changed, 69 insertions(+)
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
+
More information about the vlc-commits
mailing list