ice-status.py: more improvements

This commit is contained in:
Franzi 2021-10-10 19:57:23 +02:00
parent e920bf8281
commit 24c0b05cf4
Signed by untrusted user: kunsi
GPG key ID: 12E3D2136B818350

View file

@ -7,13 +7,17 @@ from sys import exit
# bundlewrap.utils.text.format_duration, but trimmed down # bundlewrap.utils.text.format_duration, but trimmed down
def format_time(seconds): def format_time(seconds, with_seconds=True):
components = [] components = []
if seconds >= 3600:
hours = int(seconds / 3600)
seconds -= hours * 3600
components.append('{}h'.format(hours))
if seconds >= 60: if seconds >= 60:
minutes = int(seconds / 60) minutes = int(seconds / 60)
seconds -= minutes * 60 seconds -= minutes * 60
components.append('{}m'.format(minutes)) components.append('{}m'.format(minutes))
if seconds > 0 or not components: if (seconds > 0 and with_seconds) or not components:
components.append('{}s'.format(seconds)) components.append('{}s'.format(seconds))
return " ".join(components) return " ".join(components)
@ -27,6 +31,8 @@ try:
): ):
exit(0) exit(0)
now = datetime.now()
trip_info_req = get('https://portal.imice.de/api1/rs/tripInfo/trip') trip_info_req = get('https://portal.imice.de/api1/rs/tripInfo/trip')
trip_info_req.raise_for_status() trip_info_req.raise_for_status()
trip_info = trip_info_req.json()['trip'] trip_info = trip_info_req.json()['trip']
@ -39,21 +45,25 @@ try:
for stop in trip_info['stops']: for stop in trip_info['stops']:
if stop['station']['evaNr'] == next_stop_id: if stop['station']['evaNr'] == next_stop_id:
if stop['timetable']['departureDelay']: if stop['timetable']['departureDelay']:
delay = ' ({})'.format(stop['timetable']['departureDelay']) delay = ' | <span color="#FF0000">{}</span>'.format(stop['timetable']['departureDelay'])
else: else:
delay = '' delay = ''
next_stop = '{} [{}] {}{}'.format( arrival = datetime.fromtimestamp(stop['timetable']['actualArrivalTime']/1000)
arrival_in = arrival - now
next_stop = '{} <span color="#999999">[{}]</span> {} ({}{})'.format(
stop['station']['name'], stop['station']['name'],
stop['track']['actual'], stop['track']['actual'],
datetime.fromtimestamp(stop['timetable']['actualArrivalTime']/1000).strftime('%H:%M'), arrival.strftime('%H:%M'),
format_time(arrival_in.total_seconds(), False),
delay delay
) )
break break
else: else:
next_stop = 'Endstation, bitte Aussteigen' next_stop = 'Endstation, bitte Aussteigen'
print('{}km/h > {} (Net: {} > [{}] {})'.format( print('<span color="#999999">{}km/h</span> > {} <span color="#999999">(Net: {} > [{}] {})</span>'.format(
ice_status['speed'], ice_status['speed'],
next_stop, next_stop,
ice_status['connectivity']['currentState'], ice_status['connectivity']['currentState'],