Portál AbcLinuxu, 1. května 2025 19:29

Vyhledávání dopravních spojení v CLI a mobilu

8.7.2008 09:52 | Přečteno: 1971×

Je tomu už nějaký ten rok, kdy jsem krátkodobě podlehl J2ME mánii a rozepsal (ne nutně dopsal) pár prográmků a her pro svůj mobilní telefon, dnes již obstarožní Siemens C55. Světlo světla tak spatřil remake ruské automatové klasiky Kuchař ("žonglování" s produkty závodní jídelny) a o trochu méně známý Juggler (vizuálně chudé žonglování se třemi míčky).

Už si ani nepamatuji, kdy naposled jsem některý z těchto programů spustil. Až na jednu výjimku, kterou je program na vyhledávání dopravních spojení prostřednictvím serveru idos.cz. Myšlenka byla vcelku jednoduchá a naprosto neoriginální. Napsat do mobilu aplikaci, jež se bude připojovat (přes GPRS, ne dražší WAP) na Idos a jeho prostřednictvím vyhledávat dopravní spojení v ČR a v MHD v Brně. Abych toho v Javě programoval co nejméně (postupně se mi začala protivit) a zredukoval datové přenosy, napsal jsem jako prostředníka cgi skript v Pythonu, který prováděl ono dotazování prostřednictvím webového formuláře Idosu a zpátky posílal už jen vyparsované výsledky. Ty se přímo předhodily mobilnímu telefonu.

Celé ty roky tento program využivali jen dva lidé. Já a jeden můj kamarád, kterého jsem však už delší dobu neviděl. Vím, že o něco později vznikl minimálně ještě jeden podobný (a co se týče možností bohatší) program (na jméno si již nevzpomenu), ale ten odmítal v mé C55 fungovat a proto jsem zůstal u toho mého. Koneckonců fungoval, co víc bych si přál.

Nedávno se ve mně probudily nostalgické vzpomínky a já se rozhodl onen skript přepsat. Původním cílem bylo namísto dvou skriptů (jeden pro dopravní spojení v ČR a druhý pro MHD v Brně) mít skript jeden, použitelný přímo v CLI. Druhým pak umožnit vyhledávání i v MHD jiných měst (přece jen jednou za čas i někam vyjedu). Tak se i stalo a výsledkem je skript (samozřejmě v Pythonu) pro hledání dopravních spojení v CLI. Dále bylo nutné přepsat (raději kompletně, avšak stále v MIDP 1.0, aby ji dědeček telefon zvládl) aplikaci do mobilu tak, aby vhodně využívala toto nové rozhraní a to dostatečně univerzálně, konkrétně aby případné přidání možnosti vyhledávat v MHD "nového" města nevyžadovalo úpravu aplikace v mobilu. Včera se zadařilo dokončit i toto a já si zas můžu uživat pocitu z nového a (doufám že i) fungujícího programu. Ne, že by uměl něco více, než ten předchozí (který stále funguje), ale potřebě začít znovu na čistém stole bylo učiněno zadost.

Uvažoval jsem nad tím, zda by můj skript/aplikace nebyl užitečný i pro ostatní. Jenže možná už tu podobná (a lepší) aplikace existuje a navíc je můj styl programování i přes ty uplynulé roky stále ještě "prasečí". Proto bych Vás rád požádal, abyste v diskuzi vyjádřili svůj názor a případně uvedli i název (web) podobného programu, pokud takový znáte.

Na závěr jen ukázka fungování skriptu v CLI:

$ ./spoje.py

Program hleda dopravni spoje prostrednictvim serveru idos.cz
Pouziti:  spoje.py [argumenty] typ_spoje odkud[:kod] kam[:kod]
Argumenty:
    typ_spoje  jedna z nasledujicich moznosti:
        vlak - vlakova spojeni v CR
        bus - autobusove spoje v CR
        komb - kombinace autobusovych a vlakovych spoju v CR
        Brno - MHD v Brne (vcetne IDS JMK)
        Praha - MHD v Praze
    kod  retezec identifikujici misto v pripade nejednoznacneho zadani
    -c  cas odjezdu (defaultni hodnotou je aktualni cas)
    -d  datum odjezdu (defaultni hodnotou je aktualni datum)
    -p  maximalni pocet prestupu (defaultni hodnota 3)
    -s  pocet hledanych spoju (defaultni hodnota 5)
    -b  batch mode - nepta se na chybejici data

$ ./spoje.py brno novolisenska cervinkova
----------
Datum: 8.7.
  *    9:46  Novolíšeňská, 101, tramvaj 8
 9:56 10:00  Masná, 100, tramvaj 13
10:21   *    Červinkova, 101

35 min, 11 km, Základní 15 Kč
----------
Datum: 8.7.
  *    9:52  Novolíšeňská, 101, tramvaj 8
10:06 10:10  Hlavní nádraží, 100, tramvaj 12
10:27   *    Červinkova, 101

35 min, 11 km, Základní 15 Kč
----------
Datum: 8.7.
  *    9:58  Novolíšeňská, 101, tramvaj 8
10:08 10:12  Masná, 100, tramvaj 13
10:33   *    Červinkova, 101

35 min, 11 km, Základní 15 Kč
----------
Datum: 8.7.
  *   10:04  Novolíšeňská, 101, tramvaj 8
10:18 10:22  Hlavní nádraží, 100, tramvaj 12
10:39   *    Červinkova, 101

35 min, 11 km, Základní 15 Kč
----------
Datum: 8.7.
  *   10:10  Novolíšeňská, 101, tramvaj 8
10:20 10:24  Masná, 100, tramvaj 13
10:45   *    Červinkova, 101

35 min, 11 km, Základní 15 Kč

$ # aby bylo videt, ze my brnaci proti prazakum nic nemame :-)
$ ./spoje.py -s 2 praha albertov babice
Upřesněte výběr
1) Babice
2) Babice,Babičky
Vaše volba: 1
----------
Datum: 8.7.
  *   10:07  Albertov, tramvaj 24
10:14   *    Nádraží Vršovice, přesun asi 5 min
  *   10:20  Praha-Vršovice,  , vlak Os 9123
10:34   *    Praha-Uhříněves, B, přesun asi 2 min
  *   10:53  Nádraží Uhříněves, B, autobus 364
11:16   *    Babice, 2

1 hod 9 min, 26 km, 38,- Kč
----------
Datum: 8.7.
  *   11:07  Albertov, tramvaj 24
11:14   *    Nádraží Vršovice, přesun asi 5 min
  *   11:20  Praha-Vršovice,  , vlak Os 9125
11:41   *    Říčany, 1, přesun asi 2 min
  *   11:48  Říčany,Pod nádražím, 1, autobus 497
12:08   *    Babice, 2

1 hod 1 min, 30 km, 38,- Kč

       

Hodnocení: 100 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

8.7.2008 10:08 Michal Čihař | skóre: 61 | blog: Bláboly | Praha
Rozbalit Rozbalit vše Re: Vyhledávání dopravních spojení v CLI a mobilu
Odpovědět | Sbalit | Link | Blokovat | Admin
Kde se ten skript a program dá stáhnout? :-)
Weblate - překládání přes web | Gammu SMSD - posílání SMS | Blog
8.7.2008 11:11 kkaarreell | skóre: 6 | blog: perkele
Rozbalit Rozbalit vše Re: Vyhledávání dopravních spojení v CLI a mobilu
No, starsi verzi skriptu jsem uz kdysi driv nekde nabizel, takze bych vlastne mohl zverejnit i ten novej. Jen si jeste rozmyslim, jakou si zvolim licenci (tak zavazne rozhodnuti jsem jeste nedelal :-) ). Ostatne, napadlo me, ze by ten skript sel take ruznym zpusobem vyuzit, treba jako plugin do IM nebo tak neco. Kazdopadne bych rad, aby, pokud jej zverejnim, program nezapadl a kdyby se pripadne i nasel nekdo, kdo by pomohl procistit (rad se priucim programovat cisteji) a vubec jej pomahal udrzovat.

S programem do mobilu je to podobne, ikdyz jsou tu jeste nejake "ale". Zaprve si nejsem jist, ze na jinem vubec bude spojeni fungovat (co si pamatuju, mel Siemens ve srovnani s jinymi znackami trochu zvlastni chovani). Ikdyz to by se dalo ve spolupraci s ostatnimi jiste upravit. Zadruhe momentalne vyuzivam skript na serveru, jehoz nejsem vlastnikem a na nemz bych se rad vyvaroval vyssiho provozu. To by se zase dalo resit presunutim ci decentralizaci skriptu. Kazdopadne by bylo dobre pred pripadnym zverejnenim provest jeste nejake upravy v kodu.

No, necham si to vsechno projit hlavou. Kazdopadne budu rad za nejake doporuceni ohledne publikovani programu. Jak jej publikovat? Na SourceForge?
8.7.2008 11:14 Michal Čihař | skóre: 61 | blog: Bláboly | Praha
Rozbalit Rozbalit vše Re: Vyhledávání dopravních spojení v CLI a mobilu
SourceForge, Berlios, Savannah, code.google.com ... je to celkem jedno :-)
8.7.2008 11:07 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
Rozbalit Rozbalit vše Re: Vyhledávání dopravních spojení v CLI a mobilu
Odpovědět | Sbalit | Link | Blokovat | Admin
Na tyhle věci používám kombinaci Bombus+netlabot.
When your hammer is C++, everything begins to look like a thumb.
8.7.2008 11:24 kkaarreell | skóre: 6 | blog: perkele
Rozbalit Rozbalit vše Re: Vyhledávání dopravních spojení v CLI a mobilu
To vypada zajimave. Umi to i MHD nebo jen spojeni mezi obcemi? Z popisu to vypada, ze jen mezi obcemi. Nebo se pletu?
8.7.2008 11:28 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
Rozbalit Rozbalit vše Re: Vyhledávání dopravních spojení v CLI a mobilu
Stačí zadat !mhd praha*nadrazi holesovice*flora. Jinak ke všem funkcím je nápověda, takže stačí zadat help !příkaz a člověk se dozví všechno potřebné.
When your hammer is C++, everything begins to look like a thumb.
8.7.2008 11:33 kkaarreell | skóre: 6 | blog: perkele
Rozbalit Rozbalit vše Re: Vyhledávání dopravních spojení v CLI a mobilu
Jo, necetl jsem pozorne. Pekny.
8.7.2008 11:07 marbu | skóre: 31 | blog: hromada | Brno
Rozbalit Rozbalit vše Re: Vyhledávání dopravních spojení v CLI a mobilu
Odpovědět | Sbalit | Link | Blokovat | Admin
Vzpomnel jsem si na podobny skript s webovym rozhranim. Spokojene jsem ho nejakou dobu pouzival s operou mini na siemensu m55. Na nazev si bohuzel nepamatuju a url uz asi nedohledam, ale mohla to byt klidne tvoje prace, protoze to bylo jinak dost podobne a umistene nekde na math.muni.cz
There is no point in being so cool in a cold world.
8.7.2008 11:26 kkaarreell | skóre: 6 | blog: perkele
Rozbalit Rozbalit vše Re: Vyhledávání dopravních spojení v CLI a mobilu
Skoda, ze uz si nevzpominas, celkem by me zajimaly podrobnosti.
8.7.2008 11:44 marbu | skóre: 31 | blog: hromada | Brno
Rozbalit Rozbalit vše Re: Vyhledávání dopravních spojení v CLI a mobilu
Tak se mi prece jen podarilo tu url najit: bylo to nekde na grr.ics.muni.cz. Ale ono je to stejne jedno, protoze uz to tam davno neni.
There is no point in being so cool in a cold world.
8.7.2008 11:50 kkaarreell | skóre: 6 | blog: perkele
Rozbalit Rozbalit vše Re: Vyhledávání dopravních spojení v CLI a mobilu
Dik. Tak to bude neco jinyho.

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.