mirror of
https://github.com/markqvist/NomadNet.git
synced 2025-03-20 05:56:13 -04:00
Improved browser UI.
This commit is contained in:
parent
b4d056e9ef
commit
29c843509a
@ -6,9 +6,6 @@ import threading
|
||||
from .MicronParser import markup_to_attrmaps
|
||||
from nomadnet.vendor.Scrollable import *
|
||||
|
||||
# TODO: REMOVE
|
||||
import os
|
||||
|
||||
class BrowserFrame(urwid.Frame):
|
||||
def keypress(self, size, key):
|
||||
if key == "ctrl w":
|
||||
@ -31,12 +28,13 @@ class Browser:
|
||||
NO_PATH = 0x00
|
||||
PATH_REQUESTED = 0x01
|
||||
ESTABLISHING_LINK = 0x02
|
||||
LINK_ESTABLISHED = 0x03
|
||||
REQUESTING = 0x04
|
||||
REQUEST_SENT = 0x05
|
||||
REQUEST_FAILED = 0x06
|
||||
REQUEST_TIMEOUT = 0x07
|
||||
RECEIVING_RESPONSE = 0x08
|
||||
LINK_TIMEOUT = 0x03
|
||||
LINK_ESTABLISHED = 0x04
|
||||
REQUESTING = 0x05
|
||||
REQUEST_SENT = 0x06
|
||||
REQUEST_FAILED = 0x07
|
||||
REQUEST_TIMEOUT = 0x08
|
||||
RECEIVING_RESPONSE = 0x09
|
||||
DONE = 0xFF
|
||||
DISCONECTED = 0xFE
|
||||
|
||||
@ -157,6 +155,10 @@ class Browser:
|
||||
self.browser_footer = self.make_status_widget()
|
||||
self.update_page_display()
|
||||
|
||||
elif self.status == Browser.LINK_TIMEOUT:
|
||||
self.browser_body = self.make_request_failed_widget()
|
||||
self.browser_footer = urwid.Text("")
|
||||
|
||||
elif self.status <= Browser.REQUEST_SENT:
|
||||
if len(self.attr_maps) == 0:
|
||||
self.browser_body = urwid.Filler(urwid.Text("Retrieving\n["+self.current_url()+"]", align="center"), "middle")
|
||||
@ -308,14 +310,11 @@ class Browser:
|
||||
|
||||
self.link = RNS.Link(destination, established_callback = self.link_established, closed_callback = self.link_closed)
|
||||
|
||||
l_time = time.time()
|
||||
while not self.status == Browser.LINK_ESTABLISHED:
|
||||
now = time.time()
|
||||
if now > l_time+self.timeout:
|
||||
self.request_timeout()
|
||||
return
|
||||
while self.status == Browser.ESTABLISHING_LINK:
|
||||
time.sleep(0.1)
|
||||
|
||||
time.sleep(0.25)
|
||||
if self.status != Browser.LINK_ESTABLISHED:
|
||||
return
|
||||
|
||||
self.update_display()
|
||||
|
||||
@ -351,11 +350,22 @@ class Browser:
|
||||
def link_closed(self, link):
|
||||
if self.status == Browser.DISCONECTED or self.status == Browser.DONE:
|
||||
self.link = None
|
||||
elif self.status == Browser.ESTABLISHING_LINK:
|
||||
self.link_establishment_timeout()
|
||||
else:
|
||||
self.link = None
|
||||
self.status = Browser.REQUEST_FAILED
|
||||
self.update_display()
|
||||
|
||||
def link_establishment_timeout(self):
|
||||
self.status = Browser.LINK_TIMEOUT
|
||||
self.response_progress = 0
|
||||
self.response_size = None
|
||||
self.response_transfer_size = None
|
||||
self.link = None
|
||||
|
||||
self.update_display()
|
||||
|
||||
|
||||
def response_received(self, request_receipt):
|
||||
try:
|
||||
@ -406,7 +416,7 @@ class Browser:
|
||||
|
||||
|
||||
def status_text(self):
|
||||
if self.response_transfer_size != None:
|
||||
if self.status == Browser.DONE and self.response_transfer_size != None:
|
||||
if self.response_time != None:
|
||||
response_time_str = "{:.2f}".format(self.response_time)
|
||||
else:
|
||||
@ -424,6 +434,8 @@ class Browser:
|
||||
return "Path requested, waiting for path..."
|
||||
elif self.status == Browser.ESTABLISHING_LINK:
|
||||
return "Establishing link..."
|
||||
elif self.status == Browser.LINK_TIMEOUT:
|
||||
return "Link establishment timed out"
|
||||
elif self.status == Browser.LINK_ESTABLISHED:
|
||||
return "Link established"
|
||||
elif self.status == Browser.REQUESTING:
|
||||
|
Loading…
x
Reference in New Issue
Block a user