Properly re-load the fetched cache data
This commit is contained in:
parent
fb0a57b7d0
commit
8ed5c8e498
1 changed files with 5 additions and 3 deletions
|
@ -1,5 +1,7 @@
|
||||||
import io
|
import io
|
||||||
|
import json
|
||||||
import os
|
import os
|
||||||
|
import time
|
||||||
import uuid
|
import uuid
|
||||||
|
|
||||||
import fastapi
|
import fastapi
|
||||||
|
@ -203,13 +205,13 @@ def preview_url(
|
||||||
metadata, _ts = result
|
metadata, _ts = result
|
||||||
if ts is None or abs(ts - _ts) < 3600:
|
if ts is None or abs(ts - _ts) < 3600:
|
||||||
logging.debug("Optimal cache hit for %r", url)
|
logging.debug("Optimal cache hit for %r", url)
|
||||||
return metadata
|
return json.loads(metadata)
|
||||||
# No close matches, get the latest one
|
# No close matches, get the latest one
|
||||||
metadata, _ts = results[-1]
|
metadata, _ts = results[-1]
|
||||||
# If the latest one is more than 3 hours old, re-fetch. Otherwise, return.
|
# If the latest one is more than 3 hours old, re-fetch. Otherwise, return.
|
||||||
if ts is None or abs(ts - _ts) < 10800:
|
if ts is None or abs(ts - _ts) < 10800:
|
||||||
logging.debug("Cache hit for %r", url)
|
logging.debug("Cache hit for %r", url)
|
||||||
return metadata
|
return json.loads(metadata)
|
||||||
|
|
||||||
domain = os.environ.get("PREVIEW_HOMESERVER", "https://" + req.url.hostname)
|
domain = os.environ.get("PREVIEW_HOMESERVER", "https://" + req.url.hostname)
|
||||||
|
|
||||||
|
@ -308,7 +310,7 @@ def preview_url(
|
||||||
with sqlite3.connect(CACHE_FILE) as conn:
|
with sqlite3.connect(CACHE_FILE) as conn:
|
||||||
conn.execute(
|
conn.execute(
|
||||||
"INSERT INTO cache (uuid, url, ts, metadata) VALUES (?, ?, ?, ?)",
|
"INSERT INTO cache (uuid, url, ts, metadata) VALUES (?, ?, ?, ?)",
|
||||||
(str(uuid.uuid4()), url, int(response.headers["date"]), str(og_tags))
|
(str(uuid.uuid4()), url, round(time.time()), json.dumps(og_tags))
|
||||||
)
|
)
|
||||||
return og_tags
|
return og_tags
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue