conky i rozklad jazdy
conky i rozklad jazdy
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?
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?
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;]
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;]
jedyny problem to:
trzeba by wymyśleć jakiś skrypt który by wybierał najbardzej aktualny rozkład hmm...Rozkłady jazdy z uwzględnieniem zmian do 11.04.2008.
Rozkłady jazdy w dniach 12-13.04.2008.
Rozkłady jazdy z uwzględnieniem zmian od 14.04.2008.
Zmiany w rozkładach jazdy
Oznaczenia tras używane w rozkładach jazdy
Rozkład jazdy SKM z uwzględnieniem zmian od 1.04.2008.
Elektroniczny Rozkład Jazdy Pociągów
Metro
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ą)
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ą)
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 :
co daje efekt
tyle że równe
A jeżeli zamienimy na
to otrzymamy
to będzie tylko o 15
pisząc mały skrypt
otrzymujemy
dzięki
mamy
teraz można by jakoś użyć funkcji grep poprzez w3m żeby sam szukał linii i aktualny rozkład
i poprzez souce_html_code
otrzymujemy
teraz trzeba napisać skrypt który odróżni "zmian do" i "zmian od" oraz odróżni aktualną datę hmm...
wersja finalna
i otrzymujemy
więc wchodzimy na ZTM[[url]http://www.ztm.waw.pl][/url] np. linia 7 przystanek wójnicka
sprawdzamy URL w naszej przeglądarce i otrzymamy pid przystanku
jeszcze trzeba zrobić poprawkę do np.
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
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 :
Kod: Zaznacz cały
w3m -dump [url]http://www.ztm.waw.pl/baza/20080416/7/103001.HTM[/url] | grep '| '
Kod: Zaznacz cały
skynet@debian:~$ w3m -dump [url]http://www.ztm.waw.pl/baza/20080416/7/103001.HTM[/url] | 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 |
A jeżeli zamienimy na
Kod: Zaznacz cały
skynet@debian:~$ w3m -dump [url]http://www.ztm.waw.pl/baza/20080416/7/103001.HTM[/url] | grep '| 15 |'
Kod: Zaznacz cały
| 15 | 11 [23] 35 47 59 | 15 | 03 18 33 48 |
pisząc mały skrypt
Kod: Zaznacz cały
#!/bin/sh
a=$(w3m -dump [url]http://www.ztm.waw.pl/baza/20080416/7/103001.HTM[/url] | 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
Kod: Zaznacz cały
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
Kod: Zaznacz cały
echo `date +'%d.%m.%Y'`
echo `date +'%H.%M.%S'`
Kod: Zaznacz cały
14.04.2008
17.58.04
i poprzez souce_html_code
Kod: Zaznacz cały
w3m -dump_source [url]http://www.ztm.waw.pl/rozklady.php[/url] | grep -i 'href="http://www.ztm.waw.pl' | grep -v -i 'komunikaty' | grep -v -i 'mdd' | grep -v -i 'SKM'
Kod: Zaznacz cały
skynet@debian:~$ w3m -dump_source [url]http://www.ztm.waw.pl/rozklady.php[/url] | grep -i 'href="http://www.ztm.waw.pl' | grep -v -i 'komunikaty' | grep -v -i 'mdd' | grep -v -i 'SKM'
[url=http://www.ztm.waw.pl/baza/20080414/LINIE.HTM]Rozk�ady jazdy z uwzgl�dnieniem zmian do 15.04.2008.[/url]
[url=http://www.ztm.waw.pl/baza/20080416/LINIE.HTM]Rozk�ady jazdy z uwzgl�dnieniem zmian od 16.04.2008.[/url]
wersja finalna
Kod: Zaznacz cały
#!/bin/sh
#-----------------------------
c=`w3m -dump_source [url]http://www.ztm.waw.pl/rozklady.php[/url] | 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'`
więc wchodzimy na ZTM[[url]http://www.ztm.waw.pl][/url] 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 przyjedzieskynet@debian:~$ sh '/home/skynet/Desktop/1.sh' 7 103001
pojazd linii 7 w dni powszednie przyjedze o godzinie 22 minut 10 31 52
pojazd linii 7 w dni powszednie przyjedze o godzinie 23 minut 12m
pojazd linii 7 w dni powszednie przyjedze o godzinie 00 minut
jeszcze trzeba zrobić poprawkę do np.
ale aktualnie nie ma tego więc nie mogę sprawdzić ścieżekRozkłady jazdy z uwzględnieniem zmian w dniu 26.04.2008.
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