--- a/script/lib/iri_tweet/tweet_twitter_user.py Tue Sep 20 16:55:16 2011 +0200
+++ b/script/lib/iri_tweet/tweet_twitter_user.py Thu Sep 22 12:37:53 2011 +0200
@@ -3,14 +3,12 @@
set_logging, parse_date, get_logger)
from optparse import OptionParser #@UnresolvedImport
from sqlalchemy import BigInteger
-from sqlalchemy.orm import sessionmaker
-from sqlalchemy.schema import MetaData, Table, Column
+from sqlalchemy.schema import Table, Column
from sqlalchemy.sql import and_
import datetime
+import re
import sys
-import time
import twitter
-import re
APPLICATION_NAME = "Tweet recorder user"
CONSUMER_KEY = "Vdr5ZcsjI1G3esTPI8yDg"
@@ -22,7 +20,7 @@
parser.add_option("-d", "--database", dest="database",
help="Input database", metavar="DATABASE")
parser.add_option("-s", "--start-date", dest="start_date",
- help="start date", metavar="START_DATE")
+ help="start date", metavar="START_DATE", default=None)
parser.add_option("-e", "--end-date", dest="end_date",
help="end date", metavar="END_DATE")
parser.add_option("-H", "--hashtag", dest="hashtag",
@@ -57,37 +55,37 @@
get_logger().debug("OPTIONS : " + repr(options)) #@UndefinedVariable
if not options.message or len(options.message) == 0:
+ get_logger().warning("No message exiting")
sys.exit()
conn_str = options.database.strip()
if not re.match("^\w+://.+", conn_str):
conn_str = 'sqlite:///' + conn_str
- engine, metadata = setup_database(conn_str, echo=((options.verbose-options.quiet)>0), create_all = False)
+ engine, metadata, Session = setup_database(conn_str, echo=((options.verbose-options.quiet)>0), create_all = False)
- Session = sessionmaker()
- conn = engine.connect()
+ conn = None
try :
- session = Session(bind=conn, autoflush=True, autocommit=True)
+ conn = engine.connect()
+ session = None
try:
- metadata = MetaData(bind=conn)
+ session = Session(bind=conn, autoflush=True, autocommit=True)
tweet_exclude_table = Table("tweet_exclude", metadata, Column('id', BigInteger, primary_key=True), prefixes=['TEMPORARY'])
- metadata.create_all()
+ metadata.create_all(bind=conn,tables=[tweet_exclude_table])
start_date_str = options.start_date
end_date_str = options.end_date
duration = options.duration
hashtags = options.hashtag
-
- start_date = parse_date(start_date_str)
- ts = time.mktime(start_date.timetuple())
-
+ start_date = None
+ if start_date_str:
+ start_date = parse_date(start_date_str)
+
+ end_date = None
if end_date_str:
end_date = parse_date(end_date_str)
- te = time.mktime(end_date.timetuple())
- else:
- te = ts + duration
+ elif start_date and duration:
end_date = start_date + datetime.timedelta(seconds=duration)
base_message = options.message.decode(sys.getfilesystemencoding())
@@ -119,8 +117,10 @@
session.add(user_message)
session.flush()
finally:
- # if message created and simulate, do not
- session.close()
+ # if message created and simulate, do not
+ if session:
+ session.close()
finally:
- conn.close()
+ if conn:
+ conn.close()