katsomo.lua: add code to handle both treeId and progId in url
[vlc.git] / share / lua / playlist / metacafe.lua
1 --[[
2  $Id$
3
4  Copyright © 2007 the VideoLAN team
5
6  This program is free software; you can redistribute it and/or modify
7  it under the terms of the GNU General Public License as published by
8  the Free Software Foundation; either version 2 of the License, or
9  (at your option) any later version.
10
11  This program is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  GNU General Public License for more details.
15
16  You should have received a copy of the GNU General Public License
17  along with this program; if not, write to the Free Software
18  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
19 --]]
20
21 -- Probe function.
22 function probe()
23     return vlc.access == "http"
24         and string.match( vlc.path, "metacafe.com" ) 
25         and (  string.match( vlc.path, "watch/" )
26             or string.match( vlc.path, "mediaURL=" ) )
27 end
28
29 -- Parse function.
30 function parse()
31     vlc.msg.warn("FIXME")
32     if string.match( vlc.path, "watch/" )
33     then -- This is the HTML page's URL
34         while true do
35             -- Try to find the video's title
36             line = vlc.readline()
37             if not line then break end
38             if string.match( line, "<meta name=\"title\"" ) then
39                 _,_,name = string.find( line, "content=\"Metacafe %- (.-)\"" )  
40             end
41             if string.match( line, "<meta name=\"description\"" ) then
42                 _,_,description = string.find( line, "content=\"(.-)\"" )  
43             end
44             if string.match( line, "<link rel=\"image_src\"" ) then
45                 _,_,arturl = string.find( line, "href=\"(.-)\"" )
46             end
47             if name and description and arturl then break end
48         end
49         return { { path = string.gsub( vlc.path, "^.*watch/(.*[^/])/?$", "http://www.metacafe.com/fplayer/%1.swf" ); name = name; description = description; arturl = arturl;  } }
50     else -- This is the flash player's URL
51         local _,_,path = string.find( vlc.path, "mediaURL=([^&]*)" )
52         return { { path = path } }
53     end
54 end