diff --git a/bebop/browser/gemini.py b/bebop/browser/gemini.py index c285710..772b452 100644 --- a/bebop/browser/gemini.py +++ b/bebop/browser/gemini.py @@ -9,12 +9,19 @@ from bebop.page import Page from bebop.protocol import Request, Response +MAX_URL_LEN = 1024 + + def open_gemini_url(browser: Browser, url, redirects=0, history=True, use_cache=True): """Open a Gemini URL and set the formatted response as content. After initiating the connection, TODO """ + if len(url) >= MAX_URL_LEN: + browser.set_status_error(f"Request URL too long.") + return + browser.set_status(f"Loading {url}") if use_cache and url in browser.cache: @@ -58,7 +65,6 @@ def open_gemini_url(browser: Browser, url, redirects=0, history=True, if not response: browser.set_status_error(f"Server response parsing failed ({url}).") return - response.url = url if response.code == 20: handle_response_content(browser, url, response, history) @@ -149,6 +155,7 @@ def handle_input_request(browser: Browser, from_url: str, message: str =None): else: browser.set_status("Input needed:") user_input = browser.command_line.focus("?") - if user_input: - url = set_parameter(from_url, user_input) - open_gemini_url(browser, url) + if not user_input: + return + url = set_parameter(from_url, user_input) + open_gemini_url(browser, url)