Today I leave for vacation. This is the first time I’ve left the continent in more than 5 years. One of the best parts of planning a big trip is building anticipation leading up to the date. I took this anticipation and used it to try out the APIs for Alexa’s Flash Briefing, something I check every morning for my news podcasts.
Its very much a hack. The Alexa flash briefing it not so much an API as it is an RRS feed that you can push daily updates to. I didn’t want to set up a full RSS service just for the few weeks leading up to the trip so with some help from other blog posts I managed to use AWS Lambda behind an API gateway endpoint to mock out a bare bones RRS feed server. One that just decrements a number every day.
from __future__ import print_function
import json
import datetime
def respond(err, res=None):
return {
'statusCode': '400' if err else '200',
'body': json.dumps({
"uid": "1234",
"updateDate": datetime.datetime.utcnow().isoformat() + 'Z',
"titleText": str(days_to_trip()) + " days to vacation",
"mainText": err.message if err else res['message'],
"redirectionUrl": "https://yoururl.com"
}),
'headers': {
'Content-Type': 'application/json',
},
}
def days_to_trip():
trip = datetime.datetime(2018,8,30,0,0,0,0,datetime.timezone.utc)
today = datetime.datetime.now(datetime.timezone.utc)
return (trip-today).days + 1
def lambda_handler(event, context):
rawdata = "there are " + str(days_to_trip()) + " days until your trip to europe"
reply = { "message": rawdata,
}
return respond(None, reply)
The date is hard coded the python is sloppy. But it did what I wanted, telling me every morning how many days I had left until my trip, and I was able to get it together in a couple of hours.
Soon they will start boarding for my flight and the adventure will start, the count down has reached zero.
I am so old fashioned – I just use a calendar! Bon voyage! and Goede reis!
LikeLike