[extractor/tubetugraz] Support --twofactor (#6424) (#6427)

Authored by: Ferdi265
Closes #6424
This commit is contained in:
Ferdinand Bachmann 2023-03-04 22:58:16 +01:00 committed by GitHub
parent 46580ced56
commit f44cb4e77b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -21,17 +21,36 @@ def _perform_login(self, username, password):
if not urlh: if not urlh:
return return
urlh = self._request_webpage( content, urlh = self._download_webpage_handle(
urlh.geturl(), None, fatal=False, headers={'referer': urlh.geturl()}, urlh.geturl(), None, fatal=False, headers={'referer': urlh.geturl()},
note='logging in', errnote='unable to log in', data=urlencode_postdata({ note='logging in', errnote='unable to log in',
data=urlencode_postdata({
'lang': 'de', 'lang': 'de',
'_eventId_proceed': '', '_eventId_proceed': '',
'j_username': username, 'j_username': username,
'j_password': password 'j_password': password
})) }))
if not urlh or urlh.geturl() == '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') self.report_warning('unable to login: incorrect password')
return
content, urlh = self._download_webpage_handle(
urlh.geturl(), None, fatal=False, headers={'referer': urlh.geturl()},
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.geturl() == 'https://tube.tugraz.at/paella/ui/index.html':
return
self.report_warning('unable to login: incorrect TFA code')
def _extract_episode(self, episode_info): def _extract_episode(self, episode_info):
id = episode_info.get('id') id = episode_info.get('id')