--- a/busui/schedule_viewer.py +++ b/busui/schedule_viewer.py @@ -88,8 +88,11 @@ def StopToTuple(stop): """Return tuple as expected by javascript function addStopMarkerFromList""" return (stop.stop_id, stop.stop_name, float(stop.stop_lat), - float(stop.stop_lon), stop.location_type) - + float(stop.stop_lon), stop.location_type, stop.stop_code) +def StopZoneToTuple(stop): + """Return tuple as expected by javascript function addStopMarkerFromList""" + return (stop.stop_id, stop.stop_name, float(stop.stop_lat), + float(stop.stop_lon), stop.location_type, stop.stop_code, stop.zone_id) class ScheduleRequestHandler(BaseHTTPServer.BaseHTTPRequestHandler): def do_GET(self): @@ -301,11 +304,11 @@ except KeyError: # if a non-existent trip is searched for, the return nothing return - time_stops = trip.GetTimeStops() + time_stops = trip.GetTimeInterpolatedStops() stops = [] times = [] - for arr,dep,stop in time_stops: - stops.append(StopToTuple(stop)) + for arr,ts,is_timingpoint in time_stops: + stops.append(StopToTuple(ts.stop)) times.append(arr) return [stops, times] @@ -366,7 +369,34 @@ query = params.get('q', None).lower() matches = [] for s in schedule.GetStopList(): - if s.stop_id.lower().find(query) != -1 or s.stop_name.lower().find(query) != -1: + if s.stop_name.lower().find(query) != -1 or s.stop_code.lower().find(query) != -1: + matches.append(StopToTuple(s)) + return matches + + def handle_json_GET_stopnamesearch(self, params): + schedule = self.server.schedule + query = params.get('q', None).lower() + matches = [] + for s in schedule.GetStopList(): + if s.stop_name.lower().find(query) != -1: + matches.append(StopToTuple(s)) + return matches + + def handle_json_GET_stopcodesearch(self, params): + schedule = self.server.schedule + query = params.get('q', None).lower() + matches = [] + for s in schedule.GetStopList(): + if s.stop_code.lower().find(query) != -1: + matches.append(StopToTuple(s)) + return matches + + def handle_json_GET_stopzonesearch(self, params): + schedule = self.server.schedule + query = params.get('q', None).lower() + matches = [] + for s in schedule.GetStopList(): + if s.zone_id != None and s.zone_id.lower().find(query) != -1: matches.append(StopToTuple(s)) return matches @@ -391,7 +421,6 @@ # Need make a tuple to find correct bisect point time_trips = time_trips[bisect.bisect_left(time_trips, (time, 0)):] time_trips = time_trips[:15] - # TODO: combine times for a route to show next 2 departure times result = [] for time, (trip, index), tp in time_trips: headsign = None @@ -411,8 +440,9 @@ if len(trip_name): trip_name += " - " trip_name += route.route_long_name - if headsign: - trip_name += " (Direction: %s)" % headsign + # comment out directions because we already have them in the long name + #if headsign: + # trip_name += " (Direction: %s)" % headsign if service_period == None or trip.service_id == service_period: result.append((time, (trip.trip_id, trip_name, trip.service_id), tp)) return result