Monitor Passport Readiness on Russian Embassy site

If you ever tried to get a Russian international passport in the United States, you know that embassy has a funny procedure of notifying about passport readiness. They publish a list of all people who can come and grab their new passport on a single HTML page (with broken layout).

Yes, that stupid. Here is this page: Ready Passports. It’s all in the Russian language, but you can get the idea.

There are no SMS or e-mail notifications, everyone just has to open this page from time to time and search for his name in this list. It’s not that bad if you have Kibitzr running. I have mine running on my desktop, added to AutoStart.

Here is the check I use to get an e-mail once my Passport will be ready:

checks : - name : Passport url : http://www.russianembassy.org/ru/page/информация-о-готовности-паспортов transform : - text - bash : grep -i -e 'Демин' -e 'Дёмин' - changes : verbose notify : - mailgun period : 8 hours error : ignore

Let’s break it down. First item - name - is used in logging and e-mail subject. Then URL, nothing special. Then goes the list of transforms. First transform, text , takes HTML and strips all tags out leaving me with clear text. Second, bash , calls bash command on results of text . It executes grep with two alternatives of my last name since I’m not sure how it will appear. Third transform, changes , saves results in a git repository and passes verbose git log forward only if something has changed. Then goes the list of notifications. I have only one - mailgun. I registered a free account with them and authorized my e-mail address. Here is my mailgun configuration in kibitzr-creds.yml :

mailgun : key : key-b31874e8c06bd9e21080d1d667e3a280 domain : sandbox9ad289034b0fbcaaa11b575a97805a89.mailgun.org to : Peter Demin <peterdemin@gmail.com>

I configured polling period for 8 hours, there is no rush to take the passport, but I want to check more often than once a day. The last line defines what to do in case of error. As you can expect from guys, who build notification services as a public list of names, their site is… Flaky, so to say. I don’t want to know how low their uptime is, so I ignore all errors. Without this line, I would receive error report for every failure.