ďťż
 
 
   conky i rozklad jazdy
 
 

Tematy

 
    
 

 

 

 

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.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • minister.pev.pl

  •  

     


     

     
    Copyright 2003. MĂłj serwis