making it readable

This commit is contained in:
chrissy 2026-04-06 21:56:27 +02:00
parent bd12b740d1
commit 9dde4fd3d9
1 changed files with 26 additions and 9 deletions

27
efa.py
View File

@ -36,12 +36,14 @@ def selectStop(stops):
def getMaxLength(elem, array): def getMaxLength(elem, array):
return max(map(lambda f: len(f[elem]), array)) return max(map(lambda f: len(f[elem]), array))
def getDepartures(stopId): def getDepartures(stopId):
url = "https://webapi.vvo-online.de/dm" url = "https://webapi.vvo-online.de/dm"
myobj = {"stopid": stopId} myobj = {"stopid": stopId}
now=datetime.datetime.now()
x = requests.post(url, json=myobj) x = requests.post(url, json=myobj)
x = x.json() x = x.json()
print(f"Departures for {x['Name']}, {x['Place']}:\n ")
for Departure in x["Departures"]: for Departure in x["Departures"]:
MotType = Departure["Mot"] MotType = Departure["Mot"]
LineName = Departure["LineName"] LineName = Departure["LineName"]
@ -56,14 +58,18 @@ def getDepartures(stopId):
else: else:
RealTime = None RealTime = None
if "State" in Departure and Departure["State"] == "Delayed": if "State" in Departure and Departure["State"] == "Delayed":
delay = RealTime - ScheduledTime delay = (RealTime - ScheduledTime)
delay=delay.seconds/60
else: else:
delay = "" delay = ""
print(f"{MotType:>{getMaxLength("Mot",x["Departures"])}s} " DepartureTime =(RealTime or ScheduledTime).strftime("%H:%M")
relativeDeparture = int(((RealTime or ScheduledTime) - now).seconds/60)
print(
f"{MotType:>{getMaxLength("Mot",x["Departures"])}s} "
f"{LineName:>{getMaxLength("LineName",x['Departures'])}s} " f"{LineName:>{getMaxLength("LineName",x['Departures'])}s} "
f"{Direction:{getMaxLength("Direction",x["Departures"])}s} " f"{Direction:{getMaxLength("Direction",x["Departures"])}s} "
f"{ScheduledTime} " f"{DepartureTime} "
f"{RealTime} " f"{relativeDeparture:>3} "
f"{delay} " f"{delay} "
) )
@ -80,6 +86,17 @@ if __name__ == "__main__":
parser.add_argument("stopQuery") # positional argument parser.add_argument("stopQuery") # positional argument
args = parser.parse_args() args = parser.parse_args()
if __name__ == "__main__":
import argparse
parser = argparse.ArgumentParser(
prog="VVO EFA Haltestellenauskunft", description="Miau!", epilog="=^.^="
)
parser.add_argument("stopQuery") # positional argument
args = parser.parse_args()
stop = searchStop(args.stopQuery) stop = searchStop(args.stopQuery)
if len(stop) > 1: if len(stop) > 1: