Exemplo n.º 1
0
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