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 flask import Flask, send_from_directory, abort, g
5 from sqlalchemy.engine import create_engine
6 from wrfeed.berichte import create_feed
9 app.config.from_envvar('WRFEED_SETTINGS')
13 """Opens a new database connection if there is none yet for the
14 current application context.
16 if not hasattr(g, 'db'):
17 g.db_engine = create_engine(app.config['DATABASE_URI'])
18 g.db = g.db_engine.connect()
22 @app.teardown_appcontext
24 """Closes the database again at the end of the request."""
31 return send_from_directory('templates', 'index.html') # actually, this is no template
34 @app.route("/berichte/alle")
37 http://127.0.0.1:5000/berichte/alle
38 http://www.winterrodeln.org/feed/berichte/alle
40 return app.response_class(create_feed(get_db(), app.config['FEEDENTRYLIMIT']), mimetype='application/atom+xml')
43 @app.route("/berichte/bahn/<bahn>")
46 http://127.0.0.1:5000/berichte/bahn/kemater_alm
47 http://www.winterrodeln.org/feed/berichte/bahn/kemater_alm
49 return app.response_class(create_feed(get_db(), app.config['FEEDENTRYLIMIT'], page_title=bahn),
50 mimetype='application/atom+xml')
53 @app.route("/berichte/bahnen/<bahnen>")
56 http://127.0.0.1:5000/berichte/bahnen/5+280+251
57 http://www.winterrodeln.org/feed/berichte/bahnen/5+280+251
59 page_ids = bahnen.split('+')
61 page_ids = [int(page_id) for page_id in page_ids]
63 abort(400) # bad request
64 return app.response_class(create_feed(get_db(), app.config['FEEDENTRYLIMIT'], page_ids=page_ids),
65 mimetype='application/atom+xml')
68 @app.route("/berichte/region/<region>")
71 http://www.winterrodeln.org/feed/berichte/region/osttirol
73 return app.response_class(create_feed(get_db(), app.config['FEEDENTRYLIMIT'], region_name=region),
74 mimetype='application/atom+xml')