aboutsummaryrefslogtreecommitdiffstats
path: root/hypervideo_dl/extractor/tubetugraz.py
diff options
context:
space:
mode:
Diffstat (limited to 'hypervideo_dl/extractor/tubetugraz.py')
-rw-r--r--hypervideo_dl/extractor/tubetugraz.py27
1 files changed, 23 insertions, 4 deletions
diff --git a/hypervideo_dl/extractor/tubetugraz.py b/hypervideo_dl/extractor/tubetugraz.py
index ebabedc..a351e4e 100644
--- a/hypervideo_dl/extractor/tubetugraz.py
+++ b/hypervideo_dl/extractor/tubetugraz.py
@@ -21,17 +21,36 @@ class TubeTuGrazBaseIE(InfoExtractor):
if not urlh:
return
- urlh = self._request_webpage(
- urlh.geturl(), None, fatal=False, headers={'referer': urlh.geturl()},
- note='logging in', errnote='unable to log in', data=urlencode_postdata({
+ content, urlh = self._download_webpage_handle(
+ urlh.url, None, fatal=False, headers={'referer': urlh.url},
+ note='logging in', errnote='unable to log in',
+ data=urlencode_postdata({
'lang': 'de',
'_eventId_proceed': '',
'j_username': username,
'j_password': password
}))
+ if not urlh or urlh.url == 'https://tube.tugraz.at/paella/ui/index.html':
+ return
- if urlh and urlh.geturl() != 'https://tube.tugraz.at/paella/ui/index.html':
+ if not self._html_search_regex(
+ r'<p\b[^>]*>(Bitte geben Sie einen OTP-Wert ein:)</p>',
+ content, 'TFA prompt', default=None):
self.report_warning('unable to login: incorrect password')
+ return
+
+ content, urlh = self._download_webpage_handle(
+ urlh.url, None, fatal=False, headers={'referer': urlh.url},
+ note='logging in with TFA', errnote='unable to log in with TFA',
+ data=urlencode_postdata({
+ 'lang': 'de',
+ '_eventId_proceed': '',
+ 'j_tokenNumber': self._get_tfa_info(),
+ }))
+ if not urlh or urlh.url == 'https://tube.tugraz.at/paella/ui/index.html':
+ return
+
+ self.report_warning('unable to login: incorrect TFA code')
def _extract_episode(self, episode_info):
id = episode_info.get('id')