#! /bin/sh # # NAME # vvs.de - web scraper for VVS departure information # # SYNOPSIS # vvs.de ORIGIN DESTINATION [HH [MM]] # # EXAMPLES # $ vvs.de Hauptbahnhof Renningen 13 37 # # CAVEATS # Acceptable operands have to be found by trial and error. # # BUGS # Probably bit rot.^_^ # # SEE ALSO # mobile.vvs.de # # COPYRIGHT # All departure information is copyrighted by Verkehrs- und # Tarifverbund Stuttgart GmbH. The original copyright statement can # be obtained online at http://www.vvs.de/impressum . # # The following code is your fault. # set -euf #
#s/itdDateDay=/&${3-$itdDateDay}/ #s/itdDateMonth=/&${4-$itdDateMonth}/ #s/itdDateYear=/&${5-$itdDateYear}/ vvs_tmp=/tmp/vvs.tmp curl -Ss http://www.vvs.de/fahrplan/ | sed -rn "//,//{ s.*.*\1=\2;T /itdTripDateTimeDepArr=arr/b s/(name_origin=).*/\1${1-$name_origin}/ s/(name_destination=).*/\1${2-$name_destination}/ ${3+s/(itdTimeHour=).*/\1${3-$itdTimeHour}/} ${4+s/(itdTimeMinute=).*/\1${4-$itdTimeMinute}/} p }" | tr '\n' '&' | sed 's/&$//' >"$vvs_tmp" #while read line ; do # test -z "$line" || echo "$line" #done >"$vvs_tmp" echo from: ${1-$name_origin} echo \ \ to: ${2-$name_destination} echo '-------------------------------------' w3m -cols 9423 -post "$vvs_tmp" \ -dump http://www.vvs.de/./efaanyfield/anyfield.php | sed -rn " s/^ +[0-9]+ +([0-9]+:[0-9]+) +([0-9]+:[0-9]+) +([A-Z0-9 ,]+) .*$/\1 \2 \3/p " | tr -d , ####