def getUser(id, token): global logger payload = {'access_token': token['token']} url = "https://api.instagram.com/v1/users/{}".format(str(id)) r = requests.get(url, params=payload) if r.status_code != 200: logger.warning("Error getting user {}: {}".format(id, r.text)) return False else: logger.info("Successfully got user {}: {}".format(id, r.text)) if r.json()['data']['counts']['followed_by'] >= 5000: user = format_user(r.json()) try: dbInsert(user) except: exception = sys.exc_info() print exception print traceback.format_exc() quit() return r.json()
def get_users(tokens, user_ids): """ Runs 50 processes to check all tokens really freakin' fast """ user_ids = range(user_ids, user_ids + 1000) workers = 50 work_queue = Queue() done_queue = Queue() processes = [] for user_id in user_ids: updated_tokens = getRandomToken(tokens) token = updated_tokens['chosen_token'] tokens = updated_tokens['all_tokens'] work_queue.put({'id': user_id, 'token': token}) for w in xrange(workers): p = Process(target=user_worker, args=(work_queue, done_queue)) p.start() processes.append(p) work_queue.put('STOP') for p in processes: p.join() done_queue.put('STOP') for user in iter(done_queue.get, 'STOP'): dbInsert(user) return True