浏览代码

[addanime] improve

Philipp Hagemeister 12 年之前
父节点
当前提交
2eabb80254
共有 4 个文件被更改,包括 10 次插入3 次删除
  1. 1 0
      youtube_dl/extractor/__init__.py
  2. 1 1
      youtube_dl/extractor/appletrailers.py
  3. 1 1
      youtube_dl/extractor/common.py
  4. 7 1
      youtube_dl/utils.py

+ 1 - 0
youtube_dl/extractor/__init__.py

@@ -1,4 +1,5 @@
 from .appletrailers import AppleTrailersIE
+from .addanime import AddAnimeIE
 from .archiveorg import ArchiveOrgIE
 from .ard import ARDIE
 from .arte import ArteTvIE

+ 1 - 1
youtube_dl/extractor/appletrailers.py

@@ -91,7 +91,7 @@ class AppleTrailersIE(InfoExtractor):
                 duration = 60 * int(m.group('minutes')) + int(m.group('seconds'))
 
             formats = []
-            for formats_el in li.findall('.//li/a'):
+            for formats_el in li.findall('.//a'):
                 if formats_el.attrib['class'] != 'OverlayPanel':
                     continue
                 target = formats_el.attrib['target']

+ 1 - 1
youtube_dl/extractor/common.py

@@ -129,7 +129,7 @@ class InfoExtractor(object):
         except (compat_urllib_error.URLError, compat_http_client.HTTPException, socket.error) as err:
             if errnote is None:
                 errnote = u'Unable to download webpage'
-            raise ExtractorError(u'%s: %s' % (errnote, compat_str(err)), sys.exc_info()[2])
+            raise ExtractorError(u'%s: %s' % (errnote, compat_str(err)), sys.exc_info()[2], cause=err)
 
     def _download_webpage_handle(self, url_or_request, video_id, note=None, errnote=None):
         """ Returns a tuple (page content as string, URL handle) """

+ 7 - 1
youtube_dl/utils.py

@@ -60,6 +60,11 @@ try:
 except ImportError: # Python 2
     import httplib as compat_http_client
 
+try:
+    from http.error import HTTPError as compat_HTTPError
+except ImportError:  # Python 2
+    from urllib2 import HTTPError as compat_HTTPError
+
 try:
     from subprocess import DEVNULL
     compat_subprocess_get_DEVNULL = lambda: DEVNULL
@@ -489,7 +494,7 @@ def make_HTTPS_handler(opts):
 
 class ExtractorError(Exception):
     """Error during info extraction."""
-    def __init__(self, msg, tb=None, expected=False):
+    def __init__(self, msg, tb=None, expected=False, cause=None):
         """ tb, if given, is the original traceback (so that it can be printed out).
         If expected is set, this is a normal error message and most likely not a bug in youtube-dl.
         """
@@ -502,6 +507,7 @@ class ExtractorError(Exception):
 
         self.traceback = tb
         self.exc_info = sys.exc_info()  # preserve original exception
+        self.cause = cause
 
     def format_traceback(self):
         if self.traceback is None: