# http://flask.pocoo.org/
-from flask import Flask
+# FLASK_APP=wrfeed FLASK_DEBUG=1 WRFEED_SETTINGS=development.cfg python3 -m flask run -p 5002
+# FLASK_APP=wrfeed WRFEED_SETTINGS=production.cfg python3 -m flask run
+from flask import Flask, send_from_directory, abort
+from flask_sqlalchemy import SQLAlchemy
+from wrfeed.berichte import create_feed
+
app = Flask(__name__)
+app.config.from_envvar('WRFEED_SETTINGS')
+db = SQLAlchemy(app)
+db.reflect()
+
@app.route("/")
def hello():
- return "Hello World!"
\ No newline at end of file
+ return send_from_directory('templates', 'index.html') # actually, this is no template
+
+
+@app.route("/berichte/alle")
+def alle():
+ """Handles URLs like
+ http://127.0.0.1:5000/berichte/alle
+ http://www.winterrodeln.org/feed/berichte/alle
+ """
+ return app.response_class(create_feed(db, app.config['FEEDENTRYLIMIT']), mimetype='application/atom+xml')
+
+
+@app.route("/berichte/bahn/<bahn>")
+def bahn(bahn):
+ """Handles URLs like
+ http://127.0.0.1:5000/berichte/bahn/kemater_alm
+ http://www.winterrodeln.org/feed/berichte/bahn/kemater_alm
+ """
+ return app.response_class(create_feed(db, app.config['FEEDENTRYLIMIT'], page_title=bahn),
+ mimetype='application/atom+xml')
+
+
+@app.route("/berichte/bahnen/<bahnen>")
+def bahnen(bahnen):
+ """Handles URLs like
+ http://127.0.0.1:5000/berichte/bahnen/5+280+251
+ http://www.winterrodeln.org/feed/berichte/bahnen/5+280+251
+ """
+ page_ids = bahnen.split('+')
+ try:
+ page_ids = [int(page_id) for page_id in page_ids]
+ except ValueError:
+ abort(400) # bad request
+ return app.response_class(create_feed(db, app.config['FEEDENTRYLIMIT'], page_ids=page_ids),
+ mimetype='application/atom+xml')
+
+
+@app.route("/berichte/region/<region>")
+def region(region):
+ """Handles URLs like
+ http://www.winterrodeln.org/feed/berichte/region/osttirol
+ """
+ return app.response_class(create_feed(db, app.config['FEEDENTRYLIMIT'], region_name=region),
+ mimetype='application/atom+xml')