I’ve been keeping an eye on the ‘Cellular for Nova Scotia Program’, which is a government-funded initiative to upgrade cell towers all across the province in order to bolster cellular connectivity. It’s a highly-essential project that I’ve been watching for a few years now.
Progress has been a bit slow lately, and I’ve even noticed a few errors with updates to the progress pages. For example, a tower upgrade that is now complete has not been tagged as such. Rather, its smaller, less-visible ‘In service’ tag is now displayed in place of its previous ‘Underway’ status tag.
I’ve been in the habit of checking my area’s page almost every day to see if my local tower has had its upgrades completed, or its deadline pushed back. It’s frustrating checking a page everyday eagerly waiting for a sign of news, only to be met with what seems like a dead page. An intern’s job for later.
So, I was consulting with Claude AI, and I had it devise me a python script, which runs in a virtual environment, that parses the webpage every morning, and check the status of my local tower. It compares the status string to its previous value, and once there is a change detected (hopefully not too far off in the future) it will send me a notification to my phone.
The notification is handled by sending a POST request to a ntfy topic that I’ve set up specifically for this purpose.
ntfy is an application, available on web, iOS and Android, that allows you to send push notifications for nearly anything you want. You can also send messages with it sort of like texting. The only downside is you need to create a topic for the notification channel. The topic name has to be unique and obscure, because if anyone guesses it, they can read all your notifications.
I elected to use a random string of base64 as the topic name for this purpose. I would recommend anyone do the same for sensitive notification channels.
At the end of the day, there will only be one notification sent to this channel, and that will be on the day there is a status update for the cell tower in my region. Then, the script will have served its purpose, and will no longer be needed.
I have also used ntfy for another purpose, which is much larger in scope than this small python script. I will share that project here soon, and hopefully you will enjoy reading it as much as you did reading about this one!
