clean up scripts
This commit is contained in:
58
.config/polybar/scripts/info-wifinomadkronoplus.sh
Normal file
58
.config/polybar/scripts/info-wifinomadkronoplus.sh
Normal file
@@ -0,0 +1,58 @@
|
||||
#!/bin/sh
|
||||
|
||||
icon="#"
|
||||
|
||||
current_wifi=$(iwgetid -r)
|
||||
if [ "$current_wifi" = "NormandieTrainConnecte" ]; then
|
||||
# Obtain route info. Bail out if it cannot be obtained or if the response
|
||||
# is not valid JSON (based on jq's exit code).
|
||||
if ! { circulation=$(curl --silent --fail https://wifi.normandie.fr/router/api/train/circulation); } then
|
||||
echo "$icon In-train portal unreachable"
|
||||
exit 0
|
||||
fi
|
||||
if ! { echo "$circulation" | jq --exit-status > /dev/null 2>&1; } then
|
||||
echo "$icon In-train portal unreachable"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# In the list of stops on the current route, future stops are those which
|
||||
# have an "arrival" key (the first station only has "departure"), and which
|
||||
# either have a "progress" key showing 0% progress or which lack the
|
||||
# "progress" key entirely. Stops are ordered according to the itinerary, so
|
||||
# pick the first matching one to obtain the immediate next station.
|
||||
station=$(echo "$circulation" | jq '[.stopList.stops[] |
|
||||
select(
|
||||
.arrival and (has("progress") | not) or .progress.progressPercentage == 0
|
||||
)][0]')
|
||||
|
||||
# get name and track (as soon as it's available)
|
||||
station_name=$(echo "$station" | jq -r '.location.name')
|
||||
station_track=$(echo "$station" | jq -r '.track.number?')
|
||||
if [ "$station_track" != "null" ]; then
|
||||
station_name="$station_name, V. $station_track"
|
||||
fi
|
||||
|
||||
# compute current delay in minutes based on "date" and "realDate"
|
||||
scheduled_arrival=$(echo "$station" | jq -r '.arrival.date')
|
||||
actual_arrival=$(echo "$station" | jq -r '.arrival.realDate')
|
||||
delay_minutes="($(date +%s -d "$actual_arrival")-$(date +%s -d "$scheduled_arrival"))/60"
|
||||
delay_minutes=$(echo "$delay_minutes" | bc)
|
||||
|
||||
# pretty-print arrival and delay
|
||||
scheduled_arrival_pretty=$(date --date="$scheduled_arrival" +%H:%M)
|
||||
delay_pretty=""
|
||||
if [ "$delay_minutes" -ne 0 ]; then
|
||||
delay_pretty=" %{F#d60606}(+$delay_minutes)%{F-}"
|
||||
fi
|
||||
|
||||
gps=$(curl --silent --fail https://wifi.normandie.fr/router/api/train/gps)
|
||||
|
||||
# convert train speed from m/s to km/h
|
||||
speed_mps=$(echo "$gps" | jq .speed)
|
||||
speed_kph=$(echo "scale=0; $speed_mps * 3.6" | bc)
|
||||
speed_kph_pretty="${speed_kph%.*} kph"
|
||||
|
||||
echo "$icon $scheduled_arrival_pretty$delay_pretty - $station_name - $speed_kph_pretty"
|
||||
else
|
||||
echo ""
|
||||
fi
|
||||
Reference in New Issue
Block a user