예제 #1
0
def is_relevant(user_id):
    user_id = str(user_id)
    if user_id in RELEVANT:
        return RELEVANT[user_id]
    else:
        retries = 0
        while True:
            try:
                TW = API_HANDLER.get_connection()
                u = TW.get_user(user_id)
                relevant = u.followers_count > 40 and u.friends_count > 40
                RELEVANT[user_id] = relevant
                with open(RELEVANT_FNAME, 'w') as f:
                    json.dump(RELEVANT, f)
                return relevant
            except Exception, e:
                print "Error in is_relevant for %s" % user_id
                retries += 1
                if retries == 5:
                    print "Gave up retrying for user %s" % user_id
                    print "(marked as not relevant)"
                    return False
                else:
                    print "waiting..."
                    time.sleep(10)
예제 #2
0
def get_followed_user_ids(user=None, user_id=None):
    if user is not None:
        user_id = user.id

    if GRAPH.out_degree(user_id):
        followed = GRAPH.successors(user_id)
        return followed
    else:
        retries = 0
        while True:
     
            try:
                TW = API_HANDLER.get_connection()
                followed = TW.friends_ids(user_id=user_id)
                GRAPH.add_edges_from([(user_id, f_id) for f_id in followed])
                return followed
            except Exception, e:
                # print e
                if e.message == u'Not authorized.':
                    NOTAUTHORIZED.add(user_id)
                    with open(NOTAUTHORIZED_FNAME, 'wb') as f:
                        pickle.dump(NOTAUTHORIZED, f)
                    return []
                else:
                    print "Error for user %d: %s" % (user_id, e.message)
                    retries += 1
                    if retries == 5:
                        print "Gave up retrying for user %d" % user_id
                        return [] 
                    else:
                        print "waiting..."
                        time.sleep(10)
예제 #3
0
def get_follower_counts(user_id):
    TW = API_HANDLER.get_connection()
    u = TW.get_user(user_id)
    return u.followers_count