浏览代码

[phantomjs] Add required version checking

Tithen-Firion 8 年之前
父节点
当前提交
98f9d87381
共有 1 个文件被更改,包括 10 次插入1 次删除
  1. 10 1
      youtube_dl/utils.py

+ 10 - 1
youtube_dl/utils.py

@@ -3734,13 +3734,22 @@ class PhantomJSwrapper(object):
 
 
     _TMP_FILE_NAMES = ['script', 'html', 'cookies']
     _TMP_FILE_NAMES = ['script', 'html', 'cookies']
 
 
-    def __init__(self, extractor, timeout=10000):
+    def __init__(self, extractor, required_version=None, timeout=10000):
         self.exe = check_executable('phantomjs', ['-v'])
         self.exe = check_executable('phantomjs', ['-v'])
         if not self.exe:
         if not self.exe:
             raise ExtractorError('PhantomJS executable not found in PATH, '
             raise ExtractorError('PhantomJS executable not found in PATH, '
                                  'download it from http://phantomjs.org',
                                  'download it from http://phantomjs.org',
                                  expected=True)
                                  expected=True)
+
         self.extractor = extractor
         self.extractor = extractor
+
+        if required_version:
+            version = get_exe_version(self.exe, version_re=r'([0-9.]+)')
+            if is_outdated_version(version, required_version):
+                self.extractor._downloader.report_warning(
+                    'Your copy of PhantomJS is outdated, update it to version '
+                    '%s or newer if you encounter any errors.' % required_version)
+
         self.options = {
         self.options = {
             'timeout': timeout,
             'timeout': timeout,
         }
         }