script/rest/search_enmi.py
changeset 11 54d7f1486ac4
parent 9 bb44692e09ee
child 15 5d552b6a0e55
--- 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()