Open
Description
Seems they changed their login-page to look nycer or something. My fork is a bit out of sync, so I just provide that function:
from bs4 import BeautifulSoup
import json
…
def get_redirect_url(conf, c, current_url=None):
# type: (Conf, str, Optional[str]) -> Optional[str]
from_uri = ""
try:
modelDataBag = re.search(r'var\s*modelDataBag\s*=\s*\'([^\']+)\'', c).group(1)
modelDataBag = modelDataBag.encode('latin-1').decode('unicode_escape').encode('latin-1').decode('utf-8').strip()
modelDataBag = json.loads(modelDataBag)
print(f"DataBag {modelDataBag}", file=sys.stderr)
base_url = modelDataBag.get('baseUrl', '')
from_uri = modelDataBag.get('fromURI', '')
except:
pass
if from_uri == "":
soup = BeautifulSoup(c, 'html.parser')
try:
input_tag = soup.find('input', {'id': 'fromURI'})
from_uri = input_tag.get('value')
print(f"Redirect URL {from_uri}", file=sys.stderr)
except:
pass
if from_uri == "":
rx_base_url = re.search(r'var\s*baseUri\s*=\s*\'([^\']+)\'', c)
rx_from_uri = re.search(r'var\s*fromUri\s*=\s*\'([^\']+)\'', c)
if not rx_from_uri:
dbg(conf.debug, 'not found', 'fromUri')
return None
from_uri = to_n(to_b(rx_from_uri.group(1)).decode('unicode_escape').strip())
if from_uri.startswith('http'):
return from_uri#
if not rx_base_url:#
dbg(conf.debug, 'not found', 'baseUri')
if current_url:
return urljoin(current_url, from_uri)
return from_uri
base_url = to_n(to_b(rx_base_url.group(1)).decode('unicode_escape').strip())
if from_uri.startswith('http'):
return from_uri
return base_url + from_uri
Metadata
Metadata
Assignees
Labels
No labels