download-stash.py (896B)
1 import time 2 3 4 def main(request, response): 5 token = request.GET[b"token"] 6 response.status = 200 7 response.headers.append(b"Content-Type", b"text/html") 8 if b"verify-token" in request.GET: 9 if request.server.stash.take(token): 10 return u'TOKEN_SET' 11 return u'TOKEN_NOT_SET' 12 13 if b"finish-delay" not in request.GET: 14 # <a download> 15 request.server.stash.put(token, True) 16 return 17 18 # navigation to download 19 response.headers.append(b"Content-Disposition", b"attachment") 20 response.write_status_headers() 21 finish_delay = float(request.GET[b"finish-delay"]) / 1E3 22 count = 10 23 single_delay = finish_delay / count 24 for i in range(count): # pylint: disable=unused-variable 25 time.sleep(single_delay) 26 if not response.writer.write_content(b"\n"): 27 return 28 request.server.stash.put(token, True)