diff -r eb885a117aa0 -r 54d7f1486ac4 script/rest/search_enmi.py --- a/script/rest/search_enmi.py Wed Jan 12 13:25:01 2011 +0100 +++ b/script/rest/search_enmi.py Tue Jan 18 10:08:03 2011 +0100 @@ -1,5 +1,7 @@ +from iri_tweet import models, utils +from sqlalchemy.orm import sessionmaker import sqlite3 -import twython +import twitter def get_option(): @@ -13,6 +15,11 @@ help="quiet", metavar="QUIET", default=0) parser.add_option("-r", "--request", dest="request", help="twitter request", metavar="REQUEST", default=0) + parser.add_option("-Q", dest="query", + help="query", metavar="QUERY") + parser.add_option("-P", dest="rpp", metavar="RPP", default="50", + help="Result per page", metavar="RPP") + #add request token #add @@ -20,20 +27,31 @@ if __name__ == "__main__": - twitter = twython.Twython() - conn = sqlite3.connect('enmi2010_twitter_rest.db') + (options, args) = get_option() + + twitter = twitter.Twitter(domain="search.twitter.com") + engine, metadata = models.setup_database('sqlite:///'+args[0], echo=((options.verbose-options.quiet)>0)) + Session = sessionmaker(bind=engine) + session = Session() try: - conn.row_factory = sqlite3.Row - curs = conn.cursor() - curs.execute("create table if not exists tweet_tweet (json);") - conn.commit() + #conn.row_factory = sqlite3.Row + #curs = conn.cursor() + #curs.execute("create table if not exists tweet_tweet (json);") + #conn.commit() - results = twitter.searchTwitter(q="#enmi", rpp="50") - for tweet in results["results"]: - print tweet - curs.execute("insert into tweet_tweet (json) values (:json);", {"json":unicode(tweet)}) - conn.commit() + results = None + page = 1 + + while page <= int(1500/int(options.rpp)) and ( results is None or len(results) > 0): + results = twitter. search(q=options.query, rpp=options.rpp, page=page) + for tweet in results["results"]: + print tweet + processor = utils.TwitterProcessor(tweet, None, session) + processor.process() + session.flush() + page += 1 + session.commit() finally: - conn.close() + session.close()