Get a weekly digest from a Pelican blog

Bob, Sat 24 December 2016, Tools

feedparser, pelican, rss

Prep work

We built this blog in Pelican, adding this in adds an RSS feed:

FEED_RSS = 'feeds/all.rss.xml'

And voila, after pushing this change we have our RSS feed.

Script (use PyPi!)

The script is on github in our new blog repo.

No need to re-invent the wheel, PyPI (Python Package Index) has so much good stuff, feedparser is just what we need. It can take both a remote as well as local xml file, so you don't even need requests.

This single line parses the feed into a comprehensive data structure:

feed = feedparser.parse(xml)

Which you can then easily consume:

for article in feed['entries']:
    # ... filtering
    yield article

The only thing I had to add was some timestamp conversations/calculations to go x days back (the returned feed data has a convenient time.struct_time field).

Mail digest as txt/html in a cronjob

I left this for sendmail which accepts a mailheader, see here. So this is my weekly cronjob:

# html email 
0 7 * * 6 cat pybites_header <(python3 /path/to/pybites_digest/ 7 1) | sendmail -t

# text version for copy+paste into social media (no need to cat header file)
10 7 * * 6 python3 /path/to/pybites_digest/ 7 | mailx -s "Weekly PyBites digest (txt ed)" <email>

Don't miss any post

If you want to receive these weekly digests please subscribe to our blog or join our FB group.

PyBites Python Tips

Do you want to get 250+ concise and applicable Python tips in an ebook that will cost you less than 10 bucks (future updates included), check it out here.

Get our Python Tips Book

"The discussions are succinct yet thorough enough to give you a solid grasp of the particular problem. I just wish I would have had this book when I started learning Python." - Daniel H

"Bob and Julian are the masters at aggregating these small snippets of code that can really make certain aspects of coding easier." - Jesse B

"This is now my favourite first Python go-to reference." - Anthony L

"Do you ever go on one of those cooking websites for a recipe and have to scroll for what feels like an eternity to get to the ingredients and the 4 steps the recipe actually takes? This is the opposite of that." - Sergio S

Get the book