# http://flask.pocoo.org/ # 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 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/") 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/") 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/") 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')