commit 5e325ebcb1831117b3346525cc4f6734e5305b7a Author: Damian Johnson atagar@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)
tor-commits@lists.torproject.org