paulo@112: import collections paulo@112: paulo@112: import flask paulo@112: import markupsafe paulo@112: paulo@112: from html3.html3 import HTML paulo@112: paulo@112: paulo@112: app = flask.Flask(__name__) paulo@112: paulo@112: paulo@112: REDIRECTS = collections.OrderedDict({ paulo@112: "desktop": "http://forecast.weather.gov/MapClick.php?lat=37.63048605200049&lon=-122.41107706299971", paulo@112: "mobile": "http://mobile.weather.gov/index.php?lat=37.61961&lon=-122.36558", paulo@112: "radar": "https://radar.weather.gov/lite/N0R/MUX_loop.gif", paulo@112: "hourly": "http://forecast.weather.gov/meteograms/Plotter.php?lat=37.6305&lon=-122.4111&wfo=MTR&zcode=CAZ508&gset=18&gdiff=3&unit=0&tinfo=PY8&ahour=0&pcmd=11011111111110000000000000000000000000000000000000000000000&lg=en&indu=1!1!1!&dd=&bw=&hrspan=48&pqpfhr=6&psnwhr=6", paulo@112: "goes": "https://www.star.nesdis.noaa.gov/GOES/sector.php?sat=G17§or=psw", paulo@112: }) paulo@112: paulo@112: paulo@112: @app.route("/") paulo@112: def index(): paulo@112: root = HTML("html") paulo@112: paulo@112: header = root.head paulo@112: header.title("myw") paulo@112: header.link(rel="stylesheet", type="text/css", paulo@112: href=flask.url_for("static", filename="index.css")) paulo@112: paulo@112: body = root.body(klass="body") paulo@112: paulo@112: for i in REDIRECTS: paulo@112: div = body.div() paulo@112: div.a(i.capitalize(), href=flask.url_for("show_target", target=i)) paulo@112: paulo@112: return str(root).encode("utf-8") paulo@112: paulo@112: paulo@112: @app.route("/") paulo@112: def show_target(target): paulo@112: safe_target = markupsafe.escape(target) paulo@112: if safe_target in REDIRECTS: paulo@112: return flask.redirect(REDIRECTS[safe_target], code=301) paulo@112: else: paulo@112: flask.abort(404)