initial commit
This commit is contained in:
5
README.md
Normal file
5
README.md
Normal file
@@ -0,0 +1,5 @@
|
||||
# puvetra
|
||||
|
||||
(**pu**blic transport **ve**hicle **tra**cker)
|
||||
|
||||
|
||||
54
tram_info.sh
Executable file
54
tram_info.sh
Executable file
@@ -0,0 +1,54 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
if [[ $# -ne 1 ]]; then
|
||||
echo "Usage: $0 <dvb_tram_number>"
|
||||
exit
|
||||
fi
|
||||
|
||||
|
||||
if [[ $1 -lt 1 || $1 -gt 13 || $1 -eq 5 ]]; then
|
||||
>&2 echo "$1 is not a valid Tram in Dresden"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ ! -x "$(command -v jq)" ]]; then
|
||||
>&2 echo "You need to have 'jq' installed. You can download it here: https://jqlang.org/download/"
|
||||
exit 1
|
||||
fi
|
||||
line_num="$1"
|
||||
|
||||
current_date=$(date -Iseconds)
|
||||
window=$(date -Iseconds -d "+10 minutes")
|
||||
|
||||
api="https://api.transitous.org/api"
|
||||
|
||||
response=$(curl -s --get \
|
||||
--data-urlencode "startTime=$current_date" \
|
||||
--data-urlencode "endTime=$current_date" \
|
||||
--data-urlencode "min=51.1626,13.5609" \
|
||||
--data-urlencode "max=50.9973,13.8596" \
|
||||
--data-urlencode "zoom=15" \
|
||||
--data-urlencode "precision=2" \
|
||||
"$api/v1/map/trips")
|
||||
|
||||
query='[.[] | select(.trips[0].routeShortName == "'$line_num'")]'
|
||||
|
||||
all_trams=$(jq -c "$query" <<< "$response")
|
||||
|
||||
# echo "$all_trams"
|
||||
|
||||
tripId=$(jq -r '.[0].trips[0].tripId' <<< "$all_trams")
|
||||
response=$(curl -s --get \
|
||||
--data-urlencode "tripId=$tripId" \
|
||||
"$api/v6/trip")
|
||||
|
||||
trip=$(jq -c '[.legs[0].from] + [.legs[0].intermediateStops[]] + [.legs[0].to] | map({stopId: .stopId, name: .name})' <<< $response)
|
||||
|
||||
# jq <<< $trip
|
||||
|
||||
currentStops=$(jq -c 'map(.from.stopId[:-2])' <<< "$all_trams")
|
||||
|
||||
parsed=$(jq --argjson stops "${currentStops}" 'map(. as $t | (if $stops | index($t.stopId[:-2]) then $t.tram = true else $t.tram = false end))' <<< "$trip")
|
||||
green=$'\e[38;5;11m'
|
||||
end=$'\e[0m'
|
||||
jq -r --arg green "$green" --arg end "$end" 'map(if .tram then $green + " " + .name + $end else " " + .name end) | .[]'<<< "$parsed"
|
||||
Reference in New Issue
Block a user