cts

Récupérer un itinéraire sur le réseau CTS - retour accueil

git clone git://bebou.netlib.re/cts

Log | Files | Refs | README |

cts (2473B)


      1 #! /bin/sh
      2 
      3 usage() {
      4 <<. cat
      5 Synopsis : cts [-j jour] [-t heure] [-f] [-d départ] [-i type_départ] [-a arrivée] [-o type_arrivée] [-h]
      6 
      7 Affiche les itinéraires que la CTS propose pour aller de _départ_ à _arrivée_
      8 en partant à _jour_ à _heure_.
      9 
     10   -j : Le jour de départ au format 2025-11-23. La valeur par défaut est
     11        aujourd'hui.
     12   -f : si -t doit être l'heure d'arrivée. En son absence -t est l'heure de départ.
     13   -t : L'heure de départ au format 18h23. La valeur par défaut est maintenant.
     14   -d : L'identifiant du lieu de départ. La valeur par défaut est l'arrêt
     15        Boecklin.
     16   -i : Le type de lieu du départ
     17   -a : L'identifiant du lieu d'arrivée. La valeur par défaut est l'arrêt Gare
     18        Centrale.
     19   -o : Le type de lieu d'arrivé
     20 .
     21 }
     22 
     23 imprimer() {
     24 	if [ "$1" = "trajet" ];then
     25 		<<. cat
     26 ---------------------------
     27 Départ  $heuredep à $arrdep
     28 Arrivée $heurearr à $arrarr
     29 Durée : ${duree}m
     30 ----
     31 .
     32 	else
     33 		<<. cat
     34 $type $num
     35 $heuredepsection $arrdepsection
     36 $heurearrsection $arrarrsection
     37 .
     38 	fi
     39 }
     40 
     41 # Les variables par défaut
     42 j=$(date +"%Y%%2F%m%%2F%d")
     43 f=0
     44 h=$(date +%H)
     45 m=$(date +%M)
     46 # Boecklin
     47 d="143972";i="STOP_PLACE"
     48 # Gare centrale
     49 a="144528";o="STOP_PLACE"
     50 while getopts "hfj:t:d:i:a:o:" opt;do
     51 	case $opt in
     52 		( h ) usage;exit 0;;
     53 		( f ) f=1 ;;
     54 		( d ) d="$OPTARG" ;;
     55 		( i ) i="$OPTARG" ;;
     56 		( a ) a="$OPTARG" ;;
     57 		( o ) o="$OPTARG" ;;
     58 		( j ) j="$(echo "$OPTARG" | sed 's,[-/],%2F,g')";;
     59 		( t )
     60 			h=$(echo "$OPTARG" | cut -f1 -d'h')
     61 			m=$(echo "$OPTARG" | cut -f2 -d'h') ;;
     62 		( * ) usage;exit 1
     63 	esac
     64 done
     65 
     66 tmp=$(mktemp)
     67 curl -Ls 'https://www.cts-strasbourg.eu/system/modules/eu.cts.module.itineraire/actions/action_gettrips.jsp' \
     68 	-H 'content-type: application/x-www-form-urlencoded; charset=UTF-8' \
     69 	--data-raw "date=$j&hour=$h&minute=$m&depOrArrFlag=$f&departure=$d&depType=$i&arrival=$a&arrType=$o&algorithm=FASTEST&train=true&bus=true&tram=true&car=true&depInsee=67482&arrInsee=67482" |
     70 	jq -r '
     71 	.trips[] |
     72 		( .departureStop | "heuredep="+.hour.value, "arrdep="+.name.value),
     73 		( .arrivalStop | "heurearr="+.hour.value, "arrarr="+.name.value),
     74 		"duree="+(.duration.value | tostring),
     75 		"imprimer trajet",
     76 		( .sections[] |
     77 			"type="+.type.value,
     78 			 "num="+.lineNumber.value,
     79 			 "arrdepsection="+.depStop.value,
     80 			 "heuredepsection="+.depHour.value,
     81 			 "arrarrsection="+.arrStop.value,
     82 			 "heurearrsection="+.arrHour.value,
     83 			 "imprimer section")' | sed 's/=/="/;/=/ s/$/"/' > "$tmp"
     84 . "$tmp"