aboutsummaryrefslogtreecommitdiff
path: root/src/hydrilla/proxy/state_impl/base.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/hydrilla/proxy/state_impl/base.py')
-rw-r--r--src/hydrilla/proxy/state_impl/base.py30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/hydrilla/proxy/state_impl/base.py b/src/hydrilla/proxy/state_impl/base.py
index 357ae88..df3287b 100644
--- a/src/hydrilla/proxy/state_impl/base.py
+++ b/src/hydrilla/proxy/state_impl/base.py
@@ -34,6 +34,7 @@ subtype.
import sqlite3
import threading
import secrets
+import webbrowser
import dataclasses as dc
import typing as t
@@ -137,6 +138,9 @@ PayloadsData = t.Mapping[st.PayloadRef, st.PayloadData]
class HaketiloStateWithFields(st.HaketiloState):
"""...."""
store_dir: Path
+ _listen_host: str
+ _listen_port: int
+ _logger: st.Logger
connection: sqlite3.Connection
settings: st.HaketiloGlobalSettings
current_cursor: t.Optional[sqlite3.Cursor] = None
@@ -251,3 +255,29 @@ class HaketiloStateWithFields(st.HaketiloState):
dependencies as well as at startup.
"""
...
+
+ @property
+ def listen_host(self) -> str:
+ if self._listen_host != '0.0.0.0':
+ return '127.0.0.1'
+
+ return self._listen_host
+
+ @property
+ def listen_port(self) -> int:
+ return self._listen_port
+
+ @property
+ def efective_listen_addr(self) -> str:
+ effective_host = self._listen_host
+ if self._listen_host == '0.0.0.0':
+ effective_host = '127.0.0.1'
+
+ return f'http://{effective_host}:{self._listen_port}'
+
+ def launch_browser(self) -> bool:
+ return webbrowser.open(self.efective_listen_addr)
+
+ @property
+ def logger(self) -> st.Logger:
+ return self._logger