diff --git a/departure.sh b/departure.sh index 98a2b67..ee4ed1e 100755 --- a/departure.sh +++ b/departure.sh @@ -138,15 +138,15 @@ get_cvag_station_name() local -n _STANAME=$1 local -n _STATIONS=$2 - FOO=$(curl --connect-timeout 5 -s "http://www.cvag.de/eza/mis/stations?minLat=0&maxLat=100&minLon=0&maxLon=100") + COMPLETE_STATION_LIST=$(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 "$COMPLETE_STATION_LIST" | jq -r '.stations | .[] | select(.displayName | contains("'"${_STATIONS[$i]}"'")) | .number') ;; *) - _STANAME[$i]=$(echo -n "$FOO" | jq -r '.stations | .[] | select(.number | contains('"${_STATIONS[$i]}"')) | .displayName') + _STANAME[$i]=$(echo -n "$COMPLETE_STATION_LIST" | jq -r '.stations | .[] | select(.number | contains('"${_STATIONS[$i]}"')) | .displayName') ;; esac done @@ -162,43 +162,35 @@ while true; do STATIONS[0]="18" STATIONS[1]="202" STANAME=() - NUMOFSTA=${#STATIONS[*]} - LOGO_TIME=("${CHCHLOGO_S[@]}") - - [ ${#STANAME[@]} -eq 0 ] && get_cvag_station_name STANAME STATIONS - MYOUTPUT="\\n " - CHCHPOSITION=$((CHCHPOSITION + 1)) - MYLITTLEHELPER=$((NUMOFSTA + 1)) - CHCHPOSITION=$((CHCHPOSITION % MYLITTLEHELPER)) + CHCHPOSITION=$(((CHCHPOSITION + 1) % (NUMOFSTA + 1))) + [ ${#STANAME[@]} -eq 0 ] && get_cvag_station_name STANAME STATIONS 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 + STATION_SCHEDULE=$(curl --connect-timeout 5 -s http://cvag.de/eza/mis/stops/station/CAG-${STATIONS[$j]}) - FOO=$(echo "$FOO" | jq -r ".stops | .[]") - BAR=$(echo "$BAR" | jq -r ".now") + STATION_STOPS=$(echo "$STATION_SCHEDULE" | jq -r ".stops | .[]") + STATION_NOW=$(echo "$STATION_SCHEDULE" | jq -r ".now") - if [ ${#BAR} -lt 1 ]; then - BAR="0" + if [ ${#STATION_NOW} -lt 1 ]; then + STATION_NOW="0" fi - REALBARMS=$(( "$BAR" % 1000 )) - if [ ${#REALBARMS} -lt 3 ]; then - REALBARMS="0""$REALBARMS" + REALSTATION_NOWMS=$(( "$STATION_NOW" % 1000 )) + if [ ${#REALSTATION_NOWMS} -lt 3 ]; then + REALSTATION_NOWMS="0""$REALSTATION_NOWMS" fi - if [ ${#REALBARMS} -lt 3 ]; then - REALBARMS="0""$REALBARMS" + if [ ${#REALSTATION_NOWMS} -lt 3 ]; then + REALSTATION_NOWMS="0""$REALSTATION_NOWMS" fi - REALBAR=$(( "$BAR" / 1000)) - THISDATE=$(date --date="@$REALBAR" +"%d.%m.%Y %T")",$REALBARMS" + REALSTATION_NOW=$(( "$STATION_NOW" / 1000)) + THISDATE=$(date --date="@$REALSTATION_NOW" +"%d.%m.%Y %T")",$REALSTATION_NOWMS" # Wenn Logo gezeichnet werden soll, baue Urzeit ran und zeichne - if [ "$j" -eq "$CHCHPOSITION" ]; then - UHRZEIT=$(date --date="@$REALBAR" +"%H:%M")",$REALBARMS" + UHRZEIT=$(date --date="@$REALSTATION_NOW" +"%H:%M")",$REALSTATION_NOWMS" for((k=1; k<6; k++)); do append_five_line_symbol LOGO_TIME $(echo "$UHRZEIT" | cut -b"$k") done @@ -209,9 +201,9 @@ while true; do # 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')) + DESTINATIONS=($(echo -n "$STATION_STOPS" | jq -r '.destination')) + LINES=($(echo -n "$STATION_STOPS" | jq -r '.line')) + ACDEPS=($(echo -n "$STATION_STOPS" | jq -r '.actualDeparture')) LINECOUNT=${#LINES[*]} for((i=${#STANAME[$j]}; i<31; i++)); do STANAME[$j]="${STANAME[$j]}"" " @@ -224,7 +216,7 @@ while true; do for((k=${#DESTINATIONS[$i]}; k<29 ; k++)); do DESTINATIONS[$i]="${DESTINATIONS[$i]}"" " done - MILLIS=$((${ACDEPS[$i]} - BAR)) + MILLIS=$((${ACDEPS[$i]} - STATION_NOW)) if [ "$MILLIS" -lt 0 ]; then MILLIS=0 fi @@ -255,7 +247,7 @@ while true; do MYOUTPUT="$MYOUTPUT"'\t\t└────────────────────┴─────┴───────────────────────────────┘' done if [ "$CHCHPOSITION" -eq "$NUMOFSTA" ]; then - UHRZEIT=$(date --date="@$REALBAR" +"%H:%M")",$REALBARMS" + UHRZEIT=$(date --date="@$REALSTATION_NOW" +"%H:%M")",$REALSTATION_NOWMS" for((k=1; k<6; k++)); do append_five_line_symbol LOGO_TIME $(echo "$UHRZEIT" | cut -b"$k") done