Kirjoittaja Aihe: bussiaikataulut scripti  (Luettu 4628 kertaa)

mihatsu

  • Käyttäjä
  • Viestejä: 77
    • Profiili
bussiaikataulut scripti
« : 09.02.06 - klo:12.30 »
Hei

Tuossa mietiskelin aamulla kun bussiaikautaulua taas katoin että monelta menee seuraava koululle että olisi kätevä tehdä scrpti joka kertos millon seuraava on menossa ja torsmo hakis sieltä tiedot näytölle vaikka 3 seuraavaa. Koulun koneella on sellainen että kun kirjoittaa bussit unix:ssa niin tulee tuloste

paju:(/)(54)% bussit

Bussit Linnanmaa - Keskusta

   aika   linja
   12:29   19
   12:29   5
   12:36   6
   12:43   24
   12:45   4
   12:49   19
   12:50   7
   12:59   5
   13:06   6
   13:09   19

Ajattelin että vähän tuohon malliin sen pitäs toimia. Aikataulu http://www.koskilinjat.fi/aikataulut_ja_reitit/paikallisliikenteen_linjat/talvi/yhdistelma_oyskes.html on tuolla ja sieltä Kajaanintien pysäkin kohdalta 4 5 6 bussit, tuohon aikataulun aikaan pitää lisätä 5min jokaiseen. Olen todella amatööri näissä hommissa joten mietin että hakisko scripta tuolta sen ajan vai teenkö käsin tiedostoon jokaisen ajan käsin? Tai miten tuo olisi toteutettavistta helpoiten.

Mika

mgronber

  • Käyttäjä
  • Viestejä: 1458
    • Profiili
Re: bussiaikataulut scripti
« Vastaus #1 : 09.02.06 - klo:20.04 »
Olen todella amatööri näissä hommissa joten mietin että hakisko scripta tuolta sen ajan vai teenkö käsin tiedostoon jokaisen ajan käsin? Tai miten tuo olisi toteutettavistta helpoiten.

Ainakin minun silmiini tuo aikataulu näytti hieman ikävältä parsittavalta joten pitäisin tekstitiedostoon tallennettua aikataulua järkevänä lähtökohtana. Generoin liitteenä olevan aikataulutiedoston muutamalla sopivasti valitulla for-silmukalla.

Koodia: [Valitse]
$ for x in 0{6..9} {10..18}; do echo "$x:25 4" >>aikataulu-raw.txt; done
$ for x in 0{5..9} {10..18}; do echo "$x:55 4" >>aikataulu-raw.txt; done
$ for x in {19..21}; do echo "$x:35 4" >>aikataulu-raw.txt; done
$ for x in 0{7..9} {10..17}; do echo "$x:35 5" >>aikataulu-raw.txt; done
$ for x in 0{8..9} {10..17}; do echo "$x:05 5" >>aikataulu-raw.txt; done
$ for x in 0{7..9} {10..17}; do echo "$x:15 6" >>aikataulu-raw.txt; done
$ for x in 0{6..9} {10..22}; do echo "$x:45 6" >>aikataulu-raw.txt; done
$ sort aikataulu-raw.txt >~/aikataulu.txt
$ rm aikataulu-raw.txt

Tuosta aikataulusta voi sitten lukea kolme seuraavaa vuoroa esimerkiksi alla olevalla skriptillä.

Koodia: [Valitse]
#!/bin/bash

count=3
currenttime=$(date +%R)

printf "aika\tlinja\n"

exec < ~/aikataulu.txt
while read time rest; do
    if [[ $time > $currenttime ]]; then
        printf "%s\t%3d\n" $time $rest
        (( count-- ))
        [[ $count -gt 0 ]] || break
    fi
done

Skripti hakee aikataulua kotihakemistostasi nimellä aikataulu.txt. Muista myös antaa skriptille suoritusoikeudet.

En ota mitään vastuuta generoimieni aikataulujen oikeellisuudesta.


[ylläpito on poistanut liitteen]

mihatsu

  • Käyttäjä
  • Viestejä: 77
    • Profiili
Re: bussiaikataulut scripti
« Vastaus #2 : 09.02.06 - klo:22.25 »
Kiitoksia! Tämä toimii paremmin kuin ajattelin! Kiitoksia vielä vaivannäöstä!

Mika

sakkeri

  • Vieras
Re: bussiaikataulut scripti
« Vastaus #3 : 19.02.06 - klo:00.04 »
Onnistuiskos sama Matkahuollon sivuilta. Jotenkin tyyliin:

Syötä lähtöpiste:
Syötä päätepiste:
Anna kellonaika:

Ja softa hakisi noilla arvoilla matkahuollon sivuilta aikataulut. Miten tuota voisi lähteä toteuttamaan?

kalmisto

  • Käyttäjä
  • Viestejä: 1
    • Profiili
Re: bussiaikataulut scripti
« Vastaus #4 : 21.02.06 - klo:16.04 »
Itse käytän tällaista komentoa junien kanssa:

Koodia: [Valitse]
lynx -dump "http://aikataulut.ytv.fi/reittiopas-pda/fi/?test=1&aa=17205%3At1a2552403a6673381%3AHelsinki+keskusta%3A871%3A&an=&keya=helsinki&bb=15860%3At1a2545176a6678970%3ALepp%E4vaara%3A458%3A&bn=&keyb=lepp%E4vaara&hour="$(date +%H)"&min="$(date +%M)"&vm=1&day="$(date +%d)"&month="$(date +%m)"&year="$(date +%Y)"&adv=" | grep ".*juna"

www.matka.fi osoitteesta saanet samankaltaisen toiminteen aikaiseksi, joskaan en nyt ensikatsomisella löytänyt sieltä tuommoista kevyempää tekstiversiota.
« Viimeksi muokattu: 21.02.06 - klo:16.15 kirjoittanut kalmisto »