Add a cache

This commit is contained in:
Nexus 2024-04-19 10:38:32 +01:00
parent 6877220a4c
commit c8baea8646
Signed by: nex
GPG key ID: 0FA334385D0B689F

View file

@ -1,10 +1,12 @@
import requests
import json
import logging
import time
from flask import Flask, request
app = Flask(__name__)
logging.basicConfig(level=logging.INFO)
cache = {}
@app.get("/")
@ -13,6 +15,14 @@ def ip():
ip = request.headers["X-Forwarded-For"]
else:
ip = request.remote_addr
if ip in cache:
data, timestamp = cache[ip]
if time.time() - timestamp < 3600:
logging.info("cache hit for %s", ip)
return data, 200
logging.info("cache expired for %s", ip)
logging.info("looking up IP info for %s", ip)
try:
response = requests.get(
@ -44,4 +54,5 @@ def ip():
data.pop("legalese", None)
data.pop("source", None)
data.pop("brexitRequired", None)
cache[ip] = [data, time.time()]
return data, response.status_code