Cache headers for browsers
This commit is contained in:
parent
eb3a7d9179
commit
7d6538d31e
27
twitfix.py
27
twitfix.py
@ -70,7 +70,7 @@ def twitfix(sub_path):
|
|||||||
if e is not None:
|
if e is not None:
|
||||||
return message(msgs.failedToScan+msgs.failedToScanExtra+e)
|
return message(msgs.failedToScan+msgs.failedToScanExtra+e)
|
||||||
return message(msgs.failedToScan)
|
return message(msgs.failedToScan)
|
||||||
return getTemplate("rawvideo.html",vnf,"","",clean,"","","","")
|
return make_cached_vnf_response(vnf,getTemplate("rawvideo.html",vnf,"","",clean,"","","",""))
|
||||||
elif request.url.startswith("https://d.vx"): # Matches d.fx? Try to give the user a direct link
|
elif request.url.startswith("https://d.vx"): # Matches d.fx? Try to give the user a direct link
|
||||||
if user_agent in generate_embed_user_agents:
|
if user_agent in generate_embed_user_agents:
|
||||||
twitter_url = config['config']['url'] + "/"+sub_path
|
twitter_url = config['config']['url'] + "/"+sub_path
|
||||||
@ -161,7 +161,7 @@ def rendercombined():
|
|||||||
finalImg = finalImg.convert("RGB")
|
finalImg = finalImg.convert("RGB")
|
||||||
finalImg.save(imgIo, 'JPEG',quality=70)
|
finalImg.save(imgIo, 'JPEG',quality=70)
|
||||||
imgIo.seek(0)
|
imgIo.seek(0)
|
||||||
return send_file(imgIo, mimetype='image/jpeg')
|
return send_file(imgIo, mimetype='image/jpeg',max_age=86400)
|
||||||
|
|
||||||
def upgradeVNF(vnf):
|
def upgradeVNF(vnf):
|
||||||
# Makes sure any VNF object passed through this has proper fields if they're added in later versions
|
# Makes sure any VNF object passed through this has proper fields if they're added in later versions
|
||||||
@ -184,6 +184,23 @@ def upgradeVNF(vnf):
|
|||||||
def getDefaultTTL(): # TTL for deleting items from the database
|
def getDefaultTTL(): # TTL for deleting items from the database
|
||||||
return datetime.today().replace(microsecond=0) + timedelta(days=1)
|
return datetime.today().replace(microsecond=0) + timedelta(days=1)
|
||||||
|
|
||||||
|
def secondsUntilTTL(ttl):
|
||||||
|
if ttl < datetime.today().replace(microsecond=0):
|
||||||
|
return 0
|
||||||
|
return (ttl - datetime.today().replace(microsecond=0)).total_seconds()
|
||||||
|
|
||||||
|
def make_cached_vnf_response(vnf,response):
|
||||||
|
try:
|
||||||
|
if vnf['ttl'] == None or vnf['ttl'] < datetime.today().replace(microsecond=0) or 'ttl' not in vnf:
|
||||||
|
return response
|
||||||
|
resp = make_response(response)
|
||||||
|
resp.cache_control.max_age = secondsUntilTTL(vnf['ttl'])
|
||||||
|
resp.cache_control.public = True
|
||||||
|
return resp
|
||||||
|
except Exception as e:
|
||||||
|
log.error("Error making cached response: " + str(e))
|
||||||
|
return response
|
||||||
|
|
||||||
def vnfFromCacheOrDL(video_link):
|
def vnfFromCacheOrDL(video_link):
|
||||||
cached_vnf = getVnfFromLinkCache(video_link)
|
cached_vnf = getVnfFromLinkCache(video_link)
|
||||||
if cached_vnf == None:
|
if cached_vnf == None:
|
||||||
@ -481,14 +498,14 @@ def embed(video_link, vnf, image):
|
|||||||
if vnf['nsfw'] == True:
|
if vnf['nsfw'] == True:
|
||||||
color = "#800020" # Red
|
color = "#800020" # Red
|
||||||
|
|
||||||
return getTemplate(template,vnf,desc,image,video_link,color,urlDesc,urlUser,urlLink,appNamePost,embedVNF)
|
return make_cached_vnf_response(vnf,getTemplate(template,vnf,desc,image,video_link,color,urlDesc,urlUser,urlLink,appNamePost,embedVNF))
|
||||||
|
|
||||||
|
|
||||||
def embedCombined(video_link):
|
def embedCombined(video_link):
|
||||||
vnf,e = vnfFromCacheOrDL(video_link)
|
vnf,e = vnfFromCacheOrDL(video_link)
|
||||||
|
|
||||||
if vnf != None:
|
if vnf != None:
|
||||||
return embedCombinedVnf(video_link, vnf)
|
return make_cached_vnf_response(vnf,embedCombinedVnf(video_link, vnf))
|
||||||
else:
|
else:
|
||||||
if e is not None:
|
if e is not None:
|
||||||
return message(msgs.failedToScan+msgs.failedToScanExtra+e)
|
return message(msgs.failedToScan+msgs.failedToScanExtra+e)
|
||||||
@ -524,7 +541,7 @@ def embedCombinedVnf(video_link,vnf):
|
|||||||
|
|
||||||
if vnf['nsfw'] == True:
|
if vnf['nsfw'] == True:
|
||||||
color = "#800020" # Red
|
color = "#800020" # Red
|
||||||
return getTemplate('image.html',vnf,desc,image,video_link,color,urlDesc,urlUser,urlLink,appNameSuffix=" - View original tweet for full quality")
|
return make_cached_vnf_response(vnf,getTemplate('image.html',vnf,desc,image,video_link,color,urlDesc,urlUser,urlLink,appNameSuffix=" - View original tweet for full quality"))
|
||||||
|
|
||||||
|
|
||||||
def getPollObject(card):
|
def getPollObject(card):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user