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