[tor-commits] [nyx/master] Further simplify draw_line()

atagar at torproject.org atagar at torproject.org
Tue Sep 22 17:08:42 UTC 2015


commit 5e325ebcb1831117b3346525cc4f6734e5305b7a
Author: Damian Johnson <atagar at torproject.org>
Date:   Sat Sep 12 10:08:18 2015 -0700

    Further simplify draw_line()
    
    See? Told ya dropping the listing type would enable us to simplify this. Still
    not as clean as I'd like, but at least now the damn function fits on one
    screen. :P
---
 nyx/connection_panel.py |   43 +++++++------------------------------------
 1 file changed, 7 insertions(+), 36 deletions(-)

diff --git a/nyx/connection_panel.py b/nyx/connection_panel.py
index 29d75ec..7588a5d 100644
--- a/nyx/connection_panel.py
+++ b/nyx/connection_panel.py
@@ -791,50 +791,21 @@ class ConnectionPanel(panel.Panel, threading.Thread):
     self.addstr(y, x, ' ' * (width - x), attr)
 
     if not isinstance(line, CircLine):
-      controller = tor_controller()
-      destination_address = line.get_destination_label(26, include_locale = True)
       subsection_width = width - 19
 
-      # The required widths are the sum of the following:
-      # - room for '%s  -->  %s  %s' and couple extra spaces for padding (11 characters)
-      # - base data for the listing
-      # - that extra field plus any previous
-
-      used_space = 11
-      local_port = ':%s' % line.connection.local_port if line.include_port else ''
-
-      src, dst, etc = '', '', ''
-
-      my_external_address = controller.get_info('address', line.connection.local_address)
-
-      # Show our external address if it's going through tor.
-
-      if entry_type not in (Category.SOCKS, Category.HIDDEN, Category.CONTROL):
-        src_address = my_external_address + local_port
-      else:
-        src_address = line.connection.local_address + local_port
-
-      if entry_type in (Category.SOCKS, Category.CONTROL):
-        # Like inbound connections these need their source and destination to
-        # be swapped. However, this only applies when listing by IP (their
-        # fingerprint and nickname are both for us). Reversing the fields here
-        # to keep the same column alignments.
-
-        src = '%-21s' % destination_address
-        dst = '%-26s' % src_address
-      else:
-        src = '%-21s' % src_address  # ip:port = max of 21 characters
-        dst = '%-26s' % destination_address  # ip:port (xx) = max of 26 characters
+      src = tor_controller().get_info('address', line.connection.local_address)
+      src += ':%s' % line.connection.local_port if line.include_port else ''
+      dst = line.get_destination_label(26, include_locale = True)
 
-      etc = line.get_etc_content(subsection_width - used_space - len(src) - len(dst))
+      if entry_type in (Category.INBOUND, Category.SOCKS, Category.CONTROL):
+        dst, src = src, dst
 
-      if entry_type == Category.INBOUND:
-        src, dst = dst, src
+      etc = line.get_etc_content(subsection_width - 11 - max(21, len(src)) - max(26, len(dst)))
 
       time_prefix = '+' if line.connection.is_legacy else ' '
       time_label = time_prefix + '%5s' % str_tools.time_label(current_time - line.connection.start_time, 1)
 
-      x = self.addstr(y, x + 1, '%s  -->  %s  %s' % (src, dst, etc), attr)
+      x = self.addstr(y, x + 1, '%-21s  -->  %-26s  %s' % (src, dst, etc), attr)
       x = self.addstr(y, subsection_width + 1, time_label, attr)
       x = self.addstr(y, x, ' (', attr)
       x = self.addstr(y, x, entry_type.upper(), attr | curses.A_BOLD)





More information about the tor-commits mailing list