| import random, string, datetime |
| |
| def id_token(): |
| letters = string.ascii_lowercase |
| return ''.join(random.choice(letters) for i in range(20)) |
| |
| def main(request, response): |
| token = request.GET.first("token", None) |
| is_query = request.GET.first("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: |
| count = count + 1 |
| request.server.stash.put(token, count) |
| |
| if is_query: |
| headers = [("Count", count)] |
| content = "" |
| return 200, headers, content |
| else: |
| unique_id = id_token() |
| headers = [("Content-Type", "text/javascript"), |
| ("Cache-Control", "private, max-age=0, stale-while-revalidate=60"), |
| ("Unique-Id", unique_id)] |
| content = "report('{}')".format(unique_id) |
| return 200, headers, content |