def before_request(): try: db.connect() g.conn = collections.connect() except RqlDriverError: abort(503, "No database connection could be established.")
def main(): args = parse_arguments() # When using twitter stream you must authorize. auth = OAuth(args.token, args.token_secret, args.consumer_key, args.consumer_secret) # These arguments are optional: stream_args = dict(timeout=args.timeout, block=not args.no_block, heartbeat_timeout=args.heartbeat_timeout) query_args = dict() if args.track_keywords: query_args['track'] = args.track_keywords if args.user_stream: stream = TwitterStream(auth=auth, domain='userstream.twitter.com', **stream_args) tweet_iter = stream.user(**query_args) elif args.site_stream: stream = TwitterStream(auth=auth, domain='sitestream.twitter.com', **stream_args) tweet_iter = stream.site(**query_args) else: stream = TwitterStream(auth=auth, **stream_args) if args.track_keywords: tweet_iter = stream.statuses.filter(**query_args) else: tweet_iter = stream.statuses.sample() # Connect to RethinkDB try: db.connect() except RqlDriverError: log.error('Couldn\'t connect to database.') # Iterate over the sample stream. for tweet in tweet_iter: # You must test that your tweet has text. It might be a delete or data message. if tweet is None: log.error('None') elif tweet is Timeout: log.error('Timeout') elif tweet is HeartbeatTimeout: log.error('Heartbeat Timeout') elif tweet is Hangup: log.error('Hangup') elif tweet.get('text'): tweet[ 'stream_id'] = '1234567890' # TODO: add that stream_id gets passed to open_stream.py db.insert(DATABASE, TWEETS_TABLE, tweet) printNicely(tweet['text']) else: log.error('Some data ' + str(tweet))
def main(): args = parse_arguments() # When using twitter stream you must authorize. auth = OAuth(args.token, args.token_secret, args.consumer_key, args.consumer_secret) # These arguments are optional: stream_args = dict( timeout=args.timeout, block=not args.no_block, heartbeat_timeout=args.heartbeat_timeout) query_args = dict() if args.track_keywords: query_args['track'] = args.track_keywords if args.user_stream: stream = TwitterStream(auth=auth, domain='userstream.twitter.com', **stream_args) tweet_iter = stream.user(**query_args) elif args.site_stream: stream = TwitterStream(auth=auth, domain='sitestream.twitter.com', **stream_args) tweet_iter = stream.site(**query_args) else: stream = TwitterStream(auth=auth, **stream_args) if args.track_keywords: tweet_iter = stream.statuses.filter(**query_args) else: tweet_iter = stream.statuses.sample() # Connect to RethinkDB try: db.connect() except RqlDriverError: log.error('Couldn\'t connect to database.') # Iterate over the sample stream. for tweet in tweet_iter: # You must test that your tweet has text. It might be a delete or data message. if tweet is None: log.error('None') elif tweet is Timeout: log.error('Timeout') elif tweet is HeartbeatTimeout: log.error('Heartbeat Timeout') elif tweet is Hangup: log.error('Hangup') elif tweet.get('text'): tweet['stream_id'] = '1234567890' # TODO: add that stream_id gets passed to open_stream.py db.insert(DATABASE, TWEETS_TABLE, tweet) printNicely(tweet['text']) else: log.error('Some data ' + str(tweet))
def before_request(): try: g.conn = db.connect() except RqlDriverError: abort(503, "No database connection could be established.")