TTL for cache entries
This commit is contained in:
parent
f640ac69a1
commit
014f9d0e8d
1 changed files with 25 additions and 16 deletions
25
twitfix.py
25
twitfix.py
|
@ -10,7 +10,7 @@ import re
|
||||||
import os
|
import os
|
||||||
import urllib.parse
|
import urllib.parse
|
||||||
import urllib.request
|
import urllib.request
|
||||||
from datetime import date
|
from datetime import date,datetime, timedelta
|
||||||
|
|
||||||
app = Flask(__name__)
|
app = Flask(__name__)
|
||||||
CORS(app)
|
CORS(app)
|
||||||
|
@ -196,6 +196,9 @@ def favicon():
|
||||||
return send_from_directory(os.path.join(app.root_path, 'static'),
|
return send_from_directory(os.path.join(app.root_path, 'static'),
|
||||||
'favicon.ico',mimetype='image/vnd.microsoft.icon')
|
'favicon.ico',mimetype='image/vnd.microsoft.icon')
|
||||||
|
|
||||||
|
def getDefaultTTL():
|
||||||
|
return datetime.today().replace(microsecond=0) + timedelta(days=1)
|
||||||
|
|
||||||
def direct_video(video_link): # Just get a redirect to a MP4 link from any tweet link
|
def direct_video(video_link): # Just get a redirect to a MP4 link from any tweet link
|
||||||
cached_vnf = getVnfFromLinkCache(video_link)
|
cached_vnf = getVnfFromLinkCache(video_link)
|
||||||
if cached_vnf == None:
|
if cached_vnf == None:
|
||||||
|
@ -241,7 +244,7 @@ def embed_video(video_link, image=0): # Return Embed from any tweet link
|
||||||
else:
|
else:
|
||||||
return embed(video_link, cached_vnf, image)
|
return embed(video_link, cached_vnf, image)
|
||||||
|
|
||||||
def tweetInfo(url, tweet="", desc="", thumb="", uploader="", screen_name="", pfp="", tweetType="", images="", hits=0, likes=0, rts=0, time="", qrt={}, nsfw=False): # Return a dict of video info with default values
|
def tweetInfo(url, tweet="", desc="", thumb="", uploader="", screen_name="", pfp="", tweetType="", images="", hits=0, likes=0, rts=0, time="", qrt={}, nsfw=False,ttl=getDefaultTTL()): # Return a dict of video info with default values
|
||||||
vnf = {
|
vnf = {
|
||||||
"tweet" : tweet,
|
"tweet" : tweet,
|
||||||
"url" : url,
|
"url" : url,
|
||||||
|
@ -257,7 +260,8 @@ def tweetInfo(url, tweet="", desc="", thumb="", uploader="", screen_name="", pfp
|
||||||
"rts" : rts,
|
"rts" : rts,
|
||||||
"time" : time,
|
"time" : time,
|
||||||
"qrt" : qrt,
|
"qrt" : qrt,
|
||||||
"nsfw" : nsfw
|
"nsfw" : nsfw,
|
||||||
|
"ttl" : ttl
|
||||||
}
|
}
|
||||||
return vnf
|
return vnf
|
||||||
|
|
||||||
|
@ -383,19 +387,24 @@ def getVnfFromLinkCache(video_link):
|
||||||
print(" ➤ [ X ] Link not in json cache")
|
print(" ➤ [ X ] Link not in json cache")
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
def serializeUnknown(obj):
|
||||||
|
if isinstance(obj, (datetime, date)):
|
||||||
|
return obj.isoformat()
|
||||||
|
raise TypeError ("Type %s not serializable" % type(obj))
|
||||||
|
|
||||||
def addVnfToLinkCache(video_link, vnf):
|
def addVnfToLinkCache(video_link, vnf):
|
||||||
if link_cache_system == "db":
|
|
||||||
try:
|
try:
|
||||||
|
if link_cache_system == "db":
|
||||||
out = db.linkCache.insert_one(vnf)
|
out = db.linkCache.insert_one(vnf)
|
||||||
print(" ➤ [ + ] Link added to DB cache ")
|
print(" ➤ [ + ] Link added to DB cache ")
|
||||||
return True
|
return True
|
||||||
except Exception:
|
|
||||||
print(" ➤ [ X ] Failed to add link to DB cache")
|
|
||||||
return None
|
|
||||||
elif link_cache_system == "json":
|
elif link_cache_system == "json":
|
||||||
link_cache[video_link] = vnf
|
link_cache[video_link] = vnf
|
||||||
with open("links.json", "w") as outfile:
|
with open("links.json", "w") as outfile:
|
||||||
json.dump(link_cache, outfile, indent=4, sort_keys=True)
|
json.dump(link_cache, outfile, indent=4, sort_keys=True, default=serializeUnknown)
|
||||||
|
return None
|
||||||
|
except Exception:
|
||||||
|
print(" ➤ [ X ] Failed to add link to DB cache")
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def message(text):
|
def message(text):
|
||||||
|
|
Loading…
Reference in a new issue