# encoding: utf8 from __future__ import unicode_literals, print_function import plac import codecs import pathlib import random import twython import spacy.en import _handler class Connection(twython.TwythonStreamer): def __init__(self, keys_dir, nlp, query): keys_dir = pathlib.Path(keys_dir) read = lambda fn: (keys_dir / (fn + '.txt')).open().read().strip() api_key = map(read, ['key', 'secret', 'token', 'token_secret']) twython.TwythonStreamer.__init__(self, *api_key) self.nlp = nlp self.query = query def on_success(self, data): _handler.handle_tweet(self.nlp, data, self.query) if random.random() >= 0.1: reload(_handler) def main(keys_dir, term): nlp = spacy.en.English() twitter = Connection(keys_dir, nlp, term) twitter.statuses.filter(track=term, language='en') if __name__ == '__main__': plac.call(main)