A photo of Evan Pratten
Evan Pratten

Digest Bot

My mornings start with a bit of reading

Each morning, shortly after I’ve woken up, I receive an email.

Subject: Your digest for Wednesday, January 03
From: Digest Bot <[email protected]>
Good morning, this is your daily digest for Wednesday January 03, 2024.

Daytime weather is expected to be cloudy. 30 percent chance of flurries
early this morning. Wind becoming southwest 20 km/h this morning. High
plus 3. UV index 1 or low.

The following new articles have been published recently:
>> Xe Iaso
   - New Year's Resolutions
     URL: https://xeiaso.net/videos/2023/new-years-resolutions/

>> John Graham-Cumming
   - Complete restoration of an IBM "Butterfly" ThinkPad 701c
     URL: http://blog.jgc.org/2023/12/restoration-of-ibm-thinkpad-701c.html

Its an email I quite look forward to, sent by a trusty Cron job that’s been running for the past few months.

Why?

I spend a fair bit of time reading other people’s blogs. Its where most of the ideas, and nearly 100% of the motivation for this one stem from.

My list of blogs to keep an eye on has grown quite a bit since I started this habit back in 2017. During that time, I’ve come up with a little list of comments about interacting with blogs via RSS feeds:

So, after many years of building half-baked custom readers, and trying everything available on the Play Store, I decided to take an entirely different approach to keeping up with my favorite blogs.

How the Digest Bot works

Digest Bot is a Python script triggered by a Cron job every morning.

Once triggered, it downloads a copy of the RSS file for each blog I’m “following”, and checks for new articles against an SQLite database of previously seen ones.

It then makes a quick query to weather.gc.ca to get the weather for the day, constructs a plaintext email with the weather and new articles, then logs into my SMTP server and sends me an email.

All subscription management is handled in an SQLite database that I can easily back up and hand-edit if needed.

Why email?

I’m not quite sure how I got this idea in the first place, but I like basing this service around email for a few reasons:

Closing thoughts

Make little scripts to solve your problems. Its rewarding.