buses.py

changeset 72
65408ed066b3
parent 71
d2e19670b772
child 75
4f8a67d5d79e
--- 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 = {}

mercurial