#!/usr/bin/env python # vim: set encoding=utf-8 from gevent.pywsgi import WSGIServer from gevent.monkey import patch_all patch_all() # pylint: disable=wrong-import-position,wrong-import-order import sys import os import jinja2 from flask import Flask, request, send_from_directory APP = Flask(__name__) MYDIR = os.path.abspath( os.path.dirname(os.path.dirname('__file__'))) sys.path.append("%s/lib/" % MYDIR) import wttr_srv from globals import TEMPLATES, STATIC, LISTEN_HOST, LISTEN_PORT # pylint: enable=wrong-import-position,wrong-import-order MY_LOADER = jinja2.ChoiceLoader([ APP.jinja_loader, jinja2.FileSystemLoader(TEMPLATES), ]) APP.jinja_loader = MY_LOADER @APP.route('/files/') def send_static(path): "Send any static file located in /files/" return send_from_directory(STATIC, path) @APP.route('/favicon.ico') def send_favicon(): "Send static file favicon.ico" return send_from_directory(STATIC, 'favicon.ico') @APP.route('/malformed-response.html') def send_malformed(): "Send static file malformed-response.html" return send_from_directory(STATIC, 'malformed-response.html') @APP.route("/") @APP.route("/") def wttr(location=None): "Main function wrapper" return wttr_srv.wttr(location, request) SERVER = WSGIServer( (LISTEN_HOST, int(os.environ.get('WTTRIN_SRV_PORT', LISTEN_PORT))), APP) SERVER.serve_forever()