diff options
| author | Zach DeCook <zachdecook@librem.one> | 2022-12-24 07:24:28 -0500 |
|---|---|---|
| committer | Zach DeCook <zachdecook@librem.one> | 2022-12-24 07:24:28 -0500 |
| commit | 09b393bf5de74e11a4a46ab4c697175e4ca8a480 (patch) | |
| tree | 9e1ad99504d99578aea58f90363fc3007124cd18 /browset.py | |
| parent | 1a2eaf6f305bd95debc0409639627bcb9cb8e6fc (diff) | |
| download | browset-09b393bf5de74e11a4a46ab4c697175e4ca8a480.tar.gz | |
browset: Support clicking buttons (relative path)
Diffstat (limited to 'browset.py')
| -rw-r--r-- | browset.py | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/browset.py b/browset.py index 817ad91..c316c1d 100644 --- a/browset.py +++ b/browset.py @@ -7,6 +7,7 @@ from gemtext import Gemtext from protocol.gemini import GeminiProtocol class Browset(App): + url = "" CSS_PATH = "browset.css" BINDINGS = [ Binding("ctrl+c,ctrl+q", "app.quit", "Quit", show=True), @@ -21,12 +22,24 @@ class Browset(App): Button("🔜"), # ⏩ Button("🔄"), # 🔁 - Input(placeholder="Enter URI"), + Input(placeholder="Enter URI", id="url"), id="toolbar" ) yield Gemtext(fp=self.content, id="content") async def on_input_submitted(self, message: Input.Submitted) -> None: - (mime, fp) = GeminiProtocol.get(message.value) + self._do_url(message.value) + + async def on_button_pressed(self, event: Button.Pressed) -> None: + url = event.button.name + if not ":" in url: + url = GeminiProtocol.relativeURL(url, self.url) + input = self.query_one("#url") + input.value = url + self._do_url(url) + + def _do_url(self, url): + self.url = url + (mime, fp) = GeminiProtocol.get(url) self.query_one("#content").remove() self.mount(Gemtext(fp=fp, id="content")) |
