blob: b18517785759e6380872675efc66d01dd3e87f66 [file] [log] [blame]
import random, string, datetime, time
from wptserve.utils import isomorphic_decode, isomorphic_encode
def id_token():
letters = string.ascii_lowercase
return ''.join(random.choice(letters) for i in range(20))
def main(request, response):
is_revalidation = request.headers.get(b"If-None-Match", None)
token = request.GET.first(b"token", None)
is_query = request.GET.first(b"query", None) != None
with request.server.stash.lock:
value = request.server.stash.take(token)
count = 0
if value != None:
count = int(value)
if is_query:
if count < 2:
request.server.stash.put(token, count)
else:
if is_revalidation is not None:
count = count + 1
request.server.stash.put(token, count)
if is_query:
headers = [(b"Count", isomorphic_encode(str(count))), (b"Test", isomorphic_encode(str(request.raw_headers)))]
content = ""
return 200, headers, content
else:
unique_id = id_token()
headers = [(b"Content-Type", b"text/html"),
(b"Cache-Control", b"private, max-age=0, stale-while-revalidate=60"),
(b"ETag", b'"swr"'),
(b"Unique-Id", isomorphic_encode(unique_id))]
content = "<body>{}</body>".format(unique_id)
return 200, headers, content