tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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)