Switch codebase to use sanitized_Request instead of
[youtube-dl] / youtube_dl / extractor / promptfile.py
index 463e855014fada90cce969f8dccc0b9f1e80cde7..d5357283addc5e1faafebff51044083eeb4fafa3 100644 (file)
@@ -4,17 +4,16 @@ from __future__ import unicode_literals
 import re
 
 from .common import InfoExtractor
+from ..compat import compat_urllib_parse
 from ..utils import (
-    ExtractorError,
     determine_ext,
-    compat_urllib_parse,
-    compat_urllib_request,
+    ExtractorError,
+    sanitized_Request,
 )
 
 
 class PromptFileIE(InfoExtractor):
     _VALID_URL = r'https?://(?:www\.)?promptfile\.com/l/(?P<id>[0-9A-Z\-]+)'
-    _FILE_NOT_FOUND_REGEX = r'<div.+id="not_found_msg".+>.+</div>[^-]'
     _TEST = {
         'url': 'http://www.promptfile.com/l/D21B4746E9-F01462F0FF',
         'md5': 'd1451b6302da7215485837aaea882c4c',
@@ -27,20 +26,16 @@ class PromptFileIE(InfoExtractor):
     }
 
     def _real_extract(self, url):
-        mobj = re.match(self._VALID_URL, url)
-        video_id = mobj.group('id')
+        video_id = self._match_id(url)
         webpage = self._download_webpage(url, video_id)
 
-        if re.search(self._FILE_NOT_FOUND_REGEX, webpage) is not None:
+        if re.search(r'<div.+id="not_found_msg".+>(?!We are).+</div>[^-]', webpage) is not None:
             raise ExtractorError('Video %s does not exist' % video_id,
                                  expected=True)
 
-        fields = dict(re.findall(r'''(?x)type="hidden"\s+
-            name="(.+?)"\s+
-            value="(.*?)"
-            ''', webpage))
+        fields = self._hidden_inputs(webpage)
         post = compat_urllib_parse.urlencode(fields)
-        req = compat_urllib_request.Request(url, post)
+        req = sanitized_Request(url, post)
         req.add_header('Content-type', 'application/x-www-form-urlencoded')
         webpage = self._download_webpage(
             req, video_id, 'Downloading video page')