Example #1
0
 def get_igraph_g(self):
     from smarttypes.model.twitter_user import TwitterUser
     from smarttypes.graphreduce.reduce_graph import get_igraph_graph
     network = {}
     for score, user_id in self.get_members():
         user = TwitterUser.get_by_id(user_id, self.postgres_handle)
         network[user.id] = set(user.following_ids)
     g = get_igraph_graph(network)
     pagerank = g.pagerank(damping=0.65)
     both = zip(pagerank, g.vs['name'])
     for x, y in sorted(both):
         print x
         print TwitterUser.get_by_id(y, self.postgres_handle).screen_name
Example #2
0
    def get_igraph_g(self):
        from smarttypes.model.twitter_user import TwitterUser
        from smarttypes.graphreduce.reduce_graph import get_igraph_graph

        network = {}
        for score, user_id in self.get_members():
            user = TwitterUser.get_by_id(user_id, self.postgres_handle)
            network[user.id] = set(user.following_ids)
        g = get_igraph_graph(network)
        pagerank = g.pagerank(damping=0.65)
        both = zip(pagerank, g.vs["name"])
        for x, y in sorted(both):
            print x
            print TwitterUser.get_by_id(y, self.postgres_handle).screen_name
Example #3
0
    if not len(sys.argv) > 1:
        raise Exception('Need a twitter handle.')
    else:
        screen_name = sys.argv[1]

    if smarttypes.config.IS_PROD:
        start_here = datetime.now()
    else:
        start_here = datetime(2012, 8, 1)
    root_user = TwitterUser.by_screen_name(screen_name, postgres_handle)
    distance = 45000 / len(root_user.following[:5000])
    #distance = 0
    network = TwitterUser.get_rooted_network(root_user, postgres_handle, start_here=start_here, distance=distance,
        go_back_this_many_weeks=15)
    print "writing %s nodes to disk" % len(network)
    g = reduce_graph.get_igraph_graph(network)

    lang_names = []
    loc_names = []
    for node_id in g.vs['name']:
        user = TwitterUser.get_by_id(node_id, postgres_handle)
        lang_names.append(user.lang.encode('ascii', 'ignore'))
        loc_names.append(user.location_name.encode('ascii', 'ignore'))
    g.vs['lang_name'] = lang_names
    g.vs['loc_name'] = loc_names
    reduce_graph.write_to_graphml_file(root_user, g, network)
    # print "mk_user_csv took %s to execute" % (datetime.now() - start_time)