mirror of
https://github.com/markqvist/NomadNet.git
synced 2025-06-07 05:52:51 -04:00
Added save connected node functionality
This commit is contained in:
parent
4e50e0f076
commit
87c810fdd0
3 changed files with 51 additions and 2 deletions
|
@ -60,6 +60,9 @@ class Directory:
|
||||||
|
|
||||||
entries = {}
|
entries = {}
|
||||||
for e in unpacked_list:
|
for e in unpacked_list:
|
||||||
|
if e[1] == None:
|
||||||
|
e[1] = RNS.prettyhexrep(e[0])
|
||||||
|
|
||||||
if len(e) > 3:
|
if len(e) > 3:
|
||||||
hosts_node = e[3]
|
hosts_node = e[3]
|
||||||
else:
|
else:
|
||||||
|
@ -132,7 +135,11 @@ class Directory:
|
||||||
return "<"+RNS.hexrep(source_hash, delimit=False)+">"
|
return "<"+RNS.hexrep(source_hash, delimit=False)+">"
|
||||||
else:
|
else:
|
||||||
if source_hash in self.directory_entries:
|
if source_hash in self.directory_entries:
|
||||||
return self.directory_entries[source_hash].display_name
|
dn = self.directory_entries[source_hash].display_name
|
||||||
|
if dn == None:
|
||||||
|
return RNS.prettyhexrep(source_hash)
|
||||||
|
else:
|
||||||
|
return dn
|
||||||
else:
|
else:
|
||||||
return "<"+RNS.hexrep(source_hash, delimit=False)+">"
|
return "<"+RNS.hexrep(source_hash, delimit=False)+">"
|
||||||
|
|
||||||
|
@ -242,10 +249,12 @@ class DirectoryEntry:
|
||||||
def __init__(self, source_hash, display_name=None, trust_level=UNKNOWN, hosts_node=False, preferred_delivery=None, identify_on_connect=False):
|
def __init__(self, source_hash, display_name=None, trust_level=UNKNOWN, hosts_node=False, preferred_delivery=None, identify_on_connect=False):
|
||||||
if len(source_hash) == RNS.Identity.TRUNCATED_HASHLENGTH//8:
|
if len(source_hash) == RNS.Identity.TRUNCATED_HASHLENGTH//8:
|
||||||
self.source_hash = source_hash
|
self.source_hash = source_hash
|
||||||
self.display_name = display_name
|
|
||||||
if display_name == None:
|
if display_name == None:
|
||||||
display_name = source_hash
|
display_name = source_hash
|
||||||
|
|
||||||
|
self.display_name = display_name
|
||||||
|
|
||||||
if preferred_delivery == None:
|
if preferred_delivery == None:
|
||||||
self.preferred_delivery = DirectoryEntry.DIRECT
|
self.preferred_delivery = DirectoryEntry.DIRECT
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -6,6 +6,7 @@ import nomadnet
|
||||||
import subprocess
|
import subprocess
|
||||||
import threading
|
import threading
|
||||||
from .MicronParser import markup_to_attrmaps
|
from .MicronParser import markup_to_attrmaps
|
||||||
|
from nomadnet.Directory import DirectoryEntry
|
||||||
from nomadnet.vendor.Scrollable import *
|
from nomadnet.vendor.Scrollable import *
|
||||||
|
|
||||||
class BrowserFrame(urwid.Frame):
|
class BrowserFrame(urwid.Frame):
|
||||||
|
@ -20,6 +21,8 @@ class BrowserFrame(urwid.Frame):
|
||||||
self.delegate.reload()
|
self.delegate.reload()
|
||||||
elif key == "ctrl u":
|
elif key == "ctrl u":
|
||||||
self.delegate.url_dialog()
|
self.delegate.url_dialog()
|
||||||
|
elif key == "ctrl s":
|
||||||
|
self.delegate.save_node_dialog()
|
||||||
elif self.get_focus() == "body":
|
elif self.get_focus() == "body":
|
||||||
return super(BrowserFrame, self).keypress(size, key)
|
return super(BrowserFrame, self).keypress(size, key)
|
||||||
# if key == "up" and self.delegate.messagelist.top_is_visible:
|
# if key == "up" and self.delegate.messagelist.top_is_visible:
|
||||||
|
@ -501,6 +504,40 @@ class Browser:
|
||||||
self.delegate.columns.contents[1] = (overlay, options)
|
self.delegate.columns.contents[1] = (overlay, options)
|
||||||
self.delegate.columns.focus_position = 1
|
self.delegate.columns.focus_position = 1
|
||||||
|
|
||||||
|
def save_node_dialog(self):
|
||||||
|
def dismiss_dialog(sender):
|
||||||
|
self.close_dialogs()
|
||||||
|
|
||||||
|
display_name = RNS.Identity.recall_app_data(self.destination_hash)
|
||||||
|
disp_str = ""
|
||||||
|
if display_name != None:
|
||||||
|
display_name = display_name.decode("utf-8")
|
||||||
|
disp_str = " \""+display_name+"\""
|
||||||
|
|
||||||
|
def confirmed(sender):
|
||||||
|
node_entry = DirectoryEntry(self.destination_hash, display_name=display_name, hosts_node=True)
|
||||||
|
self.app.directory.remember(node_entry)
|
||||||
|
self.app.ui.main_display.sub_displays.network_display.directory_change_callback()
|
||||||
|
|
||||||
|
self.close_dialogs()
|
||||||
|
|
||||||
|
dialog = UrlDialogLineBox(
|
||||||
|
urwid.Pile([
|
||||||
|
urwid.Text("Save connected node"+disp_str+" "+RNS.prettyhexrep(self.destination_hash)+" to Known Nodes?\n"),
|
||||||
|
urwid.Columns([("weight", 0.45, urwid.Button("Cancel", on_press=dismiss_dialog)), ("weight", 0.1, urwid.Text("")), ("weight", 0.45, urwid.Button("Save", on_press=confirmed))])
|
||||||
|
]), title="Save Node"
|
||||||
|
)
|
||||||
|
|
||||||
|
dialog.confirmed = confirmed
|
||||||
|
dialog.delegate = self
|
||||||
|
bottom = self.display_widget
|
||||||
|
|
||||||
|
overlay = urwid.Overlay(dialog, bottom, align="center", width=("relative", 50), valign="middle", height="pack", left=2, right=2)
|
||||||
|
|
||||||
|
options = self.delegate.columns.options("weight", self.delegate.right_area_width)
|
||||||
|
self.delegate.columns.contents[1] = (overlay, options)
|
||||||
|
self.delegate.columns.focus_position = 1
|
||||||
|
|
||||||
|
|
||||||
def load_page(self):
|
def load_page(self):
|
||||||
cached = self.get_cached(self.current_url())
|
cached = self.get_cached(self.current_url())
|
||||||
|
|
|
@ -1284,6 +1284,9 @@ class NetworkLeftPile(urwid.Pile):
|
||||||
self.parent.browser.disconnect()
|
self.parent.browser.disconnect()
|
||||||
elif key == "ctrl u":
|
elif key == "ctrl u":
|
||||||
self.parent.browser.url_dialog()
|
self.parent.browser.url_dialog()
|
||||||
|
elif key == "ctrl s":
|
||||||
|
self.parent.browser.save_node_dialog()
|
||||||
|
|
||||||
else:
|
else:
|
||||||
return super(NetworkLeftPile, self).keypress(size, key)
|
return super(NetworkLeftPile, self).keypress(size, key)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue