Fix wrong ProfileNotExistsException in some edge cases (#785)
Fixes wrong "Profile does not exist" error. Co-authored-by: André Koch-Kramer <koch-kramer@web.de> Co-authored-by: Alexander Graf <17130992+aandergr@users.noreply.github.com>
This commit is contained in:
parent
574cadbb82
commit
886530d661
@ -351,10 +351,10 @@ class InstaloaderContext:
|
|||||||
raise ConnectionException("\"window._sharedData\" does not contain required keys.")
|
raise ConnectionException("\"window._sharedData\" does not contain required keys.")
|
||||||
# If GraphQL data is missing in `window._sharedData`, search for it in `__additionalDataLoaded`.
|
# If GraphQL data is missing in `window._sharedData`, search for it in `__additionalDataLoaded`.
|
||||||
if 'graphql' not in post_or_profile_page[0]:
|
if 'graphql' not in post_or_profile_page[0]:
|
||||||
match = re.search(r'window\.__additionalDataLoaded\([^{]+{"graphql":({.*})}\);</script>',
|
match = re.search(r'window\.__additionalDataLoaded\(.*?({.*"graphql":.*})\);</script>',
|
||||||
resp.text)
|
resp.text)
|
||||||
if match is not None:
|
if match is not None:
|
||||||
post_or_profile_page[0]['graphql'] = json.loads(match.group(1))
|
post_or_profile_page[0]['graphql'] = json.loads(match.group(1))['graphql']
|
||||||
return resp_json
|
return resp_json
|
||||||
else:
|
else:
|
||||||
resp_json = resp.json()
|
resp_json = resp.json()
|
||||||
|
@ -549,7 +549,7 @@ class Profile:
|
|||||||
"""
|
"""
|
||||||
# pylint:disable=protected-access
|
# pylint:disable=protected-access
|
||||||
profile = cls(context, {'username': username.lower()})
|
profile = cls(context, {'username': username.lower()})
|
||||||
profile._obtain_metadata() # to raise ProfileNotExistException now in case username is invalid
|
profile._obtain_metadata() # to raise ProfileNotExistsException now in case username is invalid
|
||||||
return profile
|
return profile
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
Loading…
x
Reference in New Issue
Block a user