|
conky i rozklad jazdy
cichy - 07-04-2008 22:34
Mam pytanie: Czy da sie zrobic taki skrypt i uruchomic go w conky, by wykazywal rozklad jazdy danej lini autobusowej? np. najblizsze 3 godziny odjazdu? cos w stylu MicroBus'a na telefony komorkowe
Ktos juz probowal czegos takiego?
grze_S - 09-04-2008 21:16
Musisz napisać sobie skrypt (ew. program) który będzie pobierał (albo przechowywał i wyświetlał odpowiednie informacje) a potem w conky uruchomić go przez funkcję exec ${exec nazwa_polecenia}
cichy - 10-04-2008 02:30
No dobra. Teraz pytanie "zielonego"- jak napisac taki programik?:) moze ktos zna jakas strone na ktorej jest wszystko jasno powiedziane? Jesli chodzi o mnie to by wystarczyl programik, ktory by powieral wpisane w nim dane, i wyswietlal ich fragment, przy zaleznosci "jezeli X to Y ....". Chodzi mi o cos prostego;]
grze_S - 13-04-2008 14:48
No cóż z czymś gotowym to chyba ciężko by było... Będziesz musiał chyba poczytać o programowaniu w bashu i napisać samemu...
skynet - 13-04-2008 16:56
jedyny problem to:
trzeba by wymyśleć jakiś skrypt który by wybierał najbardzej aktualny rozkład hmm...
cichy - 14-04-2008 14:45
mysle ze ten skrypt na najbardziej aktualny rozklad niekoniecznie bylby potrzebny. Moznaby to sprawdzac recznie przciez. Rozklady az tak szybko sie nie zmieniaja:) Wystarczy skrypt, ktory wyswietla 3 najblizsze informacje z danego zbioru. -ktos umie to zrobic?
olka - 14-04-2008 15:08
W ogólności nie jest to jakoś specjalne trudne - wszystko zależy jednak od tego, jak zamieszczone są informacje na stronie z rozkładem: jeśli np wyświetlenie rozkładu wymaga interakcji z użytkownikiem nie opartej na metodzie GET to może być duży problem.
Proponuję zapoznać się z dostępnymi w necie skryptami do wyświetlania informacji np o pogodzie czy newsów rss (minimum ostatnia z tych funkcji jest już wkompilowana w conky, ale skrypty jeszcze funkcjonują)
skynet - 14-04-2008 17:01
najpierw trzeba zainstalować w3m
szukasz linii np. tutaj http://www.ztm.waw.pl/baza/20080416/LINIE.HTM później wybierasz w którą stronę i przystanek, kopiujesz link np. taki http://www.ztm.waw.pl/baza/20080416/7/103001.HTM
pomijając to że rozkład zmienia się co jakieś kilka dni to masz : w3m -dump http://www.ztm.waw.pl/baza/20080416/7/103001.HTM | grep '| '
co daje efekt skynet@debian:~$ w3m -dump http://www.ztm.waw.pl/baza/20080416/7/103001.HTM | grep '| ' | 4 | 50 | 4 | 50 | | 5 | 10 30 50 | 5 | 10 30 50 | | 6 | 10 [31] 47 59 | 6 |[10] 30 50 | | 7 | 11 23 35 47 59 | 7 | 10 30 48 | | 8 | 11 25 [40] 55 | 8 | 03 [18] 33 48 | | 9 | 02w 10 25 40 55 | 9 | 03 18 33 48 | | 10 | 10 25 40 [55] | 10 | 03 [18] 33 48 | | 11 | 10 25 40 55 | 11 | 03 18 33 48 | | 12 | 10 25 40 55 | 12 | 03 [18] 33 48 | | 13 |[10] 25 40 55 | 13 | 03 18 33 48 | | 14 | 10 23 35 47 59 | 14 | 03 [18] 33 48 | | 15 | 11 [23] 35 47 59 | 15 | 03 18 33 48 | | 16 | 11 23 35 47 59 | 16 | 03 [18] 33 48 | | 17 | 11 [25] 40 55 | 17 | 03 18 33 48 | | 18 | 10 16m 25 40 55 | 18 | 03 [18] 33 48 | | 19 | 10 25 [40] 55 | 19 | 03 18 33 50 | | 20 | 10 30 37m 50 | 20 | 10 [30] 50 | | 21 | 10 30 [50] | 21 | 00w 10 30 50 | | 22 | 10 31 52 | 22 | 10 [31] 52 | | 23 | 12m | 23 | 12m |
tyle że równe
A jeżeli zamienimy na skynet@debian:~$ w3m -dump http://www.ztm.waw.pl/baza/20080416/7/103001.HTM | grep '| 15 |'
to otrzymamy
| 15 | 11 [23] 35 47 59 | 15 | 03 18 33 48 |
to będzie tylko o 15
pisząc mały skrypt
#!/bin/sh a=$(w3m -dump http://www.ztm.waw.pl/baza/20080416/7/103001.HTM | c= grep "| $1 |") #echo $a
for x in "${a#*| $1 |}" do b1="${x%.*}" done #echo $a #echo $b c1=${b1%\|*|*|}
for x in "${a#|*|*|*|}" do b2="${x%.*}" done c2=${b2%\|}
#echo $c echo "tramwaj linii 7 w dni powszednie będzie o godzinie $1" 'minut' $c1 echo "tramwaj linii 7 w święta i soboty będzie o godzinie $1" 'minut' $c2
otrzymujemy
skynet@debian:~/Desktop$ sh 1.sh 11 tramwaj linii 7 w dni powszednie będzie o godzinie 11 minut 10 25 40 55 tramwaj linii 7 w święta i soboty będzie o godzinie 11 minut 03 18 33 48
dzięki echo `date +'%d.%m.%Y'` echo `date +'%H.%M.%S'`
mamy 14.04.2008 17.58.04
teraz można by jakoś użyć funkcji grep poprzez w3m żeby sam szukał linii i aktualny rozkład i poprzez souce_html_code w3m -dump_source http://www.ztm.waw.pl/rozklady.php | grep -i 'href="http://www.ztm.waw.pl' | grep -v -i 'komunikaty' | grep -v -i 'mdd' | grep -v -i 'SKM'
otrzymujemy skynet@debian:~$ w3m -dump_source http://www.ztm.waw.pl/rozklady.php | grep -i 'href="http://www.ztm.waw.pl' | grep -v -i 'komunikaty' | grep -v -i 'mdd' | grep -v -i 'SKM' Rozk�ady jazdy z uwzgl�dnieniem zmian do 15.04.2008. Rozk�ady jazdy z uwzgl�dnieniem zmian od 16.04.2008.
teraz trzeba napisać skrypt który odróżni "zmian do" i "zmian od" oraz odróżni aktualną datę hmm...
wersja finalna
#!/bin/sh #----------------------------- c=`w3m -dump_source http://www.ztm.waw.pl/rozklady.php | grep 'href="http://www.ztm.waw.pl' | grep -v -i 'komunikaty' | grep -v -i 'mdd' | grep -v -i 'SKM'` #echo $d #----------------------------- e1=`echo "$c" | grep ' do '` e2=`echo "$c" | grep ' od '` #----------------------------- # echo $e1 # echo '' # echo $e2 #----------------------------- for x in "${e1#*href=?}" do f1_a="${x%? class*}" done #------------ for x in "${e1#*do }" do f2_a="${x%.<*}" done #----------------------------- for x in "${e1#*href=?}" do f1_b="${x%? class*}" done #------------ for x in "${e1#*do }" do f2_b="${x%.<*}" done #----------------------------- #echo $f1_a #echo '' #------------ #echo $f2_a #echo '' #----------------------------- for x in "${f2_a}" do date_1_a_d="${x%.*.*}" done #------ for x in "${f2_a#*.}" do date_1_a_m="${x%.*}" done #------ for x in "${f2_a#*.*.}" do date_1_a_y="${x%}" done #----------------------------- for x in "${f2_a}" do date_1_b_d="${x%.*.*}" done #------ for x in "${f2_a#*.}" do date_1_b_m="${x%.*}" done #------ for x in "${f2_a#*.*.}" do date_1_b_y="${x%}" done #----------------------------- #echo $date_1_a_d #echo $date_1_a_m #echo $date_1_a_y #----------------------------- #echo '' #----------------------------- if [ "$date_1_a_y" -ge `date +'%Y'` ] ; then if [ "$date_1_a_m" -ge `date +'%m'` ] ; then if [ "$date_1_a_d" -ge `date +'%d'` ] ; then for x in "${f1_a}" do g="${x%/LINIE.HTM}" done fi fi fi #----------------------------- if [ "$date_1_b_y" -le `date +'%Y'` ] ; then if [ "$date_1_b_m" -le `date +'%m'` ] ; then if [ "$date_1_b_d" -le `date +'%d'` ] ; then for x in "${f1_b}" do g="${x%/LINIE.HTM}" done fi fi fi #----------------------------- h1=`date +'%H'` #----------------------------- if [ "$h1" -eq '23' ] ; then h2='00' h3='1' elif [ "$h1" -eq '22' ] ; then h2='23' h3='00' fi #----------------------------- a_1=`w3m -dump "$g/$1/$2.HTM" | c= grep "| $h1 |"` #------ a_2=`w3m -dump "$g/$1/$2.HTM" | c= grep "| $h2 |"` #------ a_3=`w3m -dump "$g/$1/$2.HTM" | c= grep "| $h3 |"` #echo $a #----------------------------- for x in "${a_1#*| $h1 |}" do b1_1="${x%\|*|*|}" done #------ for x in "${a_2#*| $h2 |}" do b1_2="${x%\|*|*|}" done #------ for x in "${a_3#*| $h3 |}" do b1_3="${x%\|*|*|}" done #------ #echo $a #echo $b #c1=${b1%\|*|*|} #----------------------------- for x in "${a_1#|*|*|*|}" do b2_1="${x%\|}" done #------ for x in "${a_2#|*|*|*|}" do b2_2="${x%\|}" done #------ for x in "${a_3#|*|*|*|}" do b2_3="${x%\|}" done # ------ # c2=${b2%\|} #----------------------------- #echo $c
if [ `date +'%u'` -le 5 ] ; then echo 'tramwaj linii' $1 'w dni powszednie przyjedze o godzinie' $h1 'minut' $b1_1 echo 'tramwaj linii' $1 'w dni powszednie przyjedze o godzinie' $h2 'minut' $b1_2 echo 'tramwaj linii' $1 'w dni powszednie przyjedze o godzinie' $h3 'minut' $b1_3 else echo 'pojazd linii' $1 'w święta i soboty przyjedze o godzinie' $h1 'minut' $b2_1 echo 'pojazd linii' $1 'w święta i soboty przyjedze o godzinie' $h2 'minut' $b2_2 echo 'pojazd linii' $1 'w święta i soboty przyjedze o godzinie' $h3 'minut' $b2_3 fi
#echo `date +'%d.%m.%Y'` #echo `date +'%H.%M.%S'`
i otrzymujemy
więc wchodzimy na ZTM[http://www.ztm.waw.pl] np. linia 7 przystanek wójnicka sprawdzamy URL w naszej przeglądarce i otrzymamy pid przystanku musimy tylko podać linię i pid przystanku jako argumenty a skrypt sam sobie to poznajduje
O godzinie 00 pojazd nie przyjedzie http://debian.linux.pl/images/smiles/icon_mrgreen.gif
jeszcze trzeba zrobić poprawkę do np. ale aktualnie nie ma tego więc nie mogę sprawdzić ścieżek
ale kolega jest ze szczecina więc korzysta chyba z http://www.zditm.szczecin.pl/ więc trzeba będzie troszkę poprawić, jakieś 7 linijek ale dzisiaj nie zdąże
zanotowane.pldoc.pisz.plpdf.pisz.plminister.pev.pl
|