diff -r d2e19670b772 -r 65408ed066b3 buses.py --- a/buses.py Thu Oct 26 16:54:29 2017 +0300 +++ b/buses.py Thu Oct 26 18:02:27 2017 +0300 @@ -29,12 +29,12 @@ except KeyError: return False def concise_schedule(self, starting_stop = None): + if starting_stop and starting_stop in self.schedule: + schedule = copy(self.schedule) + schedule = schedule[schedule.index(starting_stop):] + else: + schedule = self.schedule if profile['regions']['use-regions']: - if starting_stop and starting_stop in self.schedule: - schedule = copy(self.schedule) - schedule = schedule[schedule.index(starting_stop):] - else: - schedule = self.schedule used_areas = set() result = [] for halt in schedule: @@ -44,7 +44,7 @@ result.append(stop.region) return result else: - return [halt.stop.name for halt in self.schedule] + return [halt.stop.name for halt in schedule] class BusRoute: def __init__(self, entry): @@ -478,15 +478,16 @@ route.description = '' route.trips = sorted(route.trips, key = lambda trip: trip.schedule and trip.schedule[0].departure_time or timedelta()) - # Fölin datassa on jotain tosi kummaa. Ilmeisesti ajovuoron viimeisen pysähdyksen saapumisaika on ihan täysin - # väärin. Arvaan että se on seuraavan lähdön aika, mutta joka tapauksessa se on väärin. - # Arvataan mikä se todellinen saapumisaika on. Se ei voi mennä kauhean paljon pahemmin vikaan kuin alkuperäinen - # väärin oleva data. - for trip in all_trips.values(): - if len(trip.schedule) >= 2: - bus_speed_coefficient = 750 # metriä minuutissa - last_leg_distance = trip.schedule[-1].traveled_distance - trip.schedule[-2].traveled_distance - trip.schedule[-1].arrival_time = trip.schedule[-2].departure_time + timedelta(minutes = last_leg_distance / bus_speed_coefficient) + if 'compatibility' in profile and profile['compatibility'].get('fix-destination-times', False): + # Fölin datassa on jotain tosi kummaa. Ilmeisesti ajovuoron viimeisen pysähdyksen saapumisaika on ihan täysin + # väärin. Arvaan että se on seuraavan lähdön aika, mutta joka tapauksessa se on väärin. + # Arvataan mikä se todellinen saapumisaika on. Se ei voi mennä kauhean paljon pahemmin vikaan kuin alkuperäinen + # väärin oleva data. + for trip in all_trips.values(): + if len(trip.schedule) >= 2: + bus_speed_coefficient = 750 # metriä minuutissa + last_leg_distance = trip.schedule[-1].traveled_distance - trip.schedule[-2].traveled_distance + trip.schedule[-1].arrival_time = trip.schedule[-2].departure_time + timedelta(minutes = last_leg_distance / bus_speed_coefficient) global trips_by_vehicle_info trips_by_vehicle_info = {}