瀏覽代碼

show predicted time instead of countdown in minutes;
added Departure class

> 2018-02-15 18:40:04
> 18:39:53 U6 SIEBENHIRTEN
> 18:42:53 U6 SIEBENHIRTEN

Fabian Peter Hammerle 7 年之前
父節點
當前提交
520d137e40
共有 1 個文件被更改,包括 13 次插入9 次删除
  1. 13 9
      omegalines

+ 13 - 9
omegalines

@@ -9,6 +9,11 @@ import urllib2
 import yaml
 from OmegaExpansion import oledExp
 
+class Departure:
+    def __init__(self, line, towards, predicted_time):
+        self.line = line
+        self.towards = towards
+        self.predicted_time = predicted_time
 
 def request_wiener_linien_departures(api_key, rbl):
     req = urllib2.Request(
@@ -29,12 +34,11 @@ 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']:
-            if not 'vehicle' in departure_data:
-                departure_data['vehicle'] = {
-                    'name': line_data['name'],
-                    'towards': line_data['towards'],
-                }
-            departures.append(departure_data)
+            departures.append(Departure(
+                line=departure_data['vehicle']['name'] if 'vehicle' in departure_data else line_data['name'],
+                towards=departure_data['vehicle']['towards'] if 'towards' in departure_data else line_data['towards'],
+                predicted_time=dateutil.parser.parse(departure_data['departureTime']['timeReal']),
+            ))
     return server_time, departures
 
 
@@ -60,9 +64,9 @@ def run(config_path):
             for departure_idx, departure in enumerate(departures):
                 oledExp.setCursor(1 + departure_idx, 0)
                 oledExp.write("%s %s %s" % (
-                    departure['departureTime']['countdown'],
-                    departure['vehicle']['name'],
-                    departure['vehicle']['towards'],
+                    departure.predicted_time.strftime('%H:%M:%S'),
+                    departure.line,
+                    departure.towards,
                 ))
         time.sleep(9.9)