def tweets(uid,min_date=None,max_date=None,limit=100): "returns all the tweets for a user between min_date and max_date" start = parse_date(min_date) end = parse_date(max_date) limit = int(limit) if limit else None tweets = Tweet.find( (Tweet.user_id==int(uid)) & (Tweet.created_at.range(start,end)), limit=limit, sort=Tweet._id) return [t.to_d() for t in tweets]
def make_graph(time, users, tri_edges): tweets = Tweet.find(Tweet.created_at.range(time, time+TIME_DELAY)) edges = ((tweet.user_id,at) for tweet in tweets for at in tweet.mentions if tweet.user_id!=at and at in users) graph = defaultdict(int) for e in edges: if tuple(sorted(e)) in tri_edges: graph[e]+=1 return GraphSnapshot( _id = time, from_ids = (k[0] for k in graph.iterkeys()), to_ids = (k[1] for k in graph.iterkeys()), weights = graph.itervalues(), )