echo-cookie-worker.py (700B)
1 def main(request, response): 2 headers = [(b"Content-Type", b"text/javascript")] 3 4 values = [] 5 for key in request.cookies: 6 for cookie in request.cookies.get_list(key): 7 values.append(b'"%s": "%s"' % (key, cookie.value)) 8 9 # Update the counter to change the script body for every request to trigger 10 # update of the service worker. 11 key = request.GET[b'key'] 12 counter = request.server.stash.take(key) 13 if counter is None: 14 counter = 0 15 counter += 1 16 request.server.stash.put(key, counter) 17 18 body = b""" 19 // %d 20 self.addEventListener('message', e => { 21 e.source.postMessage({%s}) 22 });""" % (counter, b','.join(values)) 23 24 return headers, body