Преглед изворни кода

ignore departures without 'timeReal' attr

Traceback (most recent call last):
  File "./omegalines", line 116, in <module>
    sys.exit(main(sys.argv[1:]))
  File "./omegalines", line 111, in main
    run(**vars(args))
  File "./omegalines", line 80, in run
    rbl=4648,
  File "./omegalines", line 54, in request_wiener_linien_departures
    departure_data['departureTime']['timeReal'],
KeyError: 'timeReal'
Fabian Peter Hammerle пре 7 година
родитељ
комит
8fba8330ea
1 измењених фајлова са 15 додато и 10 уклоњено
  1. 15 10
      omegalines

+ 15 - 10
omegalines

@@ -48,16 +48,21 @@ def request_wiener_linien_departures(api_key, rbl):
     for line_data in monitors_data[0]['lines']:
         assert 1 == len(line_data['departures'])
         for departure_data in line_data['departures']['departure']:
-            predicted_time_server = dateutil.parser.parse(
-                departure_data['departureTime']['timeReal'],
-            )
-            departures.append(Departure(
-                line=departure_data['vehicle']['name']
-                    if 'vehicle' in departure_data else line_data['name'],
-                towards=departure_data['vehicle']['towards']
-                    if 'vehicle' in departure_data else line_data['towards'],
-                predicted_time=predicted_time_server - server_time_delta,
-            ))
+            try:
+                predicted_time_server = dateutil.parser.parse(
+                    departure_data['departureTime']['timeReal'],
+                )
+            except KeyError as e:
+                print(e)
+                predicted_time_server = None
+            if predicted_time_server:
+                departures.append(Departure(
+                    line=departure_data['vehicle']['name']
+                        if 'vehicle' in departure_data else line_data['name'],
+                    towards=departure_data['vehicle']['towards']
+                        if 'vehicle' in departure_data else line_data['towards'],
+                    predicted_time=predicted_time_server - server_time_delta,
+                ))
     return departures