stale-script.py (1025B)
1 import random, string 2 3 def id_token(): 4 letters = string.ascii_lowercase 5 return b''.join(random.choice(letters).encode("utf-8") for i in range(20)) 6 7 def main(request, response): 8 token = request.GET.first(b"token", None) 9 is_query = request.GET.first(b"query", None) != None 10 with request.server.stash.lock: 11 value = request.server.stash.take(token) 12 count = 0 13 if value != None: 14 count = int(value) 15 if is_query: 16 if count < 2: 17 request.server.stash.put(token, count) 18 else: 19 count = count + 1 20 request.server.stash.put(token, count) 21 22 if is_query: 23 headers = [(b"Count", count)] 24 content = u"" 25 return 200, headers, content 26 else: 27 unique_id = id_token() 28 headers = [(b"Content-Type", b"text/javascript"), 29 (b"Cache-Control", b"private, max-age=0, stale-while-revalidate=60"), 30 (b"Unique-Id", unique_id)] 31 content = b"report('%s')" % unique_id 32 return 200, headers, content