aboutsummaryrefslogtreecommitdiff
path: root/src/hydrilla/proxy/policies/web_ui.py
diff options
context:
space:
mode:
authorWojtek Kosior <koszko@koszko.org>2022-10-18 17:18:32 +0200
committerWojtek Kosior <koszko@koszko.org>2022-10-18 20:13:45 +0200
commit14eeee3fbc0a839d918149765d2134d05cd14601 (patch)
treedec1ca7dbc8668120e53e8ea45328246313199d1 /src/hydrilla/proxy/policies/web_ui.py
parent76f4b6769d0acaeffbd8e8a003fcbb3e2fbea107 (diff)
downloadhaketilo-hydrilla-14eeee3fbc0a839d918149765d2134d05cd14601.tar.gz
haketilo-hydrilla-14eeee3fbc0a839d918149765d2134d05cd14601.zip
[proxy] upon Haketilo launch automatically open Haketilo landing page in user's default web browser
* The landing page instructs user to configure browser's proxy settings. * It is now possible to choose the IP address to listen on via command line parameter. * The browser launching behavior can be switched off via command line parameter.
Diffstat (limited to 'src/hydrilla/proxy/policies/web_ui.py')
-rw-r--r--src/hydrilla/proxy/policies/web_ui.py21
1 files changed, 17 insertions, 4 deletions
diff --git a/src/hydrilla/proxy/policies/web_ui.py b/src/hydrilla/proxy/policies/web_ui.py
index 9d31696..f35b0b7 100644
--- a/src/hydrilla/proxy/policies/web_ui.py
+++ b/src/hydrilla/proxy/policies/web_ui.py
@@ -47,14 +47,27 @@ class WebUIPolicy(base.Policy):
priority: t.ClassVar[base.PolicyPriority] = base.PolicyPriority._THREE
haketilo_state: state.HaketiloState
+ ui_domain: web_ui.UIDomain
def consume_request(self, request_info: http_messages.RequestInfo) \
-> http_messages.ProducedResponse:
- return web_ui.process_request(request_info, self.haketilo_state)
-
+ return web_ui.process_request(
+ request_info = request_info,
+ state = self.haketilo_state,
+ ui_domain = self.ui_domain
+ )
@dc.dataclass(frozen=True, unsafe_hash=True)
class WebUIPolicyFactory(base.PolicyFactory):
- """...."""
+ ui_domain: t.ClassVar[web_ui.UIDomain]
+
def make_policy(self, haketilo_state: state.HaketiloState) -> WebUIPolicy:
- return WebUIPolicy(haketilo_state)
+ return WebUIPolicy(haketilo_state, self.ui_domain)
+
+@dc.dataclass(frozen=True, unsafe_hash=True)
+class WebUIMainPolicyFactory(WebUIPolicyFactory):
+ ui_domain = web_ui.UIDomain.MAIN
+
+@dc.dataclass(frozen=True, unsafe_hash=True)
+class WebUILandingPolicyFactory(WebUIPolicyFactory):
+ ui_domain = web_ui.UIDomain.LANDING_PAGE