From 09c1179b007a80f7c62d88ec22d41f4d6ba7e1bf Mon Sep 17 00:00:00 2001 From: Mark Qvist Date: Sat, 9 May 2026 15:13:56 +0200 Subject: [PATCH] Fixed downloaded file sizes displaying incorrectly on stream-based resource transfers --- nomadnet/_version.py | 2 +- nomadnet/ui/textui/Browser.py | 28 +++++++++++++++++++--------- setup.py | 2 +- 3 files changed, 21 insertions(+), 11 deletions(-) diff --git a/nomadnet/_version.py b/nomadnet/_version.py index 976498a..92192ee 100644 --- a/nomadnet/_version.py +++ b/nomadnet/_version.py @@ -1 +1 @@ -__version__ = "1.0.3" +__version__ = "1.0.4" diff --git a/nomadnet/ui/textui/Browser.py b/nomadnet/ui/textui/Browser.py index 4c0fc57..ada2ffe 100644 --- a/nomadnet/ui/textui/Browser.py +++ b/nomadnet/ui/textui/Browser.py @@ -106,6 +106,7 @@ class Browser: self.page_background_color = None self.page_foreground_color = None self.saved_file_name = None + self.saved_file_size = 0 self.file_saved_at = 0 self.file_save_notice_timeout = 3 self.page_data = None @@ -826,6 +827,8 @@ class Browser: fs.close() self.saved_file_name = file_destination.replace(self.app.downloads_path+"/", "", 1) + try: self.saved_file_size = os.path.getsize(file_destination) + except: self.saved_file_size = 0 self.update_display() else: @@ -891,6 +894,7 @@ class Browser: self.response_size = None self.response_transfer_size = None self.saved_file_name = None + self.saved_file_size = 0 self.update_display() receipt = self.link.request( @@ -1087,6 +1091,7 @@ class Browser: self.response_size = None self.response_transfer_size = None self.saved_file_name = None + self.saved_file_size = 0 self.loaded_from_cache = True self.update_display() @@ -1161,6 +1166,7 @@ class Browser: self.response_size = None self.response_transfer_size = None self.saved_file_name = None + self.saved_file_size = 0 self.loaded_from_cache = False self.update_display() @@ -1230,6 +1236,7 @@ class Browser: self.response_size = None self.response_transfer_size = None self.saved_file_name = None + self.saved_file_size = 0 self.update_display() @@ -1442,6 +1449,8 @@ class Browser: shutil.move(file_handle.name, file_destination) self.saved_file_name = file_destination.replace(self.app.downloads_path+"/", "", 1) + try: self.saved_file_size = os.path.getsize(file_destination) + except: self.saved_file_size = 0 self.file_saved_at = time.time() else: @@ -1460,6 +1469,8 @@ class Browser: fh.close() self.saved_file_name = file_destination.replace(self.app.downloads_path+"/", "", 1) + try: self.saved_file_size = os.path.getsize(file_destination) + except: self.saved_file_size = 0 self.status = Browser.DONE self.response_progress = 0 @@ -1545,12 +1556,13 @@ class Browser: def status_text(self): 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: - response_time_str = "None" + if self.response_time != None: response_time_str = "{:.2f}".format(self.response_time) + else: response_time_str = "None" - stats_string = " "+self.g["page"]+size_str(self.response_size) + if self.saved_file_name == None: resp_size = self.response_size + else: resp_size = self.saved_file_size + + stats_string = " "+self.g["page"]+size_str(resp_size) stats_string += " "+self.g["arrow_d"]+size_str(self.response_transfer_size)+" in "+response_time_str stats_string += "s "+self.g["speed"]+size_str(self.response_transfer_size/self.response_time, suffix="b")+"/s" elif self.loaded_from_cache: @@ -1579,10 +1591,8 @@ class Browser: elif self.status == Browser.RECEIVING_RESPONSE: return "Receiving response..." elif self.status == Browser.DONE: - if self.saved_file_name == None: - return "Done"+stats_string - else: - return "Saved "+str(self.saved_file_name)+stats_string + if self.saved_file_name == None: return "Done"+stats_string + else: return "Saved "+str(self.saved_file_name)+stats_string elif self.status == Browser.DISCONECTED: return "Disconnected" else: diff --git a/setup.py b/setup.py index 491d348..b38d9d7 100644 --- a/setup.py +++ b/setup.py @@ -31,6 +31,6 @@ setuptools.setup( entry_points= { 'console_scripts': ['nomadnet=nomadnet.nomadnet:main'] }, - install_requires=["rns>=1.2.4", "lxmf>=0.9.7", "urwid>=2.6.16", "qrcode"], + install_requires=["rns>=1.2.5", "lxmf>=0.9.7", "urwid>=2.6.16", "qrcode"], python_requires=">=3.8", )