63 lines
1.7 KiB
Python
63 lines
1.7 KiB
Python
from urllib import request as req
|
|
import base64
|
|
|
|
# running on AWS Lambda (currently)
|
|
def lambda_handler(event, context):
|
|
# check is date has been passed in the event, else use today
|
|
print("EVT", event)
|
|
if ('body' in event):
|
|
b64date = event['body']
|
|
try:
|
|
date = base64.b64decode(b64date).decode("utf8")
|
|
except:
|
|
date = event['body']
|
|
print("sanity check:", date, type(date))
|
|
return comicWithDate(date)
|
|
|
|
r = req.Request('https://www.creators.com/read/heathcliff', headers={'User-Agent': 'Mozilla/5.0'})
|
|
html = req.urlopen(r).read().decode("utf8")
|
|
|
|
urlStart = html.index('https://cdn.alphacomedy.com')
|
|
imageUrl = html[urlStart:].split("\"")[0]
|
|
|
|
response = {
|
|
'statusCode': 200,
|
|
'body': imageUrl
|
|
}
|
|
|
|
return response
|
|
|
|
|
|
# date is a string, formatted as %Y/%m/%d
|
|
def comicWithDate(date):
|
|
notFoundURL = 'https://cdn.discordapp.com/attachments/760773607550353428/1120629965721960498/heathcliff_notfound.png'
|
|
|
|
html = None
|
|
comicURL = f"https://www.gocomics.com/heathcliff/{date}"
|
|
|
|
r = req.Request(comicURL, headers={'User-Agent': 'Mozilla/5.0'})
|
|
|
|
try:
|
|
html = req.urlopen(r).read().decode("utf8")
|
|
except:
|
|
return {
|
|
'statusCode': 404,
|
|
'body': notFoundURL
|
|
}
|
|
|
|
# check to make sure image exists today (it REALLY should given the above block but idc im being cautious)
|
|
if "data-image" in html:
|
|
urlStart = html.index("data-image") + 12
|
|
imageUrl = html[urlStart:].split("\"")[0]
|
|
else:
|
|
return {
|
|
'statusCode': 404,
|
|
'body': notFoundURL
|
|
}
|
|
|
|
response = {
|
|
'statusCode': 200,
|
|
'body': imageUrl
|
|
}
|
|
|
|
return response |