Jsem člověk, co má rád výdaje
a vše okolo nich pod kontrolou, zvláště co se mobilního telefonu týče.
Proto mám rád Vodafone, protože poskytuje téměr aktuální informace
o tom, jak si stojím – kolik můžu vyčerpat kreditu, kolik jsem zaplatil
mimo tarif, kolik jsem přenesl dat a kolik mě to bude stát.
Vodafone sice nabízí pravidelný informační SMS, ty jsou však buď
rozdělené do několika (data a tarif zvlášť), nebo neobsahují informace,
co mě zajímají. Nehledě na tom, že zpráva měla chodit pravidelně, po
měsíci začaly být zprávy spíše nepravidelné a o aktuálnosti jsem si
bohužel mohl nechat zdát 
Vždy jsem měl ale možnost nahlédnout do Vodafone Samoobsluhy, kde jsem viděl aktuální data.
A protože jsem hračička a chtěl se přesvědčit, jestli jsem se něco
naučil v Pythonu, napsal jsem si skript, který se v pravidelném intervalu
do samoobsluhy přihlásí a zkontroluje údaje, které požaduji – ty mi
následně pošle SMSkou (pomocí mobilního emailu) 
Stáhnutí kódu je poměrně snadné. Zdroje jsem umístil na GitHub. Pro stažení je potřeba mít v počítači nainstalovaný git. Stačí vejít do nějakého adresáře a zavolat:
git clone git://github.com/Georgo/vodafone-samoobsluha.git vodafone-samoobsluha
Tím se v adresáři vodafone-samoobsluha naklonuje repozitář se skripem. Pokud v budoucnu dojde k upgradu skriptu, lze dostažení zdrojů provést pomocí příkazu
git pull
Nastavení skriptu je poměrně snadné – stačí pouze nastavit přihlašovací jméno a heslo pro Vodafone CZ Samoobsluhu a email, kam se posbírané informace odešlou. Konfigurace se nachází téměr na začátku skriptu:
class samoobsluha:
user = "Your-Phone-Number"
passwd = "Base64-encoded-Passowrd"
sendto = ["Your-Mobile-Email@vodafonemail.cz"]
sendfrom = "Email-sender"
Do položky user se zapisuje telefonní číslo bez
+420 – čili například 608123456.
Do položky passwd se zapisuje heslo k samoobsluze, pro
alespoň minimální bezpečnost je zakódované do base64. Heslo v base64 lze
získat snadno, například máte-li heslo „123456“, pak stačí z kozole
pustit intepretr python a zapsat snadný kód:
import base64
base64.encodestring("123456").strip()
Jako výsledek dostaneme:
'MTIzNDU2'
Další položkou je sendto. To nastavuje emailovou adresu,
kam budou údaje odeslány. Adres může být klidně více, stačí je oddělit
čárkou.
Poslední, ale důležitou položkou je sendfrom. To označuje
emailovou adresu, ze které bude email odeslán. Je poměrně důležité, aby
tato emailová adresa existovala, protože Vodafone Email brána tuto adresu
kontroluje a emaily z neexistujících domén zahazuje.
Nyní si to stačí nastavit jen do cronu, případně spouštět ručně a je hotovo. cron mám například nastavený takto (upozorňuji, že cesta k souboru u vás může být jiná):
45 7 * * * /usr/local/bin/samoobsluha.py || /usr/local/bin/samoobsluha.py || /usr/local/bin/samoobsluha.py
Znamená to, že se mi každý den ráno v 7:45 spustí skript. A proč tak zběsile? Hned vysvětlím.
Nebudu podrobně
popisovat funkci skriptu, od toho máte možnost nahlédnout do zdrojového
kódu. Jen ve stručnosti:
Pokud nějaký z těchto kroků selže, aplikace se ukončí jiným stavem, než unixově korektním kódem 0 – Občas nastane situace, že samoobsluha dlouho neodpovídá, nebo je chvilkově mimo provoz. Pak pomůže právě podmínka v cronu, kdy se skript zkusí spustit 3× po sobě.
Pokud nepotřebujete všechny údaje ze skriptu, fantazii se meze nekladou. Myslím, že skript je psán tak, aby šel snadno pochopit a případně upravit.
Pokud máte nějaký námět, co přidat, jak rošířit, či upravit,
připomínkám se bránit nebudu 
Webdesing & kód: Tomáš Kopečný
, tomas@kopecny.info, Praha, Česká republika, centrum holdings
Jakékoliv použití, či pouze převzetí, materiálů, textových i obrazových, je bez písemného svolení autora zapovězeno.
Komentáře
nicmoc
A co účet doma za elektřinu…
Mocela
To je docela hustotka, ale pro me, obycejneho smrtelnika, je stale rychlejsi se do samoobsluhy proste lognout a cucnout kolik tam mam i treba z mobilu :)
Snareeveadymn
bardzo ciekawe, dzieki
Nový komentář