Jednoducha terminalova aplikacia umoznujuca odchyt Regiojet.cz listkov v pripade, ze uz su vypredane. Vyuziva sluzbu notify.run, vdaka ktorej je mozne dostavat upozornenia z aplikacie na niekolkych zariadeniach zaroven - staci, ze podporuju PUSH notifikacie (tj. mobily, tablety, pocitace).
Aplikacia vyhladava listky podla konfiguracie vo forme YAML manifestu (standardny nazov config.yaml), ktora obsahuje vsetky potrebne informacie o vlaku a pozadovanom listku.
| Parameter | Popis | Mozne hodnoty |
|---|---|---|
date |
Datum odchodu vlaku | Datum vo formate "YYYY-MM-DD" |
time |
Cas odchodu vlaku | Cas vo formate "HH:MM" |
from |
Vychodzia stanica | ID lokality, viz. locations.md |
from_type |
Typ vychodzej stanice | CITY/STATION |
to |
Destinacia | ID lokality, viz. locations.md |
to_type |
Typ destinacnej stanice | CITY/STATION |
max_changes |
Maximalny pocet prestupov | Cislo >= 0 |
preffered_class |
Preferovana trieda | Kluc triedy, viz. classes.md |
tariff |
Tarif listku/listkov | Kluc tarifu/tarifov, viz. tariffs.md |
notify_code |
notify.run kanal | Kod notify.run kanala, viz. nizsie |
V ramci konfiguracneho suboru je mozne definovat viacero listkov - staci pre kluc tariff definovat take tarify listkov, ake su pozadovane. Pre jeden listok tariff moze vyzerat napriklad takto:
tariff: REGULAR
V pripade viacerych listkov (napriklad 2x Dospely, 1x Senior) vyzera nasledovne:
tariff:
- REGULAR
- REGULAR
- ISIC
Analogicky funguje aj nastavenie preferovanej triedy. V pripade jednej preferovanej triedy staci nastavit parameter preffered_class napriklad takto:
preffered_class: C1
V pripade viacerych preferovanych tried zase takto:
preffered_class:
- C1
- TRAIN_LOW_COST
Pre ukazku konfiguracneho suboru viz. config.yaml.
Pre vyuzitie sluzby notify.run staci vytvorit na stranke sluzby kanal (modre tlacidlo "Create channel"). Na stranke kanala mozno prihlasit zariadenia k odberu PUSH notifikacii (modre tlacidlo "Subscribe" na konci). Do konfiguracie je nutne zadat kod kanala, ktory sa nachadza na konci odkazu a zaroven je aj jeho nazvom.
Pre spustenie aplikacie je mozne vyuzit predpripraveny script rjchecker.py. Script je prednastaveny tak, ze vyhladava konfiguracny subor config.yaml, avsak ponuka moznost nacitat aj iny konfiguracny subor pomocou prepinaca -c <config_file>.
$ pip3 install -r requirements.txt
$ python3 rjchecker.py
$ python3 rjchecker.py -c another_config.yaml
Po spusteni aplikacia kazdych 20 sekund vyhladava pozadovanu konfiguraciu. V pripade volnych listkov odosle notifikaciu na zadany notify.run kanal a uspi sa na 5 minut. Po kliknuti na notifikaciu sa otvori prehliadac na vyhladavani Regiojet.cz so zadanou konfiguraciou.
Repozitar obsahuje Dockerfile, ktory umoznuje zbuildenie docker image. Tento image nasledne mozno spustit bez nutnosti instalovat python3 a jeho moduly. Do vytvoreneho kontajnera je nutne namountovat konfiguracny subor config.yaml do cesty /app/config.yaml. Cely postup po naklonovani repozitara moze napriklad vyzerat takto:
$ docker build -t rjchecker .
$ docker run -it -d -v $PWD/config.yaml:/app/config.yaml rjchecker