From aa7a6e321bc20d1c143e61a0cd6bce2ec1d81334 Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Tue, 11 May 2021 09:25:22 +1000 Subject: [PATCH] Move the 'supports_file_requests' attribute into the actual modes rather than the Web class --- cli/onionshare_cli/web/chat_mode.py | 6 ++++++ cli/onionshare_cli/web/receive_mode.py | 4 ++++ cli/onionshare_cli/web/send_base_mode.py | 4 ++++ cli/onionshare_cli/web/web.py | 13 ++++++------- 4 files changed, 20 insertions(+), 7 deletions(-) diff --git a/cli/onionshare_cli/web/chat_mode.py b/cli/onionshare_cli/web/chat_mode.py index 385972fe..91c41d2f 100644 --- a/cli/onionshare_cli/web/chat_mode.py +++ b/cli/onionshare_cli/web/chat_mode.py @@ -39,6 +39,12 @@ class ChatModeWeb: # This tracks the history id self.cur_history_id = 0 + # Whether or not we can send REQUEST_INDIVIDUAL_FILE_STARTED + # and maybe other events when requests come in to this mode + # Chat mode has no concept of individual file requests that + # turn into history widgets in the GUI, so set it to False + self.supports_file_requests = False + self.define_routes() def define_routes(self): diff --git a/cli/onionshare_cli/web/receive_mode.py b/cli/onionshare_cli/web/receive_mode.py index b3a146e3..76abb0a8 100644 --- a/cli/onionshare_cli/web/receive_mode.py +++ b/cli/onionshare_cli/web/receive_mode.py @@ -64,6 +64,10 @@ class ReceiveModeWeb: # This tracks the history id self.cur_history_id = 0 + # Whether or not we can send REQUEST_INDIVIDUAL_FILE_STARTED + # and maybe other events when requests come in to this mode + self.supports_file_requests = True + self.define_routes() def define_routes(self): diff --git a/cli/onionshare_cli/web/send_base_mode.py b/cli/onionshare_cli/web/send_base_mode.py index 2f3e0bbd..e448d2dd 100644 --- a/cli/onionshare_cli/web/send_base_mode.py +++ b/cli/onionshare_cli/web/send_base_mode.py @@ -52,6 +52,10 @@ class SendBaseModeWeb: # This tracks the history id self.cur_history_id = 0 + # Whether or not we can send REQUEST_INDIVIDUAL_FILE_STARTED + # and maybe other events when requests come in to this mode + self.supports_file_requests = True + self.define_routes() self.init() diff --git a/cli/onionshare_cli/web/web.py b/cli/onionshare_cli/web/web.py index b947b491..56e307b4 100644 --- a/cli/onionshare_cli/web/web.py +++ b/cli/onionshare_cli/web/web.py @@ -152,7 +152,6 @@ class Web: self.receive_mode = None self.website_mode = None self.chat_mode = None - self.mode_supports_file_requests = True if self.mode == "share": self.share_mode = ShareModeWeb(self.common, self) elif self.mode == "receive": @@ -163,9 +162,6 @@ class Web: self.socketio = SocketIO() self.socketio.init_app(self.app) self.chat_mode = ChatModeWeb(self.common, self) - # Chat mode has no concept of individual file requests that - # turn into history widgets in the GUI - self.mode_supports_file_requests = False self.cleanup_filenames = [] @@ -298,7 +294,8 @@ class Web: return self.add_security_headers(r) def error404(self, history_id): - if self.mode_supports_file_requests: + mode = self.get_mode() + if mode.supports_file_requests: self.add_request( self.REQUEST_INDIVIDUAL_FILE_STARTED, request.path, @@ -312,7 +309,8 @@ class Web: return self.add_security_headers(r) def error405(self, history_id): - if self.mode_supports_file_requests: + mode = self.get_mode() + if mode.supports_file_requests: self.add_request( self.REQUEST_INDIVIDUAL_FILE_STARTED, request.path, @@ -326,7 +324,8 @@ class Web: return self.add_security_headers(r) def error500(self, history_id): - if self.mode_supports_file_requests: + mode = self.get_mode() + if mode.supports_file_requests: self.add_request( self.REQUEST_INDIVIDUAL_FILE_STARTED, request.path,