I have a script written in Python that lets me consume tweets from Terminal into a locally hosted mongodb database. To improve uptime, I would like to host this script remotely on Heroku and to shoot the consumed tweets into a database hosted with MongoHQ. As I would like to do this without using Django, I use the Flask framework to deploy the app to Heroku (described here: https://devcenter.heroku.com/articles/python).
When I run a simple "hello world" app using this setup, everything is fine. However, when I try to run my tweet consuming app, it immediately crashes. How can I change my app to that it will work with the Flask/Heroku/MongoHQ setup? The source code is:
import json
import pymongo
import tweepy
consumer_key = ""
consumer_secret = ""
access_key = ""
access_secret = ""
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_key, access_secret)
api = tweepy.API(auth)
class CustomStreamListener(tweepy.StreamListener):
def __init__(self, api):
self.api = api
super(tweepy.StreamListener, self).__init__()
self.db = pymongo.MongoClient().test
def on_data(self, tweet):
self.db.tweets.insert(json.loads(tweet))
def on_error(self, status_code):
return True # Don't kill the stream
def on_timeout(self):
return True # Don't kill the stream
sapi = tweepy.streaming.Stream(auth, CustomStreamListener(api))
sapi.filter(track=['rooney'])
I am completely new to programming so I imagine the solution to this problem might well be quite straight forward. However, I am stuck and could really use some help to progress.