diff options
Diffstat (limited to 'src/hydrilla/proxy/state_impl/base.py')
-rw-r--r-- | src/hydrilla/proxy/state_impl/base.py | 30 |
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 |