def isLogin(cookie, setting): cookie = decodeCookie(cookie) setting = json.loads(setting) user = Client("none", "none", cookie=cookie, setting=setting) for i in range(3): try: user.current_user() return True except ClientConnectionError: continue except: return False return False
class Auth(object): isLogin = False def __init__(self): return def __loadSession(self, cl): self.auth = cl self.isLogin = True def login(self, username, password): if self.settings: if 'settings_session.json' not in os.listdir(): self.cl = Client(username, password, cookie=self.cookie, on_login=lambda x: onlogin_callback(x, 'settings_session.json')) print("[%s] [%s] : Save settings_session.json success" % (str(datetime.now()), self.cl.current_user()['user']['full_name'])) else: self.cl = Client(username, password, cookie=json.load(open('settings_session.json'), object_hook=from_json).get('cookie'), settings=json.load(open('settings_session.json'), object_hook=from_json)) print("[%s] [%s] : Load settings_session.json success" % (str(datetime.now()), self.cl.current_user()['user']['full_name'])) else: self.cl = Client(username, password, cookie=self.cookie) self.token = self.cl.csrftoken self.userAgent = self.cl.user_agent self.cookie = self.cl.cookie_jar self.__loadSession(self.cl)
try: caption_text = (post['caption']['text']) print('Caption: {} \n'.format(caption_text)) except: print('Caption not available') print(' Like Status -> {}'.format(response['status'])) print('--' * 20) sleep(sleep_time) return 'Done!' if __name__ == "__main__": user_name = raw_input('Enter your Instagram Username : '******'Enter your Instagram Password : '******'Please wait while logging in....') api = Client(user_name, password) if not api: print('Sorry! Some error, try later!') print('Welcome! {}'.format(api.current_user()['user']['full_name'])) target_user_name = raw_input( 'Please enter the user you want to like pictures of : ') target_user_medias = get_user_medias(target_user_name) target_user_media_ids = get_media_ids(target_user_medias) print('Starting to 😍😍😍 like {} pictures of {}'.format( len(target_user_media_ids), target_user_name)) like_by_media_ids(target_user_media_ids)
class PostInstagram: def __init__(self): self.login() def to_json(self, python_object): if isinstance(python_object, bytes): return { '__class__': 'bytes', '__value__': codecs.encode(python_object, 'base64').decode() } raise TypeError(repr(python_object) + ' is not JSON serializable') def from_json(self, json_object): if '__class__' in json_object and json_object['__class__'] == 'bytes': return codecs.decode(json_object['__value__'].encode(), 'base64') return json_object def onlogin_callback(self, api, new_settings_file): cache_settings = api.settings with open(new_settings_file, 'w') as outfile: json.dump(cache_settings, outfile, default=self.to_json) print('SAVED: {0!s}'.format(new_settings_file)) def login(self): device_id = None try: settings_file = "credentials.json" if not os.path.isfile(settings_file): # settings file does not exist print('Unable to find file: {0!s}'.format(settings_file)) # login new self.api = Client( "iustfuckers", "WihvxHPFraosazXactvkPckutxCouHrGiX7CpgLqQsTwcWquLvEwayDJRohZToio", on_login=lambda x: self.onlogin_callback(x, settings_file)) else: with open(settings_file) as file_data: cached_settings = json.load(file_data, object_hook=self.from_json) print('Reusing settings: {0!s}'.format(settings_file)) device_id = cached_settings.get('device_id') self.api = Client( "iustfuckers", "WihvxHPFraosazXactvkPckutxCouHrGiX7CpgLqQsTwcWquLvEwayDJRohZToio", settings=cached_settings) except (ClientCookieExpiredError, ClientLoginRequiredError) as e: print('ClientCookieExpiredError/ClientLoginRequiredError: {0!s}'. format(e)) # Login expired # Do relogin but use default ua, keys and such self.api = Client( args.username, args.password, device_id=device_id, on_login=lambda x: self.onlogin_callback(x, settings_file)) except ClientLoginError as e: print('ClientLoginError {0!s}'.format(e)) exit(9) except ClientError as e: print('ClientError {0!s} (Code: {1:d}, Response: {2!s})'.format( e.msg, e.code, e.error_response)) exit(9) except Exception as e: print('Unexpected Exception: {0!s}'.format(e)) exit(99) # Show when login expires cookie_expiry = self.api.cookie_jar.expires_earliest print('Cookie Expiry: {0!s}'.format( datetime.datetime.fromtimestamp(cookie_expiry).strftime( '%Y-%m-%dT%H:%M:%SZ'))) def check(self): print(self.api.current_user()) def post_image(self): with open("./image.jpg", "rb") as imageFile: photo_data = imageFile.read() im = Image.open('./image.jpg') results = self.api.post_photo(photo_data, size=im.size, caption='HI')
def ig_login(username, password): device_id = None settings_file = THIS_FOLDER_G + "/data" + username try: if not os.path.isfile(settings_file): # settings file does not exist print('Unable to find file: {0!s}'.format(settings_file)) # login new api = Client(username, password, on_login=lambda x: onlogin_callback(x, settings_file)) else: with open(settings_file) as file_data: cached_settings = json.load(file_data, object_hook=from_json) print('Reusing settings: {0!s}'.format(settings_file)) device_id = cached_settings.get('device_id') # reuse auth settings api = Client(username, password, settings=cached_settings) current_user = api.current_user() except (ClientCookieExpiredError, ClientLoginRequiredError) as e: print( 'ClientCookieExpiredError/ClientLoginRequiredError: {0!s}'.format( e)) if os.path.isfile(settings_file): os.remove(settings_file) return {"status": "error", "msg": "Invalid Username or Password."} # Login expired # Do relogin but use default ua, keys and such # settings_file = THIS_FOLDER_G + "/db/data/cookies/" + username + "_" + _ID + "" # api = Client( # username, password, # device_id=device_id, # on_login=lambda x: onlogin_callback(x, settings_file)) except ClientLoginError as e: print('ClientLoginError {0!s}'.format(e)) if os.path.isfile(settings_file): os.remove(settings_file) return {"status": "error", "msg": "Invalid Username or Password."} except ClientError as e: print('ClientError {0!s} (Code: {1:d}, Response: {2!s})'.format( e.msg, e.code, e.error_response)) # if os.path.isfile(settings_file): # os.remove(settings_file) return {"status": "error", "msg": e.msg} except Exception as e: print('Unexpected Exception: {0!s}'.format(e)) return {"status": "error", "msg": "Something went wrong."} # Show when login expires cookie_expiry = api.cookie_jar.expires_earliest print('Cookie Expiry: {0!s}'.format( datetime.datetime.fromtimestamp(cookie_expiry).strftime( '%Y-%m-%dT%H:%M:%SZ'))) print('All ok') return api
print('Please Enter Username and Password in Account.txt') exit(0) PROXY = True all_proxies = [ i for i in open('proxy_list.txt', 'r').read().split('\n') if len(i) > 1 ] STATE = True API = None PARAMS = None FRST = 1 try: API = Client(user_name, password, authenticate=True) current_user_data = API.current_user()['user'] PARAMS = { 'username': '', 'gender': current_user_data['gender'], 'phone_number': current_user_data['phone_number'], 'first_name': 'Vnes', #current_user_data['full_name'], 'biography': current_user_data['biography'], 'external_url': current_user_data['external_url'], 'email': current_user_data['email'], } except: ctypes.windll.user32.MessageBoxW(0, 'Loging Error', "Wrong Credentials", 1) exit(0) print('!!Login Successfully!!')