# HG changeset patch
# User paulo
# Date 1491543723 25200
# Node ID 6a45e46f0c058a9efac9006b8a27a686e8c102f9
# Parent  302eebbf025f19f93c434232c08c63a8d21e1601
myw: use new redirect_app

diff -r 302eebbf025f -r 6a45e46f0c05 myw/.htaccess
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/myw/.htaccess	Thu Apr 06 22:42:03 2017 -0700
@@ -0,0 +1,4 @@
+Redirect permanent "/myw/desktop" "http://forecast.weather.gov/MapClick.php?lat=37.63048605200049&lon=-122.41107706299971"
+Redirect permanent "/myw/mobile" "http://mobile.weather.gov/index.php?lat=37.61961&lon=-122.36558"
+Redirect permanent "/myw/radar" "https://radar.weather.gov/lite/N0R/MUX_loop.gif"
+Redirect permanent "/myw/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"
\ No newline at end of file
diff -r 302eebbf025f -r 6a45e46f0c05 myw/index.fcgi
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/myw/index.fcgi	Thu Apr 06 22:42:03 2017 -0700
@@ -0,0 +1,8 @@
+#!/usr/bin/env python
+
+from flup.server.fcgi import WSGIServer
+
+from redirect_app import app
+
+
+WSGIServer(app).run()
diff -r 302eebbf025f -r 6a45e46f0c05 myw/index.html
--- a/myw/index.html	Fri Feb 24 00:30:54 2017 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-<html>
-<head>
-<title>myw</title>
-<link rel="stylesheet" type="text/css" href="index.css">
-</head>
-
-<body>
-<div id="desktopLink">
-  <a href="http://forecast.weather.gov/MapClick.php?lat=37.63048605200049&lon=-122.41107706299971">Desktop</a>
-</div>
-<div id="mobileLink">
-  <a href="http://mobile.weather.gov/index.php?lat=37.61961&lon=-122.36558">Mobile</a>
-</div>
-<div id="radarLink">
-  <a href="http://radar.weather.gov/lite/N0R/MUX_loop.gif">Radar</a>
-</div>
-<div id="hourlyLink">
-  <a href="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">Hourly</a>
-</div>
-</body>
-</html>
diff -r 302eebbf025f -r 6a45e46f0c05 myw/redirect_app.py
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/myw/redirect_app.py	Thu Apr 06 22:42:03 2017 -0700
@@ -0,0 +1,45 @@
+import os
+
+import html
+
+
+TITLE = "myw"
+REDIRECT_FILE = ".htaccess"
+
+
+def main(environ):
+	links = []
+	
+	with open(REDIRECT_FILE) as f:
+		for l in f:
+			l = l.lstrip()
+			if l.startswith("Redirect"):
+				ls = l.split()
+				if len(ls) == 4:
+					path = ls[2].strip('"')
+					links.append(os.path.basename(path))
+	
+	root = html.HTML("html")
+	
+	header = root.header
+	header.title(TITLE)
+	header.link(rel="stylesheet", type="text/css", href="index.css")
+	
+	body = root.body(klass="body")
+	
+	for i in links:
+		div = body.div()
+		div.a(i.capitalize(), href=i)
+	
+	return unicode(root).encode("utf-8")
+
+
+def app(environ, start_response):
+	response_body = main(environ)
+	response_headers = [
+		("Content-Type", "text/html; charset=UTF-8"),
+		("Content-Length", str(len(response_body))),
+	]
+	start_response("200 OK", response_headers)
+
+	return [response_body]
diff -r 302eebbf025f -r 6a45e46f0c05 myw/redirect_test_server.py
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/myw/redirect_test_server.py	Thu Apr 06 22:42:03 2017 -0700
@@ -0,0 +1,38 @@
+import os
+import sys
+import signal
+
+import cherrypy
+from cherrypy import wsgiserver
+
+import redirect_app
+
+
+def sighandler(signum, frame):
+	sys.stderr.write("Caught signal: %s \n" % signum)
+	server.stop()
+
+
+class FileServerRoot:
+	def default(self, *args):
+		if len(args) == 0:
+			raise cherrypy.HTTPError(404)
+
+		filepath = os.path.abspath(os.path.join(*args))
+		return cherrypy.lib.static.serve_file(filepath)
+
+	default.exposed = True
+
+
+if __name__ == "__main__":
+	fileServerApp = cherrypy.Application(FileServerRoot())
+	dispatcher = wsgiserver.WSGIPathInfoDispatcher({
+		"/index.fcgi": redirect_app.app,
+		"": fileServerApp,
+	})
+	server = wsgiserver.CherryPyWSGIServer(('0.0.0.0', 8000), dispatcher)
+
+	signal.signal(signal.SIGINT, sighandler)
+	signal.signal(signal.SIGTERM, sighandler)
+
+	server.start()