]> git.sesse.net Git - vlc/commitdiff
lua playlist: update lelombrik parser
authorRafaël Carré <rafael.carre@gmail.com>
Sun, 18 Jul 2010 20:14:36 +0000 (22:14 +0200)
committerRafaël Carré <rafael.carre@gmail.com>
Sun, 18 Jul 2010 20:14:36 +0000 (22:14 +0200)
share/lua/playlist/lelombrik.lua

index 82fb47228039d0e9198d5d22f7a0025f2d743239..b804baceceba47f04d4fd29717053f1893006e71 100644 (file)
@@ -28,19 +28,26 @@ end
 
 -- Parse function.
 function parse()
-    vidtitle = ""
     while true do
         line = vlc.readline()
-        if not line then break end
+        if not line then
+            vlc.msg.err("Couldn't extract the video URL from lelombrik")
+            return { }
+        end
+
         if string.match( line, "id=\"nom_fichier\">" ) then
-            vidtitle = string.gsub( line, ".*\"nom_fichier\">([^<]*).*", "%1" )
+            title = string.gsub( line, ".*\"nom_fichier\">([^<]*).*", "%1" )
+        elseif string.match( line, "'file'" ) then
+            _,_,path = string.find( line, "'file', *'([^']*)")
+        elseif string.match( line, "flashvars=" ) then
+            path = string.gsub( line, "flashvars=.*&file=([^&]*).*", "%1" )
+            arturl = string.gsub( line, "flashvars=.*&image=([^&]*).*", "%1" )
+        elseif string.match( line, "'image'" ) then
+            _,_,arturl = string.find( line, "'image', *'([^']*)")
         end
-        if string.match( line, "flvplayer.swf" ) then
-            -- fallback: retrieve the title from the url if we didn't find it
-            if vidtitle == "" then
-                vidtitle = string.gsub( vlc.path, ".*/([^.]*).*", "%1" )
-            end
-            return { { path = string.gsub( line, ".*flashvars=\"&file=([^&]*).*", "%1" ); arturl = string.gsub( line, ".*&image=([^&]*).*", "%1" ); title = vidtitle } }
+
+        if path and arturl and title then
+            return { { path = path; arturl = arturl; title = title } }
         end
     end
 end