From 14eeee3fbc0a839d918149765d2134d05cd14601 Mon Sep 17 00:00:00 2001 From: Wojtek Kosior Date: Tue, 18 Oct 2022 17:18:32 +0200 Subject: [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. --- src/hydrilla/proxy/policies/__init__.py | 2 +- src/hydrilla/proxy/policies/web_ui.py | 21 +++++++++++++++++---- 2 files changed, 18 insertions(+), 5 deletions(-) (limited to 'src/hydrilla/proxy/policies') diff --git a/src/hydrilla/proxy/policies/__init__.py b/src/hydrilla/proxy/policies/__init__.py index 448420a..e958cbd 100644 --- a/src/hydrilla/proxy/policies/__init__.py +++ b/src/hydrilla/proxy/policies/__init__.py @@ -15,4 +15,4 @@ from .rule import RuleBlockPolicyFactory, RuleAllowPolicyFactory from .misc import FallbackAllowPolicy, FallbackBlockPolicy, ErrorBlockPolicy, \ DoNothingPolicy -from .web_ui import WebUIPolicyFactory +from .web_ui import WebUIMainPolicyFactory, WebUILandingPolicyFactory 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 -- cgit v1.2.3