diff options
Diffstat (limited to 'server.py')
-rw-r--r-- | server.py | 28 |
1 files changed, 15 insertions, 13 deletions
@@ -1,13 +1,14 @@ -#!/usr/bin/env python -import ptv_client -import html_view from wsgiref.simple_server import make_server from urllib.parse import parse_qs +import ptv_client +import html_view import util + def is_dep_query(params): - return all(key in params for key in - ('route-type', 'stop', 'route', 'stop-name', 'route-number')) + return all(key in params + for key in ('route-type', 'stop', 'route', 'stop-name')) + def application(environ, start_response): params = parse_qs(environ['QUERY_STRING']) @@ -18,25 +19,26 @@ def application(environ, start_response): title = f'Search results for {query}' response_html = html_view.html(title, response_body) elif is_dep_query(params): - departures = ptv_client.get_departures( - str(params['route-type'][0]), str(params['stop'][0]), str(params['route'][0])) + departures = ptv_client.get_departures(str(params['route-type'][0]), + str(params['stop'][0]), + str(params['route'][0])) filtered_deps = util.filter_departures(departures['departures']) - direction_names = ptv_client.get_direction_names(str(params['route'][0])) + direction_names = ptv_client.get_direction_names( + str(params['route'][0])) response_body = html_view.format_departure_table( filtered_deps, direction_names) title = html_view.format_departure_title( str(params['stop-name'][0]), int(params['route-type'][0]), - str(params['route-number'][0])) + str(params.get('route-number', [''])[0])) response_html = html_view.html(title, response_body) else: response_html = html_view.landing_page() - response_headers = [ - ('Content-Type', 'text/html'), - ('Content-Length', str(len(response_html))) - ] + response_headers = [('Content-Type', 'text/html'), + ('Content-Length', str(len(response_html)))] start_response('200 OK', response_headers) return [response_html.encode()] + httpd = make_server('localhost', 8052, application) httpd.serve_forever() |