aboutsummaryrefslogtreecommitdiff
path: root/cli/onionshare_cli/web/share_mode.py
diff options
context:
space:
mode:
Diffstat (limited to 'cli/onionshare_cli/web/share_mode.py')
-rw-r--r--cli/onionshare_cli/web/share_mode.py12
1 files changed, 4 insertions, 8 deletions
diff --git a/cli/onionshare_cli/web/share_mode.py b/cli/onionshare_cli/web/share_mode.py
index f714081d..6af4ae0b 100644
--- a/cli/onionshare_cli/web/share_mode.py
+++ b/cli/onionshare_cli/web/share_mode.py
@@ -29,7 +29,7 @@ from datetime import datetime, timezone
from flask import Response, request, render_template, make_response, abort
from unidecode import unidecode
from werkzeug.http import parse_date, http_date
-from werkzeug.urls import url_quote
+from urllib.parse import quote
from .send_base_mode import SendBaseModeWeb
@@ -181,7 +181,6 @@ class ShareModeWeb(SendBaseModeWeb):
# Prepare some variables to use inside generate() function below
# which is outside of the request context
- shutdown_func = request.environ.get("werkzeug.server.shutdown")
request_path = request.path
# If this is a zipped file, then serve as-is. If it's not zipped, then,
@@ -218,7 +217,6 @@ class ShareModeWeb(SendBaseModeWeb):
else:
r = Response(
self.generate(
- shutdown_func,
range_,
file_to_download,
request_path,
@@ -233,7 +231,7 @@ class ShareModeWeb(SendBaseModeWeb):
r.headers.set("Content-Length", range_[1] - range_[0] + 1)
filename_dict = {
"filename": unidecode(basename),
- "filename*": "UTF-8''%s" % url_quote(basename),
+ "filename*": "UTF-8''%s" % quote(basename),
}
r.headers.set("Content-Disposition", "attachment", **filename_dict)
# guess content type
@@ -303,7 +301,7 @@ class ShareModeWeb(SendBaseModeWeb):
return range_, status_code
def generate(
- self, shutdown_func, range_, file_to_download, path, history_id, filesize
+ self, range_, file_to_download, path, history_id, filesize
):
# The user hasn't canceled the download
self.client_cancel = False
@@ -390,9 +388,7 @@ class ShareModeWeb(SendBaseModeWeb):
print("Stopped because transfer is complete")
self.web.running = False
try:
- if shutdown_func is None:
- raise RuntimeError("Not running with the Werkzeug Server")
- shutdown_func()
+ self.web.stop()
except Exception:
pass