ISOPOD.exe
August 31, 2025
This is a cute little Command Line Interface I've made; mostly to help with my monthly reports of Drinking Water Quality to the government. It's a rebuild of my original reporter script [which was the first programming I had ever done], and honestly it's a huge upgrade. About a years worth of programming under my belt now since my original so incidentaly my new code here is much cleaner and I'm pretty proud of it actually. I managed to shorten the lines of code from 2995 to 141 lol, for the reporting portion anyways. [My original script I didn't know how to use "for loops" or any sort of nuance]. Additionally my new program uses "explicit waits" vs "time.sleep()" in the webdriver making it much much cleaner + efficient.
Above ^ : Here is the main menu. I built a few functions such as a webscraper [called Private Eyeball]; which scrapes data from 3 seperate websites.
1. Latest News: My municipalities website
2. Upcoming Events: My county website
3. Latest post: My friends blog
version 1 of my webscraper was called ScrapedKnees.py, and along with webscraping it also sent me a text if the data changes/updated since the last scrape. But I only really cared about my friends blog updates. So that portion of code I snuck into my terrarium controller since it will be on 24/7 anyways it's easy enough for it to do a quick webscrape now and again while it monitors the terrarium
I also have a command that displays the current moon phase + some information as well as a cool ascii art image of the current moon phase
Similar deal as the moon phase, here I display a 2 day weather forcast for my town, as well as current weather information
The meat and potatoes of this program is the auto-reporter. It uses the selenium library to webdrive an instance of firefox. It prompts you to enter your credentials for the government website. Select the date range of the report. And finally select the excel file to be reported.
Finally it pulls the data from the excel document and enters it into the appropriate field on the webform.
This is a massive time saver for me, as there are about 25 values per day to report. Meaning 750 entries every month, with some having to be reformated from liters/day to cubic meters etc etc.
I put a lot of work into the details here, like gracefully managing errors. Printing either a success or error message to the screen to let the user (me) know what went wrong. Reporter v1.0 would just crash if it encountered an error lol.
For some reason I always get an error when trying to confirm contact info, which is a part of the log in process on the website. So I just made it retry until it works and it always does on the second try. I'm sure I could fix this up but I don't really care enough since its still functional
I write my programs on linux, so I had to rewrite portions of this to port it to windows 10 since thats what my work PC is running. Seeing as win10 is just about at its end of support/life I am sooo tempted to wipe it off and install linux there as well. Sure beats installing windows 11 spyware/bloatware
Anyways thanks for reading
--END OF TRANSMISSION--