server/lib/iri_tweet/export_tweet_db.py
author veltr
Sat, 25 Feb 2012 00:45:20 +0100
changeset 45 49c818cf7c3a
parent 1 e0dbcf98c13e
permissions -rw-r--r--
z-index
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
e0dbcf98c13e Added server code
veltr
parents:
diff changeset
     1
from models import setup_database
e0dbcf98c13e Added server code
veltr
parents:
diff changeset
     2
from optparse import OptionParser #@UnresolvedImport
e0dbcf98c13e Added server code
veltr
parents:
diff changeset
     3
from sqlalchemy.orm import sessionmaker
e0dbcf98c13e Added server code
veltr
parents:
diff changeset
     4
from utils import set_logging_options, set_logging, TwitterProcessor, logger
e0dbcf98c13e Added server code
veltr
parents:
diff changeset
     5
import sqlite3 #@UnresolvedImport
e0dbcf98c13e Added server code
veltr
parents:
diff changeset
     6
e0dbcf98c13e Added server code
veltr
parents:
diff changeset
     7
e0dbcf98c13e Added server code
veltr
parents:
diff changeset
     8
#    'entities': "tweet_entity",     
e0dbcf98c13e Added server code
veltr
parents:
diff changeset
     9
#    'user': "tweet_user"
e0dbcf98c13e Added server code
veltr
parents:
diff changeset
    10
e0dbcf98c13e Added server code
veltr
parents:
diff changeset
    11
def get_option():
e0dbcf98c13e Added server code
veltr
parents:
diff changeset
    12
    
e0dbcf98c13e Added server code
veltr
parents:
diff changeset
    13
    parser = OptionParser()
e0dbcf98c13e Added server code
veltr
parents:
diff changeset
    14
e0dbcf98c13e Added server code
veltr
parents:
diff changeset
    15
    parser.add_option("-t", dest="token_filename", metavar="TOKEN_FILENAME", default=".oauth_token",
e0dbcf98c13e Added server code
veltr
parents:
diff changeset
    16
                      help="Token file name")
e0dbcf98c13e Added server code
veltr
parents:
diff changeset
    17
e0dbcf98c13e Added server code
veltr
parents:
diff changeset
    18
    set_logging_options(parser)
e0dbcf98c13e Added server code
veltr
parents:
diff changeset
    19
e0dbcf98c13e Added server code
veltr
parents:
diff changeset
    20
    return parser.parse_args()
e0dbcf98c13e Added server code
veltr
parents:
diff changeset
    21
e0dbcf98c13e Added server code
veltr
parents:
diff changeset
    22
if __name__ == "__main__":
e0dbcf98c13e Added server code
veltr
parents:
diff changeset
    23
    
e0dbcf98c13e Added server code
veltr
parents:
diff changeset
    24
    (options, args) = get_option()
e0dbcf98c13e Added server code
veltr
parents:
diff changeset
    25
        
e0dbcf98c13e Added server code
veltr
parents:
diff changeset
    26
    set_logging(options)
e0dbcf98c13e Added server code
veltr
parents:
diff changeset
    27
    
e0dbcf98c13e Added server code
veltr
parents:
diff changeset
    28
    with sqlite3.connect(args[0]) as conn_in:
e0dbcf98c13e Added server code
veltr
parents:
diff changeset
    29
        engine, metadata, Session = setup_database('sqlite:///'+args[1], echo=((options.verbose-options.quiet)>0))
e0dbcf98c13e Added server code
veltr
parents:
diff changeset
    30
        session = Session()
e0dbcf98c13e Added server code
veltr
parents:
diff changeset
    31
        try:
e0dbcf98c13e Added server code
veltr
parents:
diff changeset
    32
            curs_in = conn_in.cursor()
e0dbcf98c13e Added server code
veltr
parents:
diff changeset
    33
            fields_mapping = {}
e0dbcf98c13e Added server code
veltr
parents:
diff changeset
    34
            for i,res in enumerate(curs_in.execute("select json from tweet_tweet;")):
e0dbcf98c13e Added server code
veltr
parents:
diff changeset
    35
                logger.debug("main loop %d : %s" % (i, res[0])) #@UndefinedVariable
e0dbcf98c13e Added server code
veltr
parents:
diff changeset
    36
                processor = TwitterProcessor(eval(res[0]), res[0], None, session, options.token_filename)
e0dbcf98c13e Added server code
veltr
parents:
diff changeset
    37
                processor.process()
e0dbcf98c13e Added server code
veltr
parents:
diff changeset
    38
                session.commit()
e0dbcf98c13e Added server code
veltr
parents:
diff changeset
    39
            logger.debug("main : %d tweet processed" % (i+1)) #@UndefinedVariable
e0dbcf98c13e Added server code
veltr
parents:
diff changeset
    40
        except Exception, e:
e0dbcf98c13e Added server code
veltr
parents:
diff changeset
    41
            session.rollback()
e0dbcf98c13e Added server code
veltr
parents:
diff changeset
    42
            raise e
e0dbcf98c13e Added server code
veltr
parents:
diff changeset
    43
        finally:
e0dbcf98c13e Added server code
veltr
parents:
diff changeset
    44
            session.close()
e0dbcf98c13e Added server code
veltr
parents:
diff changeset
    45
            
e0dbcf98c13e Added server code
veltr
parents:
diff changeset
    46
    
e0dbcf98c13e Added server code
veltr
parents:
diff changeset
    47