script/stream/recorder_tweetstream.py
changeset 206 6d642d650470
parent 199 514e0ee0c68a
child 207 621fa6caec0c
equal deleted inserted replaced
205:dfda2d71838b 206:6d642d650470
     6 import datetime
     6 import datetime
     7 import logging
     7 import logging
     8 import os
     8 import os
     9 import socket
     9 import socket
    10 import sys
    10 import sys
       
    11 import time
    11 import tweetstream
    12 import tweetstream
    12 import tweetstream.auth
    13 import tweetstream.auth
    13 socket._fileobject.default_bufsize = 0
    14 socket._fileobject.default_bufsize = 0
    14 
    15 
    15 
    16 
   104         for tweet in stream:            
   105         for tweet in stream:            
   105             if duration >= 0 and  datetime.datetime.utcnow() >= end_ts:
   106             if duration >= 0 and  datetime.datetime.utcnow() >= end_ts:
   106                 print "Stop recording after %d seconds." % (duration)
   107                 print "Stop recording after %d seconds." % (duration)
   107                 break
   108                 break
   108             process_tweet(tweet, session, debug, token_filename)
   109             process_tweet(tweet, session, debug, token_filename)
       
   110             logging.info("Tweet count: %d - current rate : %d - running : %s"%(stream.count, stream.rate, int(time.time()-stream.starttime)))
   109             session.commit()
   111             session.commit()
   110     finally:
   112     finally:
   111         stream.close()
   113         stream.close()
   112         
   114         
   113 def get_options():
   115 def get_options():
   147         print repr(options)
   149         print repr(options)
   148     
   150     
   149     if options.new and os.path.exists(options.filename):
   151     if options.new and os.path.exists(options.filename):
   150         os.remove(options.filename)
   152         os.remove(options.filename)
   151     
   153     
   152     engine, metadata = models.setup_database('sqlite:///' + options.filename, echo=(options.debug))
   154     engine, metadata = models.setup_database('sqlite:///' + options.filename, echo=(options.debug>=2))
   153     Session = sessionmaker(bind=engine)
   155     Session = sessionmaker(bind=engine)
   154     session = Session()
   156     session = Session()
   155 
   157 
   156     try:
   158     try:
   157         try:
   159         try: