-# coding: utf-8
-from __future__ import unicode_literals
-
import json
import re
LOGGED_IN = False
- def _real_initialize(self):
- self._login()
-
- def _login(self):
- username, password = self._get_login_info()
- if username is None:
- return
-
+ def _perform_login(self, username, password):
_, urlh = self._download_webpage_handle(
'https://learning.oreilly.com/accounts/login-check/', None,
'Downloading login page')
def is_logged(urlh):
- return 'learning.oreilly.com/home/' in urlh.geturl()
+ return 'learning.oreilly.com/home/' in urlh.url
if is_logged(urlh):
self.LOGGED_IN = True
return
- redirect_url = urlh.geturl()
+ redirect_url = urlh.url
parsed_url = compat_urlparse.urlparse(redirect_url)
qs = compat_parse_qs(parsed_url.query)
next_uri = compat_urlparse.urljoin(
webpage, urlh = self._download_webpage_handle(url, video_id)
- mobj = re.match(self._VALID_URL, urlh.geturl())
+ mobj = re.match(self._VALID_URL, urlh.url)
reference_id = mobj.group('reference_id')
if not reference_id:
reference_id = self._search_regex(
part = self._download_json(
url, '%s/%s' % (mobj.group('course_id'), mobj.group('part')),
'Downloading part JSON')
- return self.url_result(part['web_url'], SafariIE.ie_key())
+ web_url = part['web_url']
+ if 'library/view' in web_url:
+ web_url = web_url.replace('library/view', 'videos')
+ natural_keys = part['natural_key']
+ web_url = f'{web_url.rsplit("/", 1)[0]}/{natural_keys[0]}-{natural_keys[1][:-5]}'
+ return self.url_result(web_url, SafariIE.ie_key())
class SafariCourseIE(SafariBaseIE):