VAG-ZZA-Realtime/run.py

67 lines
1.9 KiB
Python

import argparse
import json
from pprint import pprint
from vag_api import VagApi
from vag_zza import VagZza
from station_map import *
def display_train(zza, train):
line = train['Linienname']
via = ""
dest = zza.get_closest_destination(train['Richtungstext'])
if line == "U1":
if dest not in ("Langwasser-Süd", "Fürth Hardhöhe"):
line = "U11"
# Via für Standort Maximilianstraße
if dest in ("Fürth Hardhöhe", "Fürth Klinikum", "Fürth / Stadthalle"):
via = "Stadtgrenze - Fürth / Hauptbahnhof"
elif dest in ("Fürth / Hauptbahnhof", "Jakobinenstraße"):
via = "Stadtgrenze"
elif dest in ("Weißer Turm", "Hauptbahnhof"):
via = "Plärrer"
elif dest in ("Aufseßplatz", "Maffeiplatz", "Frankenstraße", "Hasenbuck", "Bauernfeindstraße", "Messe"):
via = "Plärrer - Hauptbahnhof"
elif dest in ("Scharfreiterring", "Langwasser-Süd"):
via = "Plärrer - Hauptbahnhof - Messe"
if dest == "":
line = "Sonderzug"
dest = "Bitte achten Sie auf die Zugbeschilderung"
zza.set_line(line)
zza.set_via(via)
zza.set_destination(dest)
zza.update()
def main():
parser = argparse.ArgumentParser()
parser.add_argument("-p", "--port", type=str, required=True, help="Serial port for display")
parser.add_argument("-s", "--station", type=str, required=True, help="Station name to display departures of")
args = parser.parse_args()
api = VagApi()
api.load_station_data("stations.json")
try:
station_id = int(args.station)
except ValueError:
station_id = api.get_station_info(args.station)[0]['VGNKennung']
departures = api.get_departures(station_id, products=["Ubahn"])
train = departures[0]
zza = VagZza(args.port)
pprint(train)
display_train(zza, train)
if __name__ == "__main__":
main()