Skip to content

Commit

Permalink
Refactor shuffle_session method.
Browse files Browse the repository at this point in the history
  • Loading branch information
iSarabjitDhiman committed May 31, 2023
1 parent 6e2c99c commit e7bb98e
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 12 deletions.
26 changes: 15 additions & 11 deletions instagpy/instagpy.py
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,9 @@ def generate_session(self, session_id=None):
{'x-csrftoken': csrf_token, 'X-Requested-With': "XMLHttpRequest", 'Referer': login_page_url})

def shuffle_session(self):
if not self.use_mutiple_account:
return
self.current_request_number += 1
if self.current_request_number % self.shuffle_session_after == 0:
self.shuffle_session_after = random.randint(
self.min_requests, self.max_requests)
Expand Down Expand Up @@ -184,7 +187,10 @@ def get_user_info(self, username):
Returns:
dict: user info like username,id,bio,follower/following count etc.
"""
return make_request(user_profile_endpoint.format(username), session=self.session, max_retries=self.max_retries)
response = make_request(user_profile_endpoint.format(
username), session=self.session, max_retries=self.max_retries)
self.shuffle_session()
return response

def get_user_data(self, user_id):
"""Extracts user details. With Contact Info Like email, phone and address.
Expand All @@ -201,9 +207,7 @@ def get_user_data(self, user_id):
user_id = self.get_user_id(user_id)
response = make_request(user_data_endpoint.format(
user_id), session=self.session, max_retries=self.max_retries)
if self.use_mutiple_account:
self.current_request_number += 1
self.shuffle_session()
self.shuffle_session()
return response

def get_user_basic_details(self, username=None, print_formatted=False):
Expand Down Expand Up @@ -297,9 +301,7 @@ def get_user_friends(self, username, followers_list=False, followings_list=False
if not has_next_page or (max is not None and len(user_friends) >= max):
return user_friends

if self.use_mutiple_account:
self.current_request_number += 1
self.shuffle_session()
self.shuffle_session()

except ConnectionError as error:
print(error)
Expand Down Expand Up @@ -380,9 +382,7 @@ def filter_by_date(user_posts):
if not has_next_page or (max is not None and len(user_posts_data) >= max):
return user_posts_data

if self.use_mutiple_account:
self.current_request_number += 1
self.shuffle_session()
self.shuffle_session()

except Exception as e:
print(e)
Expand All @@ -400,7 +400,10 @@ def get_post_details(self, post_url):
url = graphql_url
query_params = self.generate_query(
query=post_details_query, shortcode=post_id, is_graphql=True)
return make_request(url, params=query_params, session=self.session, max_retries=self.max_retries)
response = make_request(
url, params=query_params, session=self.session, max_retries=self.max_retries)
self.shuffle_session()
return response

def get_media_url(self, response):
"""Extracts High Resolution/Quality Media URL from post details response returned from get_post_details method.
Expand Down Expand Up @@ -440,6 +443,7 @@ def get_about_user(self, username, print_formatted=True):
session=self.session, max_retries=self.max_retries)
if print_formatted:
return utils.format_about_data(response)
self.shuffle_session()
return response


Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from setuptools import setup

VERSION = "0.1.2"
VERSION = "0.1.3"
SHORT_DESCRIPTION = "InstaGPy is an Instagram Unofficial API to extract data from Instargam Profiles. Scrape data from user's profile like username, userid, bio, email, phone, followers/followings list, profile media, account_type, etc."

with open("requirements.txt") as file:
Expand Down

0 comments on commit e7bb98e

Please sign in to comment.