Automating My Now Page, Update

Another update on how my now page automation works

Although I’ve written previously (first here, then here) about how I (semi-)automated my Now page, I’ve made some substantial changes to the code and the underlying database recently, so I thought I should do a refresh.

Why automate in the first place?

The omg.lol ecosystem makes it very easy to maintain my web content, so why not just use the tools available? The biggest reason for me is to be able to keep a record of what’s been on my now page over time. The other reason, if I’m being totally honest, is the challenge and fun of it.

Why not automate fully then?

I’ve seen some folks—most notably, Cory D and Robb—doing some pretty cool shit stuff like dynamically pulling in content from online services like last.fm, Trakt, and Oku. The main problem with that for me is that I don’t use most of those services and I’m not looking to start now. (I try to be open-minded so if there’s something huge that I’m missing out on that’ll make my life easier then I’m open to learning about it.) The other problem is that I’m lazy and don’t want to build a whole bunch of integrations across multiple APIs. I am a bear of very little brain, so I like things to be simple.

My Requirements

This seems like a good place to talk about my requirements, which have evolved quite a bit over time.

Content Requirements

Display Requirements

Interface Requirements

Generator Requirements

The Architecture

The solution makes use of these main components:

The work flow goes like this:

  1. User creates/udpates items in a YAML file.
  2. The scheduler triggers the Lambda Function execution.
  3. The Lambda Function loads content from the YAML file (via the omg.lol API), validates it, and stores/updates it in a DynamoDB table.
  4. The Lambda Function updates the content in the YAML file, removing “old” items, while leaving the “recent” ones in place—so they can be modified later, if needed.
  5. The now page content is generated from the update data and written via the omg.lol API.

Take a Peek

At the time of writing, these links contain the current code and content that I’m using to update my Now Page.

Other Notes