aboutsummaryrefslogtreecommitdiff
path: root/html_view.py
diff options
context:
space:
mode:
Diffstat (limited to 'html_view.py')
-rw-r--r--html_view.py83
1 files changed, 83 insertions, 0 deletions
diff --git a/html_view.py b/html_view.py
new file mode 100644
index 0000000..2e82066
--- /dev/null
+++ b/html_view.py
@@ -0,0 +1,83 @@
+import util
+import ptv_client
+
+def format_stop_and_route_name_li(stop_and_route):
+ stop, route = stop_and_route
+ return '<li>Stop: {}, Route: {} {} {}</li>'.format(
+ stop['stop_name'], ptv_client.get_route_type(route['route_type']),
+ route['route_number'], route['route_name'])
+
+def format_stop_and_route_name_ol(stop_and_routes):
+ return '<ol>{}</ol>'.format(''.join(
+ map(format_stop_and_route_name_li, stop_and_routes)))
+
+def format_stop_and_route_name_tr(stop_and_route):
+ stop, route = stop_and_route
+ return """
+<tr>
+ <td>
+ <a href="/?route-type={}&stop={}&route={}">{}</a>
+ </td>
+ <td>{}</td><td>{}</td><td>{}</td>
+</tr>
+""".format(
+ route['route_type'], stop['stop_id'], route['route_id'],
+ stop['stop_name'], ptv_client.get_route_type(route['route_type']),
+ route['route_number'], route['route_name'])
+
+def format_stop_and_route_name_table(stop_and_routes):
+ return """
+<table>
+ <tr>
+ <th>Stop</th>
+ <th>Route type</th>
+ <th>Route number</th>
+ <th>Route name</th>
+ </tr>
+ {}
+</table>
+""".format(''.join(map(format_stop_and_route_name_tr, stop_and_routes)))
+
+def format_departure_tr(departure, direction_names):
+ return """
+<tr>
+ <td>{}</td><td>{}</td><td>{}</td>
+</tr>
+""".format(
+ util.format_time(util.parse_time(departure['estimated_departure_utc'])),
+ util.format_time(util.parse_time(departure['scheduled_departure_utc'])),
+ direction_names[departure['direction_id']])
+
+def format_departure_table(departures, direction_names):
+ return """
+<table>
+ <tr>
+ <th>Estimated</th>
+ <th>Scheduled</th>
+ <th>Direction</th>
+ </tr>
+ {}
+</table>
+""".format(''.join(format_departure_tr(dep, direction_names)
+ for dep in departures))
+
+def style():
+ return """
+<style>
+ tr:nth-child(even) {background-color: #f2f2f2;}
+ tr:hover {background-color: coral;}
+</style>
+"""
+
+def html(body):
+ return """
+<!DOCTYPE html>
+<html>
+<head>
+ %(style)s
+</head>
+<body>
+ %(body)s
+</body>
+</html>
+""" % {'style': style(), 'body': body}