%PDF- %PDF-
Direktori : /usr/lib/python3/dist-packages/mitmproxy/tools/web/ |
Current File : //usr/lib/python3/dist-packages/mitmproxy/tools/web/webaddons.py |
import webbrowser from mitmproxy import ctx class WebAddon: def load(self, loader): loader.add_option( "web_open_browser", bool, True, "Start a browser." ) loader.add_option( "web_debug", bool, False, "Enable mitmweb debugging." ) loader.add_option( "web_port", int, 8081, "Web UI port." ) loader.add_option( "web_host", str, "127.0.0.1", "Web UI host." ) def running(self): if hasattr(ctx.options, "web_open_browser") and ctx.options.web_open_browser: web_url = f"http://{ctx.options.web_host}:{ctx.options.web_port}/" success = open_browser(web_url) if not success: ctx.log.info( f"No web browser found. Please open a browser and point it to {web_url}", ) def open_browser(url: str) -> bool: """ Open a URL in a browser window. In contrast to webbrowser.open, we limit the list of suitable browsers. This gracefully degrades to a no-op on headless servers, where webbrowser.open would otherwise open lynx. Returns: True, if a browser has been opened False, if no suitable browser has been found. """ browsers = ( "windows-default", "macosx", "wslview %s", "x-www-browser %s", "gnome-open %s", "google-chrome", "chrome", "chromium", "chromium-browser", "firefox", "opera", "safari", ) for browser in browsers: try: b = webbrowser.get(browser) except webbrowser.Error: pass else: if b.open(url): return True return False