[instagram] restore warnings for private profiles (#3004)

This commit is contained in:
Mike Fährmann
2022-10-03 22:40:30 +02:00
parent 3e65645cfa
commit fce6642699

View File

@@ -701,7 +701,12 @@ class InstagramRestAPI():
def user_id(self, screen_name):
if screen_name.startswith("id:"):
return screen_name[3:]
return self.user(screen_name)["id"]
user = self.user(screen_name)
if user["is_private"] and not user["followed_by_viewer"]:
name = user["username"]
s = "" if name.endswith("s") else "s"
raise exception.StopExtraction("%s'%s posts are private", name, s)
return user["id"]
def user_clips(self, user_id):
endpoint = "/v1/clips/user/"
@@ -799,11 +804,14 @@ class InstagramGraphqlAPI():
def __init__(self, extractor):
self.extractor = extractor
self.user = InstagramRestAPI(extractor).user
self.user_collection = self.user_saved = self.reels_media = \
self.highlights_media = self._login_required
self._json_dumps = json.JSONEncoder(separators=(",", ":")).encode
api = InstagramRestAPI(extractor)
self.user = api.user
self.user_id = api.user_id
@staticmethod
def _login_required(_=None):
raise exception.AuthorizationError("Login required")
@@ -841,11 +849,6 @@ class InstagramGraphqlAPI():
return self._pagination(query_hash, variables,
"hashtag", "edge_hashtag_to_media")
def user_id(self, screen_name):
if screen_name.startswith("id:"):
return screen_name[3:]
return self.user(screen_name)["id"]
def user_clips(self, user_id):
query_hash = "bc78b344a68ed16dd5d7f264681c4c76"
variables = {"id": user_id, "first": 50}