#!/usr/bin/python3 # -*- coding: utf-8 -*- from subprocess import check_output from requests import get import json import sys from datetime import datetime import pytz timezone = pytz.timezone('Europe/Berlin') def get_ssid(): scanoutput = check_output(["/usr/sbin/iwlist", "wlp2s0", "scan"]) for line in scanoutput.split(): line = line.decode("utf-8") if line[:5] == "ESSID": ssid = line.split('"')[1] return ssid # Get Speed from ICE-Portal def get_speed_db(): rs = "https://iceportal.de/api1/rs/status" response = get(rs) data = response.json() speed= str(data["speed"]) return speed def get_next_db(): rs = "https://iceportal.de/api1/rs/tripInfo/trip/" response = get(rs) data = response.json() next_stop=data["trip"]["stopInfo"]["actualNext"] for i in data['trip']['stops']: if i['station']['evaNr'] == next_stop: nextStationName = i['station']['name'] arrivalDelay = i['timetable']['arrivalDelay'] utime=i['timetable']['actualArrivalTime']/1000 arrivalTime = datetime.fromtimestamp(utime, tz=timezone).strftime('%H:%M') break tripinfo = nextStationName+" "+ arrivalTime+" " + arrivalDelay return tripinfo def get_trainInfo_db(): rs = "https://iceportal.de/api1/rs/tripInfo/trip/" response = get(rs) data = response.json() trainType = data["trip"]["trainType"] trainNumber = data["trip"]["vzn"] finalStationName = data["trip"]["stopInfo"]["finalStationName"] return trainType+" "+trainNumber+" "+ finalStationName def main(): if get_ssid() == "WIFIonICE": print(get_trainInfo_db()+" | "+"SPEED: "+get_speed_db()+" km/h | "+"NEXT: "+get_next_db()) return 0 if __name__ == '__main__': sys.exit(main()) # next section explains the use of sys.exit