Пример #1
0
def search(query, pages):
    _mongo = pymongo.MongoClient().minerva[query]

    minerva_twitter_config = json.load(open(
        os.path.join(os.path.dirname(__file__), "twitter.json")
    ))
    auth = tweepy.OAuthHandler(minerva_twitter_config["twitter"]["CONSUMER_KEY"],
                        minerva_twitter_config["twitter"]["CONSUMER_SECRET"])
    auth.set_access_token(minerva_twitter_config["twitter"]["ACCESS_KEY"],
                          minerva_twitter_config["twitter"]["ACCESS_SECRET"])
    api = tweepy.API(auth)

    resolver = get_resolver()
    resolver.load_locations()

    for pageInd, page in enumerate(tweepy.Cursor(api.search, q=query, count=100).pages(pages)):
        for resultInd, result in enumerate(page):
            location = resolver.resolve_tweet(result._json)
            # only store those with geolocation
            if location:
                rec = {
                    "id": result.id_str,
                    "location": location[1].__dict__,
                    "text": result.text,
                    "created_at": datestring_to_epoch(result.created_at)
                }
                _mongo.insert(rec)
Пример #2
0
def createTweetGeocoder():
    resolver = get_resolver()
    resolver.load_locations()

    def tweetGeocoder(tweet):
        location = resolver.resolve_tweet(tweet)
        if location is not None:
            tweet["location"] = location[1].__dict__
        return tweet

    return tweetGeocoder