i3blocks_TravelInfo/travelInfo.py

64 lines
1.8 KiB
Python
Executable File

#!/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