Compare commits

...

8 Commits
0.1.3 ... 0.1.4

Author SHA1 Message Date
Mark Qvist
6c16e810e5 Updated dependencies 2021-10-15 19:47:16 +02:00
Mark Qvist
6d4ac49264 Updated version 2021-10-15 19:43:19 +02:00
Mark Qvist
939bc37f86 Mitigate KeyError in urwid 2021-10-15 13:13:48 +02:00
Mark Qvist
14eb35f7de Fixed sync progress bar display 2021-10-12 21:12:32 +02:00
Mark Qvist
19fb70fb3f Fixed sync progress bar display 2021-10-12 21:08:31 +02:00
Mark Qvist
9f9f10d54e Updated shortcuts bar 2021-10-12 20:46:05 +02:00
Mark Qvist
863a6cd2cd Update README.md 2021-10-11 15:25:29 +02:00
Mark Qvist
2ec95df3ec Fixed announce interval interpreted as seconds instead of minutes. 2021-10-10 13:50:57 +02:00
8 changed files with 22 additions and 7 deletions

View File

@@ -49,6 +49,13 @@ The first time the program is running, you will be presented with the guide sect
To use Nomad Network on packet radio or LoRa, you will need to configure your Reticulum installation to use any relevant packet radio TNCs or LoRa devices on your system. See the [Reticulum documentation](https://markqvist.github.io/Reticulum/manual/interfaces.html) for info. To use Nomad Network on packet radio or LoRa, you will need to configure your Reticulum installation to use any relevant packet radio TNCs or LoRa devices on your system. See the [Reticulum documentation](https://markqvist.github.io/Reticulum/manual/interfaces.html) for info.
## Support Nomad Network
You can help support the continued development of open, free and private communications systems by donating via one of the following channels:
- Ethereum: 0x81F7B979fEa6134bA9FD5c701b3501A2e61E897a
- Bitcoin: 3CPmacGm34qYvR6XWLVEJmi2aNe3PZqUuq
- Ko-Fi: https://ko-fi.com/markqvist
## Caveat Emptor ## Caveat Emptor
Nomad Network is beta software, and should be considered as such. While it has been built with cryptography best-practices very foremost in mind, it _has not_ been externally security audited, and there could very well be privacy-breaking bugs. If you want to help out, or help sponsor an audit, please do get in touch. Nomad Network is beta software, and should be considered as such. While it has been built with cryptography best-practices very foremost in mind, it _has not_ been externally security audited, and there could very well be privacy-breaking bugs. If you want to help out, or help sponsor an audit, please do get in touch.

View File

@@ -138,7 +138,7 @@ class Node:
while self.should_run_jobs: while self.should_run_jobs:
now = time.time() now = time.time()
if now > self.last_announce + self.announce_interval: if now > self.last_announce + self.announce_interval*60:
self.announce() self.announce()
time.sleep(self.job_interval) time.sleep(self.job_interval)

View File

@@ -218,6 +218,8 @@ class NomadNetworkApp:
elif self.message_router.propagation_transfer_state == LXMF.LXMRouter.PR_LINK_ESTABLISHED: elif self.message_router.propagation_transfer_state == LXMF.LXMRouter.PR_LINK_ESTABLISHED:
return "Link established" return "Link established"
elif self.message_router.propagation_transfer_state == LXMF.LXMRouter.PR_REQUEST_SENT: elif self.message_router.propagation_transfer_state == LXMF.LXMRouter.PR_REQUEST_SENT:
return "Sync request sent"
elif self.message_router.propagation_transfer_state == LXMF.LXMRouter.PR_RECEIVING:
return "Receiving messages" return "Receiving messages"
elif self.message_router.propagation_transfer_state == LXMF.LXMRouter.PR_RESPONSE_RECEIVED: elif self.message_router.propagation_transfer_state == LXMF.LXMRouter.PR_RESPONSE_RECEIVED:
return "Messages received" return "Messages received"
@@ -241,6 +243,8 @@ class NomadNetworkApp:
return True return True
elif self.message_router.propagation_transfer_state == LXMF.LXMRouter.PR_REQUEST_SENT: elif self.message_router.propagation_transfer_state == LXMF.LXMRouter.PR_REQUEST_SENT:
return True return True
elif self.message_router.propagation_transfer_state == LXMF.LXMRouter.PR_RECEIVING:
return True
elif self.message_router.propagation_transfer_state == LXMF.LXMRouter.PR_RESPONSE_RECEIVED: elif self.message_router.propagation_transfer_state == LXMF.LXMRouter.PR_RESPONSE_RECEIVED:
return True return True
elif self.message_router.propagation_transfer_state == LXMF.LXMRouter.PR_COMPLETE: elif self.message_router.propagation_transfer_state == LXMF.LXMRouter.PR_COMPLETE:

View File

@@ -1 +1 @@
__version__ = "0.1.3" __version__ = "0.1.4"

View File

@@ -20,7 +20,7 @@ class ConversationDisplayShortcuts():
def __init__(self, app): def __init__(self, app):
self.app = app self.app = app
self.widget = urwid.AttrMap(urwid.Text("[C-d] Send [C-k] Clear Editor [C-w] Close [C-t] Editor Type [C-p] Purge [C-x] Clear History [C-o] Sort"), "shortcutbar") self.widget = urwid.AttrMap(urwid.Text("[C-d] Send [C-k] Clear [C-w] Close [C-t] Title [C-p] Purge [C-x] Clear History [C-o] Sort"), "shortcutbar")
class ConversationsArea(urwid.LineBox): class ConversationsArea(urwid.LineBox):
def keypress(self, size, key): def keypress(self, size, key):
@@ -352,6 +352,7 @@ class ConversationsDisplay():
def cancel_sync(sender): def cancel_sync(sender):
self.app.cancel_lxmf_sync() self.app.cancel_lxmf_sync()
self.update_sync_dialog()
cancel_button = urwid.Button("Close", on_press=dismiss_dialog) cancel_button = urwid.Button("Close", on_press=dismiss_dialog)
sync_progress = SyncProgressBar("progress_empty" , "progress_full", current=self.app.get_sync_progress(), done=1.0, satt=None) sync_progress = SyncProgressBar("progress_empty" , "progress_full", current=self.app.get_sync_progress(), done=1.0, satt=None)

View File

@@ -129,11 +129,12 @@ class MainDisplay():
def update_active_shortcuts(self): def update_active_shortcuts(self):
self.frame.contents["footer"] = (self.sub_displays.active().shortcuts().widget, None) self.frame.contents["footer"] = (self.sub_displays.active().shortcuts().widget, None)
def request_redraw(self): def request_redraw(self, extra_delay=0.0):
self.app.ui.loop.set_alarm_in(0.25, self.redraw_now) self.app.ui.loop.set_alarm_in(0.25+extra_delay, self.redraw_now)
def redraw_now(self, sender=None, data=None): def redraw_now(self, sender=None, data=None):
self.app.ui.loop.draw_screen() self.app.ui.loop.screen.clear()
#self.app.ui.loop.draw_screen()
def start(self): def start(self):
self.menu_display.start() self.menu_display.start()

View File

@@ -107,6 +107,7 @@ class AnnounceInfo(urwid.WidgetWrap):
self.parent.left_pile.contents[0] = (self.parent.announce_stream_display, options) self.parent.left_pile.contents[0] = (self.parent.announce_stream_display, options)
def connect(sender): def connect(sender):
self.app.ui.main_display.request_redraw(extra_delay=0.75)
self.parent.browser.retrieve_url(RNS.hexrep(source_hash, delimit=False)) self.parent.browser.retrieve_url(RNS.hexrep(source_hash, delimit=False))
show_announce_stream(None) show_announce_stream(None)
@@ -433,6 +434,7 @@ class KnownNodeInfo(urwid.WidgetWrap):
self.parent.left_pile.contents[0] = (self.parent.known_nodes_display, options) self.parent.left_pile.contents[0] = (self.parent.known_nodes_display, options)
def connect(sender): def connect(sender):
self.app.ui.main_display.request_redraw(extra_delay=0.75)
self.parent.browser.retrieve_url(RNS.hexrep(source_hash, delimit=False)) self.parent.browser.retrieve_url(RNS.hexrep(source_hash, delimit=False))
show_known_nodes(None) show_known_nodes(None)

View File

@@ -23,6 +23,6 @@ setuptools.setup(
entry_points= { entry_points= {
'console_scripts': ['nomadnet=nomadnet.nomadnet:main'] 'console_scripts': ['nomadnet=nomadnet.nomadnet:main']
}, },
install_requires=['rns>=0.2.8', 'lxmf>=0.1.1', 'urwid>=2.1.2'], install_requires=['rns>=0.2.9', 'lxmf>=0.1.2', 'urwid>=2.1.2'],
python_requires='>=3.6', python_requires='>=3.6',
) )