83 lines
2.1 KiB
Bash
83 lines
2.1 KiB
Bash
|
#!/bin/bash
|
||
|
|
||
|
if ! ping -q -c1 chch.it>/dev/null;
|
||
|
then
|
||
|
echo "no connection to the internet"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
STATIONS[0]="18"
|
||
|
STATIONS[1]="202"
|
||
|
STANAME=()
|
||
|
|
||
|
NUMOFSTA=${#STATIONS[*]}
|
||
|
|
||
|
FOO=$(curl --connect-timeout 5 -s "http://www.cvag.de/eza/mis/stations?minLat=0&maxLat=100&minLon=0&maxLon=100")
|
||
|
for ((i=0; i<${#STATIONS[*]}; i++))
|
||
|
do
|
||
|
case ${STATIONS[$i]} in
|
||
|
''|*[!0-9]*)
|
||
|
STANAME[$i]=$(echo -n "$FOO" | jq -r '.stations | .[] | select(.displayName | contains("'"${STATIONS[$i]}"'")) | .number')
|
||
|
;;
|
||
|
|
||
|
*)
|
||
|
STANAME[$i]=$(echo -n "$FOO" | jq -r '.stations | .[] | select(.number | contains('"${STATIONS[$i]}"')) | .displayName')
|
||
|
;;
|
||
|
esac
|
||
|
done
|
||
|
|
||
|
MYOUTPUT=""
|
||
|
for ((j=0; j<"$NUMOFSTA"; j++))
|
||
|
do
|
||
|
FOO=$(curl --connect-timeout 5 -s http://cvag.de/eza/mis/stops/station/CAG-${STATIONS[$j]})
|
||
|
BAR=$FOO
|
||
|
|
||
|
FOO=$(echo "$FOO" | jq -r ".stops | .[]")
|
||
|
BAR=$(echo "$BAR" | jq -r ".now")
|
||
|
|
||
|
# ohne dieses IFS trennt BASH an Space und erstellt damit zu viele Array-Felder
|
||
|
IFS='
|
||
|
'
|
||
|
DESTINATIONS=($(echo -n "$FOO" | jq -r '.destination'));
|
||
|
LINES=($(echo -n "$FOO" | jq -r '.line'))
|
||
|
ACDEPS=($(echo -n "$FOO" | jq -r '.actualDeparture'))
|
||
|
LINECOUNT=${#LINES[*]}
|
||
|
|
||
|
MYOUTPUT="$MYOUTPUT"'\t+--------------------+\n\t| '"${STANAME[$j]}"'|\n\t+--------------------+-----+-------------------------------+\n'
|
||
|
for ((i=0; i<"$LINECOUNT"; i++))
|
||
|
do
|
||
|
MILLIS=$(expr "${ACDEPS[$i]}" - "$BAR")
|
||
|
SEKS=$(expr "$MILLIS" / 1000)
|
||
|
MILLIS=$(expr "$MILLIS" % 1000)
|
||
|
MINS=$(expr "$SEKS" / 60)
|
||
|
SEKS=$(expr "$SEKS" % 60)
|
||
|
MINSSPACE=""
|
||
|
SEKSSPACE=""
|
||
|
MILLISSPACE=""
|
||
|
if [ "$MINS" -lt 100 ]
|
||
|
then
|
||
|
MINSSPACE=" "
|
||
|
fi
|
||
|
if [ "$MINS" -lt 10 ]
|
||
|
then
|
||
|
MINSSPACE=" "
|
||
|
fi
|
||
|
if [ "$SEKS" -lt 10 ]
|
||
|
then
|
||
|
SEKSSPACE=" "
|
||
|
fi
|
||
|
if [ "$MILLIS" -lt 100 ]
|
||
|
then
|
||
|
MILLISSPACE=" "
|
||
|
fi
|
||
|
if [ "$MILLIS" -lt 10 ]
|
||
|
then
|
||
|
MILLISSPACE=" "
|
||
|
fi
|
||
|
MYOUTPUT="$MYOUTPUT""\t|${MINSSPACE}${MINS} min ${SEKSSPACE}${SEKS} s ${MILLISSPACE}${MILLIS} ms | ${LINES[$i]} | ${DESTINATIONS[$i]} |\n"
|
||
|
done
|
||
|
MYOUTPUT="$MYOUTPUT"'\t+--------------------+-----+-------------------------------+\n'
|
||
|
MYOUTPUT="$MYOUTPUT"' \n'
|
||
|
MYOUTPUT="$MYOUTPUT"' \n'
|
||
|
done
|
||
|
echo -e "$MYOUTPUT"
|