import re
+import urllib.parse
from .common import InfoExtractor
-
-from ..compat import (
- compat_urlparse,
-)
-
from ..utils import (
+ ExtractorError,
+ clean_html,
+ int_or_none,
urlencode_postdata,
urljoin,
- int_or_none,
- clean_html,
- ExtractorError
)
'info_dict': {
'id': '60095',
'ext': 'mp4',
- 'title': 'ReferĂȘncias, ref-set e alter'
+ 'title': 'ReferĂȘncias, ref-set e alter',
},
'skip': 'Requires alura account credentials'},
{
'only_matching': True},
{
'url': 'https://cursos.alura.com.br/course/fundamentos-market-digital/task/55219',
- 'only_matching': True}
+ 'only_matching': True},
]
def _real_extract(self, url):
return {
'id': video_id,
'title': video_title,
- "formats": formats
+ 'formats': formats,
}
def _perform_login(self, username, password):
'post url', default=self._LOGIN_URL, group='url')
if not post_url.startswith('http'):
- post_url = compat_urlparse.urljoin(self._LOGIN_URL, post_url)
+ post_url = urllib.parse.urljoin(self._LOGIN_URL, post_url)
response = self._download_webpage(
post_url, None, 'Logging in',
r'(?s)<p[^>]+class="alert-message[^"]*">(.+?)</p>',
response, 'error message', default=None)
if error:
- raise ExtractorError('Unable to login: %s' % error, expected=True)
+ raise ExtractorError(f'Unable to login: {error}', expected=True)
raise ExtractorError('Unable to log in')
@classmethod
def suitable(cls, url):
- return False if AluraIE.suitable(url) else super(AluraCourseIE, cls).suitable(url)
+ return False if AluraIE.suitable(url) else super().suitable(url)
def _real_extract(self, url):
'url': video_url,
'id_key': self.ie_key(),
'chapter': chapter,
- 'chapter_number': chapter_number
+ 'chapter_number': chapter_number,
}
entries.append(entry)
return self.playlist_result(entries, course_path, course_title)