Sleduje kalendár voľných jázd na RSAS Online — rezervačný systém, ktorý používa veľa autoškôl na Slovensku — a keď sa počet voľných termínov zmení, hneď ti napíše na Telegram. Ideálne, keď je tvoja obľúbená autoškola dlho vypredaná a chceš vedieť presne v momente, keď sa niečo uvoľní (napr. po zrušení termínu iným žiakom), aby si si to stihol zarezervovať ako prvý.
Pôvodne som si to napísal len pre seba na konkrétnu autoškolu — tu je to prerobené tak, aby to vedel nastaviť ktokoľvek, kto má účet v ľubovoľnej autoškole na RSAS Online.
RSAS Online má pre každú autoškolu vlastnú adresu v tvare:
https://rsas.online/sk/rsas.<NAZOV_SKOLY>/run
Skript sa cez headless Chrome prihlási na tvoj účet, otvorí kalendár a spočíta voľné termíny (calendar_i_item_day). Porovná to s posledným behom — ak sa počet zvýšil alebo znížil, pošle Telegram správu. Ak sa nič nemení, raz za cooldown_hours (default 48h) pošle len pripomienku, že niečo je stále voľné.
Otvor si prihlasovaciu stránku svojej autoškoly (odkaz by si mal mať od inštruktora/autoškoly) a pozri sa do URL — časť za rsas. a pred /run je tvoj slug, napr. autoskolaseligavaclav.
Potrebuješ Python 3.9+, Chromium a k nemu odpovedajúci chromedriver.
sudo apt install -y chromium chromium-driver # Debian/Ubuntu
pip install -r requirements.txtAk máš Chrome/Chromium inde než /usr/bin/chromium, uprav CHROME_BINARY na začiatku watch_autoskola.py.
cp config.example.json config.jsonVyplň:
rsas_school— slug tvojej autoškoly (viď vyššie)rsas_username,rsas_password— prihlasovacie údaje do RSAS Online (rovnaké ako na webe/appke autoškoly)telegram_bot_token— vytvor si bota cez @BotFather na Telegrame (/newbot)telegram_chat_id— napíš svojmu botovi čokoľvek a potom zisti chat_id cezhttps://api.telegram.org/bot<TOKEN>/getUpdates
Všetky hodnoty sa dajú namiesto config.json nastaviť aj cez premenné prostredia (RSAS_SCHOOL, RSAS_USERNAME, RSAS_PASSWORD, TELEGRAM_BOT_TOKEN, TELEGRAM_CHAT_ID).
python3 watch_autoskola.pySkript beží jednorazovo (prihlási sa, skontroluje, prípadne pošle správu, skončí) — na pravidelné sledovanie ho pridaj do crontabu, napr. každých 15 minút:
crontab -e*/15 * * * * cd /cesta/k/autoskola && /usr/bin/python3 watch_autoskola.py >> watch.log 2>&1
Selektor calendar_i_item_day a prihlasovací formulár (username/password polia, ApModul.data.LoginSubmit()) sú overené na jednej konkrétnej autoškole — RSAS Online síce používa rovnaký systém pre všetky školy, ale ak by sa u teba kalendár rendroval inak (napr. iná trieda pre voľné vs. obsadené termíny), pozri si DOM cez vývojárske nástroje v prehliadači a uprav selektor v watch_autoskola.py.
Osobný projekt, voľne použiteľný a upraviteľný.