1 # http://flask.pocoo.org/
2 # FLASK_APP=wrfeed FLASK_DEBUG=1 WRFEED_SETTINGS=development.cfg python3 -m flask run -p 5002
3 # FLASK_APP=wrfeed WRFEED_SETTINGS=production.cfg python3 -m flask run
4 from sqlalchemy.engine import create_engine
5 from flask import Flask, send_from_directory, abort, g, jsonify
6 from wrfeed.controllers.berichte import create_feed
10 app.config.from_envvar('WRFEED_SETTINGS')
14 """Opens a new database connection if there is none yet for the
15 current application context.
17 if not hasattr(g, 'db'):
18 g.db_engine = create_engine(app.config['DATABASE_URI'])
19 g.db = g.db_engine.connect()
23 @app.teardown_appcontext
25 """Closes the database again at the end of the request."""
32 return send_from_directory('templates', 'index.html') # actually, this is no template
35 @app.route("/berichte/alle")
38 http://127.0.0.1:5000/berichte/alle
39 http://www.winterrodeln.org/feed/berichte/alle
41 return app.response_class(create_feed(get_db(), app.config['FEEDENTRYLIMIT']), mimetype='application/atom+xml')
44 @app.route("/berichte/bahn/<bahn>")
47 http://127.0.0.1:5000/berichte/bahn/kemater_alm
48 http://www.winterrodeln.org/feed/berichte/bahn/kemater_alm
50 return app.response_class(create_feed(get_db(), app.config['FEEDENTRYLIMIT'], page_title=bahn),
51 mimetype='application/atom+xml')
54 @app.route("/berichte/bahnen/<bahnen>")
57 http://127.0.0.1:5000/berichte/bahnen/5+280+251
58 http://www.winterrodeln.org/feed/berichte/bahnen/5+280+251
60 page_ids = bahnen.split('+')
62 page_ids = [int(page_id) for page_id in page_ids]
64 abort(400) # bad request
65 return app.response_class(create_feed(get_db(), app.config['FEEDENTRYLIMIT'], page_ids=page_ids),
66 mimetype='application/atom+xml')
69 @app.route("/berichte/region/<region>")
72 http://www.winterrodeln.org/feed/berichte/region/osttirol
74 return app.response_class(create_feed(get_db(), app.config['FEEDENTRYLIMIT'], region_name=region),
75 mimetype='application/atom+xml')