[lynda] Skip login if already logged in

This commit is contained in:
Sergey M․ 2016-06-10 23:01:52 +07:00
parent bdf16f8140
commit 3841256c2c
No known key found for this signature in database
GPG Key ID: 2C393E0F18A9236D

View File

@ -71,6 +71,11 @@ def _login(self):
signin_page = self._download_webpage(
self._SIGNIN_URL, None, 'Downloading signin page')
# Already logged in
if any(re.search(p, signin_page) for p in (
'isLoggedIn\s*:\s*true', r'logout\.aspx', r'>Log out<')):
return
# Step 2: submit email
signin_form = self._search_regex(
r'(?s)(<form[^>]+data-form-name=["\']signin["\'][^>]*>.+?</form>)',
@ -85,15 +90,6 @@ def _login(self):
password_form, self._USER_URL, {'email': username, 'password': password},
'Submitting password', signin_url)
def _logout(self):
username, _ = self._get_login_info()
if username is None:
return
self._download_webpage(
'http://www.lynda.com/ajax/logout.aspx', None,
'Logging out', 'Unable to log out', fatal=False)
class LyndaIE(LyndaBaseIE):
IE_NAME = 'lynda'
@ -217,8 +213,6 @@ def _real_extract(self, url):
'http://www.lynda.com/ajax/player?courseId=%s&type=course' % course_id,
course_id, 'Downloading course JSON')
self._logout()
if course.get('Status') == 'NotFound':
raise ExtractorError(
'Course %s does not exist' % course_id, expected=True)