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" |