diff --git a/tests/flask_stop.py b/tests/flask_stop.py new file mode 100644 index 0000000..1ed61ae --- /dev/null +++ b/tests/flask_stop.py @@ -0,0 +1,29 @@ +import time +from multiprocessing import Process +from flask import Flask + +app = Flask(__name__) + + +@app.route('/') +def index(): + return "Hi there!!!" + + +def run(): + app.run() + +if __name__ == '__main__': + app.debug = True + print "starting process" + server = Process(target=run) + server.start() + + print "sleeping" + time.sleep(5) + + print "ending process" + server.terminate() + server.join() + + print "bye..." diff --git a/twiderboard/flask_app.py b/twiderboard/flask_app.py index ef09830..e6073ed 100644 --- a/twiderboard/flask_app.py +++ b/twiderboard/flask_app.py @@ -10,6 +10,12 @@ from datamodel import TrendyHashtag from datamodel import Tweet from datamodel import Member +from streamer import HashtagLogger + + +import signal +import sys + def connect(): """ @@ -58,5 +64,24 @@ def add_hashtag(): def index(): return render_template('statistics.html') + +class Twiderboard(): + def __init__(self): + # registering the signal to stop command line + signal.signal(signal.SIGINT, self.stop_handler) + + print "Starting streamer" + self.h = HashtagLogger(data.engine_url, oauth=data.oauth) + self.h.start() + + app.run() + + def stop_handler(self, signal, frame): + print "Stopping Streamer" + self.h.stop() + print "Stopping Command Line" + sys.exit(0) + + if __name__ == '__main__': - app.run() + Twiderboard() diff --git a/twiderboard/twiderboard.py b/twiderboard/twiderboard.py new file mode 100644 index 0000000..91abced --- /dev/null +++ b/twiderboard/twiderboard.py @@ -0,0 +1,10 @@ +""" +Top level application that will start the streamer and the API. +""" + +from flask_app import app + +class Twiderboard(): + def __init__(self): + app.run() + print "coucou"