diff --git a/departure.sh b/departure.sh old mode 100644 new mode 100755 index 1ef9396..226eb50 --- a/departure.sh +++ b/departure.sh @@ -1,10 +1,23 @@ #!/bin/bash +if [ -z "$(which jq)" ] +then + printf "\\n\\n\\n\\tPackage \"jq\" required!" + exit 1 +fi + +CHCHPOSITION=0 + +while true; do + if ! ping -q -c1 chch.it>/dev/null; then - echo "no connection to the internet" - exit 1 -fi + echo -e "\\n\\n\\n\\tNo internet connection!" + sleep 10 + clear +# exit 1 + +else STATIONS[0]="18" STATIONS[1]="202" @@ -26,31 +39,194 @@ do esac done -MYOUTPUT="" +MYOUTPUT="\\n " +CHCHLOGOB="\\n \\n" +CHCHLOGOB="$CHCHLOGOB""\\t\\t████████████████████████████████████████████████\\n" +CHCHLOGOB="$CHCHLOGOB""\\t\\t██▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒██\\n" +CHCHLOGOB="$CHCHLOGOB""\\t\\t██▒▒████████████████████████████████████████▒▒██\\n" +CHCHLOGOB="$CHCHLOGOB""\\t\\t██▒▒██████████▒▒██▒▒████████████▒▒██▒▒██████▒▒██\\n" +CHCHLOGOB="$CHCHLOGOB""\\t\\t██▒▒████▒▒▒▒▒▒████▒▒██████▒▒▒▒▒▒████▒▒██████▒▒██\\n" +CHCHLOGOB="$CHCHLOGOB""\\t\\t██▒▒████▒▒████████████▒▒██▒▒████████████▒▒██▒▒██\\n" +CHCHLOGOB="$CHCHLOGOB""\\t\\t██▒▒████▒▒████████▒▒██▒▒██▒▒████████▒▒██▒▒██▒▒██\\n" +CHCHLOGOB="$CHCHLOGOB""\\t\\t██▒▒██████████▒▒██▒▒██▒▒████████▒▒██▒▒██▒▒██▒▒██\\n" +CHCHLOGOB="$CHCHLOGOB""\\t\\t██▒▒██▒▒▒▒▒▒▒▒██▒▒██▒▒██▒▒▒▒▒▒▒▒██▒▒██▒▒████▒▒██\\n" +CHCHLOGOB="$CHCHLOGOB""\\t\\t██▒▒████████████████████████████████████████▒▒██\\n" +CHCHLOGOB="$CHCHLOGOB""\\t\\t██▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒██\\n" +CHCHLOGOB="$CHCHLOGOB""\\t\\t████████████████████████████████████████████████" +#CHCHLOGOB="$CHCHLOGOB""\\t\\t C H A O S C H E M N I T Z . D E\\n" + +#CHCHLOGOA="\n\n" +CHCHLOGOAA="\\t\\t█▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█ " +CHCHLOGOAB="\\t\\t█ █████▀█▀██████▀█▀███ █ " +CHCHLOGOAC="\\t\\t█ ██ ▄▄██▄█▀█ ▄▄██▄█▀█ █ " +CHCHLOGOAD="\\t\\t█ ██▄██▀█ █ █▄██▀█ █ █ █ " +CHCHLOGOAE="\\t\\t█ █▄▄▄▄█▄█▄█▄▄▄▄█▄█▄██ █ " +CHCHLOGOAF="\\t\\t█▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█ " + +#CHCHLOGO="$CHCHLOGOB" +CHCHPOSITION=$((CHCHPOSITION + 1)) +MYLITTLEHELPER=$((NUMOFSTA + 1)) +CHCHPOSITION=$((CHCHPOSITION % MYLITTLEHELPER)) + 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") + if [ ${#BAR} -lt 1 ] + then + BAR="0" + fi + REALBARMS=$(( "$BAR" % 1000 )) + if [ ${#REALBARMS} -lt 3 ] + then + REALBARMS="0""$REALBARMS" + fi + if [ ${#REALBARMS} -lt 3 ] + then + REALBARMS="0""$REALBARMS" + fi + REALBAR=$(( "$BAR" / 1000)) + THISDATE=$(date --date="@$REALBAR" +"%d.%m.%Y %T")",$REALBARMS" + + # Wenn Logo gezeichnet werden soll, baue Urzeit ran und zeichne + + if [ "$j" -eq "$CHCHPOSITION" ] + then + UHRZEIT=$(date --date="@$REALBAR" +"%H:%M")",$REALBARMS" + for((k=1; k<6; k++)) + do + case $(echo "$UHRZEIT" | cut -b"$k") in + "0") + CHCHLOGOAA="$CHCHLOGOAA"" █████" + CHCHLOGOAB="$CHCHLOGOAB"" █ █" + CHCHLOGOAC="$CHCHLOGOAC"" █ █" + CHCHLOGOAD="$CHCHLOGOAD"" █ █" + CHCHLOGOAE="$CHCHLOGOAE"" █ █" + CHCHLOGOAF="$CHCHLOGOAF"" █████" + ;; + "1") + CHCHLOGOAA="$CHCHLOGOAA"" █" + CHCHLOGOAB="$CHCHLOGOAB"" █" + CHCHLOGOAC="$CHCHLOGOAC"" █" + CHCHLOGOAD="$CHCHLOGOAD"" █" + CHCHLOGOAE="$CHCHLOGOAE"" █" + CHCHLOGOAF="$CHCHLOGOAF"" █" + ;; + "2") + CHCHLOGOAA="$CHCHLOGOAA"" █████" + CHCHLOGOAB="$CHCHLOGOAB"" █" + CHCHLOGOAC="$CHCHLOGOAC"" ▄▄▄▄█" + CHCHLOGOAD="$CHCHLOGOAD"" █▀▀▀▀" + CHCHLOGOAE="$CHCHLOGOAE"" █ " + CHCHLOGOAF="$CHCHLOGOAF"" █████" + ;; + "3") + CHCHLOGOAA="$CHCHLOGOAA"" █████" + CHCHLOGOAB="$CHCHLOGOAB"" █" + CHCHLOGOAC="$CHCHLOGOAC"" ▄▄▄▄█" + CHCHLOGOAD="$CHCHLOGOAD"" ▀▀▀▀█" + CHCHLOGOAE="$CHCHLOGOAE"" █" + CHCHLOGOAF="$CHCHLOGOAF"" █████" + ;; + "4") + CHCHLOGOAA="$CHCHLOGOAA"" █ █" + CHCHLOGOAB="$CHCHLOGOAB"" █ █" + CHCHLOGOAC="$CHCHLOGOAC"" █▄▄▄█" + CHCHLOGOAD="$CHCHLOGOAD"" ▀▀▀▀█" + CHCHLOGOAE="$CHCHLOGOAE"" █" + CHCHLOGOAF="$CHCHLOGOAF"" █" + ;; + "5") + CHCHLOGOAA="$CHCHLOGOAA"" █████" + CHCHLOGOAB="$CHCHLOGOAB"" █ " + CHCHLOGOAC="$CHCHLOGOAC"" █▄▄▄▄" + CHCHLOGOAD="$CHCHLOGOAD"" ▀▀▀▀█" + CHCHLOGOAE="$CHCHLOGOAE"" █" + CHCHLOGOAF="$CHCHLOGOAF"" █████" + ;; + "6") + CHCHLOGOAA="$CHCHLOGOAA"" █████" + CHCHLOGOAB="$CHCHLOGOAB"" █ " + CHCHLOGOAC="$CHCHLOGOAC"" █▄▄▄▄" + CHCHLOGOAD="$CHCHLOGOAD"" █▀▀▀█" + CHCHLOGOAE="$CHCHLOGOAE"" █ █" + CHCHLOGOAF="$CHCHLOGOAF"" █████" + ;; + "7") + CHCHLOGOAA="$CHCHLOGOAA"" █████" + CHCHLOGOAB="$CHCHLOGOAB"" █" + CHCHLOGOAC="$CHCHLOGOAC"" █" + CHCHLOGOAD="$CHCHLOGOAD"" █" + CHCHLOGOAE="$CHCHLOGOAE"" █" + CHCHLOGOAF="$CHCHLOGOAF"" █" + ;; + "8") + CHCHLOGOAA="$CHCHLOGOAA"" █████" + CHCHLOGOAB="$CHCHLOGOAB"" █ █" + CHCHLOGOAC="$CHCHLOGOAC"" █▄▄▄█" + CHCHLOGOAD="$CHCHLOGOAD"" █▀▀▀█" + CHCHLOGOAE="$CHCHLOGOAE"" █ █" + CHCHLOGOAF="$CHCHLOGOAF"" █████" + ;; + "9") + CHCHLOGOAA="$CHCHLOGOAA"" █████" + CHCHLOGOAB="$CHCHLOGOAB"" █ █" + CHCHLOGOAC="$CHCHLOGOAC"" █▄▄▄█" + CHCHLOGOAD="$CHCHLOGOAD"" ▀▀▀▀█" + CHCHLOGOAE="$CHCHLOGOAE"" █" + CHCHLOGOAF="$CHCHLOGOAF"" █████" + ;; + ":") + CHCHLOGOAA="$CHCHLOGOAA"" " + CHCHLOGOAB="$CHCHLOGOAB"" ███ " + CHCHLOGOAC="$CHCHLOGOAC"" ▀▀▀ " + CHCHLOGOAD="$CHCHLOGOAD"" ▄▄▄ " + CHCHLOGOAE="$CHCHLOGOAE"" ███ " + CHCHLOGOAF="$CHCHLOGOAF"" " + ;; + *) + esac + done + CHCHLOGO="\\n\\n""$CHCHLOGOAA""\\n""$CHCHLOGOAB""\\n""$CHCHLOGOAC""\\n""$CHCHLOGOAD""\\n""$CHCHLOGOAE""\\n""$CHCHLOGOAF" + MYOUTPUT="$MYOUTPUT""$CHCHLOGO" + fi + # ohne dieses IFS trennt BASH an Space und erstellt damit zu viele Array-Felder IFS=' ' - DESTINATIONS=($(echo -n "$FOO" | jq -r '.destination')); + 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=${#STANAME[$j]}; i<31; i++)) + do + STANAME[$j]="${STANAME[$j]}"" " + done + MYOUTPUT="$MYOUTPUT"'\n\n\t\t┌────────────────────────────────┬─────────────────────────┐ \n\t\t│ '"${STANAME[$j]}"'│ '"$THISDATE"' │\n\t\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) + for((k=${#LINES[$i]}; k<3 ; k++)) + do + LINES[$i]=" ""${LINES[$i]}" + done + for((k=${#DESTINATIONS[$i]}; k<29 ; k++)) + do + DESTINATIONS[$i]="${DESTINATIONS[$i]}"" " + done + MILLIS=$((${ACDEPS[$i]} - BAR)) + if [ "$MILLIS" -lt 0 ] + then + MILLIS=0 + fi + SEKS=$((MILLIS / 1000)) + MILLIS=$((MILLIS % 1000)) + MINS=$((SEKS / 60)) + SEKS=$((SEKS % 60)) MINSSPACE="" SEKSSPACE="" MILLISSPACE="" @@ -68,16 +244,121 @@ IFS=' fi if [ "$MILLIS" -lt 100 ] then - MILLISSPACE=" " + MILLISSPACE="0" fi if [ "$MILLIS" -lt 10 ] then - MILLISSPACE=" " + MILLISSPACE="00" fi - MYOUTPUT="$MYOUTPUT""\t|${MINSSPACE}${MINS} min ${SEKSSPACE}${SEKS} s ${MILLISSPACE}${MILLIS} ms | ${LINES[$i]} | ${DESTINATIONS[$i]} |\n" + MYOUTPUT="$MYOUTPUT""\\t\\t│${MINSSPACE}${MINS} min ${SEKSSPACE}${SEKS},${MILLISSPACE}${MILLIS} s │ ${LINES[$i]} │ ${DESTINATIONS[$i]} │\\n" done - MYOUTPUT="$MYOUTPUT"'\t+--------------------+-----+-------------------------------+\n' - MYOUTPUT="$MYOUTPUT"' \n' - MYOUTPUT="$MYOUTPUT"' \n' + MYOUTPUT="$MYOUTPUT"'\t\t└────────────────────┴─────┴───────────────────────────────┘' +done +if [ "$CHCHPOSITION" -eq "$NUMOFSTA" ] + then + UHRZEIT=$(date --date="@$REALBAR" +"%H:%M")",$REALBARMS" + for((k=1; k<6; k++)) + do + case $(echo "$UHRZEIT" | cut -b"$k") in + "0") + CHCHLOGOAA="$CHCHLOGOAA"" █████" + CHCHLOGOAB="$CHCHLOGOAB"" █ █" + CHCHLOGOAC="$CHCHLOGOAC"" █ █" + CHCHLOGOAD="$CHCHLOGOAD"" █ █" + CHCHLOGOAE="$CHCHLOGOAE"" █ █" + CHCHLOGOAF="$CHCHLOGOAF"" █████" + ;; + "1") + CHCHLOGOAA="$CHCHLOGOAA"" █" + CHCHLOGOAB="$CHCHLOGOAB"" █" + CHCHLOGOAC="$CHCHLOGOAC"" █" + CHCHLOGOAD="$CHCHLOGOAD"" █" + CHCHLOGOAE="$CHCHLOGOAE"" █" + CHCHLOGOAF="$CHCHLOGOAF"" █" + ;; + "2") + CHCHLOGOAA="$CHCHLOGOAA"" █████" + CHCHLOGOAB="$CHCHLOGOAB"" █" + CHCHLOGOAC="$CHCHLOGOAC"" ▄▄▄▄█" + CHCHLOGOAD="$CHCHLOGOAD"" █▀▀▀▀" + CHCHLOGOAE="$CHCHLOGOAE"" █ " + CHCHLOGOAF="$CHCHLOGOAF"" █████" + ;; + "3") + CHCHLOGOAA="$CHCHLOGOAA"" █████" + CHCHLOGOAB="$CHCHLOGOAB"" █" + CHCHLOGOAC="$CHCHLOGOAC"" ▄▄▄▄█" + CHCHLOGOAD="$CHCHLOGOAD"" ▀▀▀▀█" + CHCHLOGOAE="$CHCHLOGOAE"" █" + CHCHLOGOAF="$CHCHLOGOAF"" █████" + ;; + "4") + CHCHLOGOAA="$CHCHLOGOAA"" █ █" + CHCHLOGOAB="$CHCHLOGOAB"" █ █" + CHCHLOGOAC="$CHCHLOGOAC"" █▄▄▄█" + CHCHLOGOAD="$CHCHLOGOAD"" ▀▀▀▀█" + CHCHLOGOAE="$CHCHLOGOAE"" █" + CHCHLOGOAF="$CHCHLOGOAF"" █" + ;; + "5") + CHCHLOGOAA="$CHCHLOGOAA"" █████" + CHCHLOGOAB="$CHCHLOGOAB"" █ " + CHCHLOGOAC="$CHCHLOGOAC"" █▄▄▄▄" + CHCHLOGOAD="$CHCHLOGOAD"" ▀▀▀▀█" + CHCHLOGOAE="$CHCHLOGOAE"" █" + CHCHLOGOAF="$CHCHLOGOAF"" █████" + ;; + "6") + CHCHLOGOAA="$CHCHLOGOAA"" █████" + CHCHLOGOAB="$CHCHLOGOAB"" █ " + CHCHLOGOAC="$CHCHLOGOAC"" █▄▄▄▄" + CHCHLOGOAD="$CHCHLOGOAD"" █▀▀▀█" + CHCHLOGOAE="$CHCHLOGOAE"" █ █" + CHCHLOGOAF="$CHCHLOGOAF"" █████" + ;; + "7") + CHCHLOGOAA="$CHCHLOGOAA"" █████" + CHCHLOGOAB="$CHCHLOGOAB"" █" + CHCHLOGOAC="$CHCHLOGOAC"" █" + CHCHLOGOAD="$CHCHLOGOAD"" █" + CHCHLOGOAE="$CHCHLOGOAE"" █" + CHCHLOGOAF="$CHCHLOGOAF"" █" + ;; + "8") + CHCHLOGOAA="$CHCHLOGOAA"" █████" + CHCHLOGOAB="$CHCHLOGOAB"" █ █" + CHCHLOGOAC="$CHCHLOGOAC"" █▄▄▄█" + CHCHLOGOAD="$CHCHLOGOAD"" █▀▀▀█" + CHCHLOGOAE="$CHCHLOGOAE"" █ █" + CHCHLOGOAF="$CHCHLOGOAF"" █████" + ;; + "9") + CHCHLOGOAA="$CHCHLOGOAA"" █████" + CHCHLOGOAB="$CHCHLOGOAB"" █ █" + CHCHLOGOAC="$CHCHLOGOAC"" █▄▄▄█" + CHCHLOGOAD="$CHCHLOGOAD"" ▀▀▀▀█" + CHCHLOGOAE="$CHCHLOGOAE"" █" + CHCHLOGOAF="$CHCHLOGOAF"" █████" + ;; + ":") + CHCHLOGOAA="$CHCHLOGOAA"" " + CHCHLOGOAB="$CHCHLOGOAB"" ███ " + CHCHLOGOAC="$CHCHLOGOAC"" ▀▀▀ " + CHCHLOGOAD="$CHCHLOGOAD"" ▄▄▄ " + CHCHLOGOAE="$CHCHLOGOAE"" ███ " + CHCHLOGOAF="$CHCHLOGOAF"" " + ;; + *) + esac + done + CHCHLOGO="\\n\\n""$CHCHLOGOAA""\\n""$CHCHLOGOAB""\\n""$CHCHLOGOAC""\\n""$CHCHLOGOAD""\\n""$CHCHLOGOAE""\\n""$CHCHLOGOAF" + MYOUTPUT="$MYOUTPUT""$CHCHLOGO" + fi + clear +#reset +echo -e "$MYOUTPUT" + +fi + +sleep 10 done -echo -e "$MYOUTPUT" \ No newline at end of file