home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2011 November / maximum-cd-2011-11.iso / DiscContents / vlc-1.1.11-win32.exe / lua / playlist / mpora.lua < prev    next >
Encoding:
Text File  |  2011-07-14  |  2.5 KB  |  75 lines

  1. --[[
  2.  $Id$
  3.  
  4.  Copyright ┬⌐ 2009 the VideoLAN team
  5.  
  6.  Authors: Konstantin Pavlov (thresh@videolan.org)
  7.  
  8.  This program is free software; you can redistribute it and/or modify
  9.  it under the terms of the GNU General Public License as published by
  10.  the Free Software Foundation; either version 2 of the License, or
  11.  (at your option) any later version.
  12.  
  13.  This program is distributed in the hope that it will be useful,
  14.  but WITHOUT ANY WARRANTY; without even the implied warranty of
  15.  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  16.  GNU General Public License for more details.
  17.  
  18.  You should have received a copy of the GNU General Public License
  19.  along with this program; if not, write to the Free Software
  20.  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  21. --]]
  22.  
  23. -- Probe function.
  24. function probe()
  25.     return vlc.access == "http"
  26.         and string.match( vlc.path, "video.mpora.com/watch/" )
  27. end
  28.  
  29. -- Parse function.
  30. function parse()
  31.     p = {}
  32.     while true do
  33.         -- Try to find the video's title
  34.         line = vlc.readline()
  35.         if not line then break end
  36.         if string.match( line, "meta name=\"title\"" ) then
  37.             _,_,name = string.find( line, "content=\"(.*)\" />" )
  38.         end
  39.         if string.match( line, "image_src" ) then
  40.             _,_,arturl = string.find( line, "image_src\" href=\"(.*)\" />" )
  41.         end
  42.         if string.match( line, "video_src" ) then
  43.             _,_,video = string.find( line, "href=\"http://video\.mpora\.com/ep/(.*).swf\" />" )
  44.         end
  45.  
  46.     end
  47.  
  48.     if not name or not arturl or not video then return nil end
  49.  
  50.     -- Try and get URL for SD video.
  51.     sd = vlc.stream("http://api.mpora.com/tv/player/playlist/vid/"..video.."/")
  52.     if not sd then return nil end
  53.     page = sd:read( 65653 )
  54.     sdurl = string.match( page, "url=\"(.*)\" />")
  55.     page = nil
  56.  
  57.     table.insert( p, { path = sdurl; name = name; arturl = arturl; } )
  58.  
  59.     -- Try and check if HD video is available.
  60.     checkhd = vlc.stream("http://api.mpora.com/tv/player/load/vid/"..video.."/platform/video/domain/video.mpora.com/" )
  61.     if not checkhd then return nil end
  62.     page = checkhd:read( 65653 )
  63.     hashd = tonumber( string.match( page, "<has_hd>(%d)</has_hd>" ) )
  64.     page = nil
  65.  
  66.     if hashd then
  67.         hd = vlc.stream("http://api.mpora.com/tv/player/playlist/vid/"..video.."/hd/true/")
  68.         page = hd:read( 65653 )
  69.         hdurl = string.match( page, "url=\"(.*)\" />")
  70.         table.insert( p, { path = hdurl; name = name.." (HD)"; arturl = arturl; } )
  71.     end
  72.  
  73.     return p
  74. end
  75.