瀏覽代碼

[udemy] Handle already-logged-in scenario (Closes #6327)

Sergey M․ 10 年之前
父節點
當前提交
d609edf4f1
共有 1 個文件被更改,包括 6 次插入3 次删除
  1. 6 3
      youtube_dl/extractor/udemy.py

+ 6 - 3
youtube_dl/extractor/udemy.py

@@ -77,7 +77,11 @@ class UdemyIE(InfoExtractor):
         login_popup = self._download_webpage(
         login_popup = self._download_webpage(
             self._LOGIN_URL, None, 'Downloading login popup')
             self._LOGIN_URL, None, 'Downloading login popup')
 
 
-        if login_popup == '<div class="run-command close-popup redirect" data-url="https://www.udemy.com/"></div>':
+        def is_logged(webpage):
+            return any(p in webpage for p in ['href="https://www.udemy.com/user/logout/', '>Logout<'])
+
+        # already logged in
+        if is_logged(login_popup):
             return
             return
 
 
         login_form = self._form_hidden_inputs('login-form', login_popup)
         login_form = self._form_hidden_inputs('login-form', login_popup)
@@ -95,8 +99,7 @@ class UdemyIE(InfoExtractor):
         response = self._download_webpage(
         response = self._download_webpage(
             request, None, 'Logging in as %s' % username)
             request, None, 'Logging in as %s' % username)
 
 
-        if all(logout_pattern not in response
-               for logout_pattern in ['href="https://www.udemy.com/user/logout/', '>Logout<']):
+        if not is_logged(response):
             error = self._html_search_regex(
             error = self._html_search_regex(
                 r'(?s)<div[^>]+class="form-errors[^"]*">(.+?)</div>',
                 r'(?s)<div[^>]+class="form-errors[^"]*">(.+?)</div>',
                 response, 'error message', default=None)
                 response, 'error message', default=None)