forked from kunsi/dotfiles
60 lines
1.8 KiB
Python
60 lines
1.8 KiB
Python
|
#!/usr/bin/env python3
|
||
|
|
||
|
from datetime import datetime
|
||
|
from requests import get
|
||
|
from subprocess import check_output
|
||
|
from sys import exit
|
||
|
|
||
|
|
||
|
# bundlewrap.utils.text.format_duration, but trimmed down
|
||
|
def format_time(seconds):
|
||
|
components = []
|
||
|
if seconds >= 60:
|
||
|
minutes = int(seconds / 60)
|
||
|
seconds -= minutes * 60
|
||
|
components.append('{}m'.format(minutes))
|
||
|
if seconds > 0 or not components:
|
||
|
components.append('{}s'.format(seconds))
|
||
|
return " ".join(components)
|
||
|
|
||
|
|
||
|
try:
|
||
|
wifi_ssid = check_output("iw dev wlp4s0 link | awk '/SSID/ {print $2}'", shell=True).decode().strip().lower()
|
||
|
|
||
|
if wifi_ssid not in (
|
||
|
'wifi@db',
|
||
|
'wifionice'
|
||
|
):
|
||
|
exit(0)
|
||
|
|
||
|
trip_info_req = get('https://portal.imice.de/api1/rs/tripInfo/trip')
|
||
|
trip_info_req.raise_for_status()
|
||
|
trip_info = trip_info_req.json()['trip']
|
||
|
|
||
|
ice_status_req = get('https://portal.imice.de/api1/rs/status')
|
||
|
ice_status_req.raise_for_status()
|
||
|
ice_status = ice_status_req.json()
|
||
|
|
||
|
next_stop_id = trip_info['stopInfo']['actualNext']
|
||
|
for stop in trip_info['stops']:
|
||
|
if stop['station']['evaNr'] == next_stop_id:
|
||
|
next_stop = '{} {}{}'.format(
|
||
|
stop['station']['name'],
|
||
|
datetime.fromtimestamp(stop['timetable']['actualArrivalTime']/1000).strftime('%H:%M'),
|
||
|
stop['timetable']['departureDelay'] if stop['timetable']['departureDelay'] else '',
|
||
|
)
|
||
|
break
|
||
|
else:
|
||
|
next_stop = 'Endstation, bitte Aussteigen'
|
||
|
|
||
|
print('{}km/h > {} (Net: {} > [{}] {})'.format(
|
||
|
ice_status['speed'],
|
||
|
next_stop,
|
||
|
ice_status['connectivity']['currentState'],
|
||
|
format_time(ice_status['connectivity']['remainingTimeSeconds']),
|
||
|
ice_status['connectivity']['nextState'],
|
||
|
))
|
||
|
except Exception as e:
|
||
|
print(repr(e))
|
||
|
exit(0)
|