appletrailers.lua
上传用户:kjfoods
上传日期:2020-07-06
资源大小:29949k
文件大小:2k
源码类别:

midi

开发平台:

Unix_Linux

  1. --[[
  2.    Translate trailers.apple.com video webpages URLs to the corresponding
  3.    movie URL
  4.  $Id$
  5.  Copyright © 2007 the VideoLAN team
  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.  This program is distributed in the hope that it will be useful,
  11.  but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13.  GNU General Public License for more details.
  14.  You should have received a copy of the GNU General Public License
  15.  along with this program; if not, write to the Free Software
  16.  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  17. --]]
  18. -- Probe function.
  19. function probe()
  20.     return vlc.access == "http"
  21.         and string.match( vlc.path, "www.apple.com/trailers" ) 
  22. end
  23. function find( haystack, needle )
  24.     local _,_,r = string.find( haystack, needle )
  25.     return r
  26. end
  27. -- Parse function.
  28. function parse()
  29.     p = {}
  30.     while true
  31.     do 
  32.         line = vlc.readline()
  33.         if not line then break end
  34.         for path in string.gmatch( line, "http://movies.apple.com/movies/.-%.mov" ) do
  35.             path = vlc.strings.decode_uri( path )
  36.             if string.match( path, "320" ) then
  37.                 extraname = " (320p)"
  38.             elseif string.match( path, "480" ) then
  39.                 extraname = " (480p)"
  40.             elseif string.match( path, "640" ) then
  41.                 extraname = " (640p)"
  42.             elseif string.match( path, "720" ) then
  43.                 extraname = " (720p)"
  44.             elseif string.match( path, "1080" ) then
  45.                 extraname = " (1080p)"
  46.             else
  47.                 extraname = ""
  48.             end
  49.             table.insert( p, { path = path; name = title..extraname; description = description; url = vlc.path; options = ":http-user-agent="QuickTime vlc lua edition"" } )
  50.         end
  51.         if string.match( line, "<title>" )
  52.         then
  53.             title = vlc.strings.decode_uri( find( line, "<title>(.-)<" ) )
  54.         end
  55.         if string.match( line, "<meta name="Description"" )
  56.         then
  57.             description = vlc.strings.resolve_xml_special_chars( find( line, "name="Description" content="(.-)"" ) )
  58.         end
  59.     end
  60.     return p
  61. end