diff options
Diffstat (limited to 'server.py')
-rw-r--r-- | server.py | 26 |
1 files changed, 18 insertions, 8 deletions
@@ -5,22 +5,32 @@ from wsgiref.simple_server import make_server from urllib.parse import parse_qs import util +def is_dep_query(params): + return all(key in params for key in + ('route-type', 'stop', 'route', 'stop-name', 'route-number')) + def application(environ, start_response): - d = parse_qs(environ['QUERY_STRING']) - if 'q' in d: - query = str(d.get('q', [''])[0]) + params = parse_qs(environ['QUERY_STRING']) + if 'q' in params: + query = str(params.get('q', [''])[0]) response_body = html_view.format_stop_and_route_name_table( list(ptv_client.get_stop_and_routes(ptv_client.search(query)))) - else: - print(d) + 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(d['route-type'][0]), str(d['stop'][0]), str(d['route'][0])) + 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(d['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])) + response_html = html_view.html(title, response_body) + else: + response_html = html_view.landing_page() - response_html = html_view.html(response_body) response_headers = [ ('Content-Type', 'text/html'), ('Content-Length', str(len(response_html))) |