script/lib/iri_tweet/export_tweet_db.py
changeset 529 99215db3da25
parent 528 7fb5a7b0d35c
child 530 8a3aaff5bc15
equal deleted inserted replaced
528:7fb5a7b0d35c 529:99215db3da25
     1 from models import setup_database
       
     2 from optparse import OptionParser #@UnresolvedImport
       
     3 from sqlalchemy.orm import sessionmaker
       
     4 from utils import set_logging_options, set_logging, TwitterProcessor, logger
       
     5 import sqlite3 #@UnresolvedImport
       
     6 
       
     7 
       
     8 #    'entities': "tweet_entity",     
       
     9 #    'user': "tweet_user"
       
    10 
       
    11 def get_option():
       
    12     
       
    13     parser = OptionParser()
       
    14 
       
    15     parser.add_option("-t", dest="token_filename", metavar="TOKEN_FILENAME", default=".oauth_token",
       
    16                       help="Token file name")
       
    17 
       
    18     set_logging_options(parser)
       
    19 
       
    20     return parser.parse_args()
       
    21 
       
    22 if __name__ == "__main__":
       
    23     
       
    24     (options, args) = get_option()
       
    25         
       
    26     set_logging(options)
       
    27     
       
    28     with sqlite3.connect(args[0]) as conn_in:
       
    29         engine, metadata, Session = setup_database('sqlite:///'+args[1], echo=((options.verbose-options.quiet)>0))
       
    30         session = Session()
       
    31         try:
       
    32             curs_in = conn_in.cursor()
       
    33             fields_mapping = {}
       
    34             for i,res in enumerate(curs_in.execute("select json from tweet_tweet;")):
       
    35                 logger.debug("main loop %d : %s" % (i, res[0])) #@UndefinedVariable
       
    36                 processor = TwitterProcessor(eval(res[0]), res[0], None, session, options.token_filename)
       
    37                 processor.process()
       
    38                 session.commit()
       
    39             logger.debug("main : %d tweet processed" % (i+1)) #@UndefinedVariable
       
    40         except Exception, e:
       
    41             session.rollback()
       
    42             raise e
       
    43         finally:
       
    44             session.close()
       
    45             
       
    46     
       
    47