Use terminal width rather than a constant

This commit is contained in:
Shadab Zafar 2016-08-20 16:01:01 +05:30
parent 22283dd373
commit 41e4526a33
3 changed files with 12 additions and 10 deletions

View File

@ -32,8 +32,6 @@ METHOD_OPTIONS = [
("edit raw", "e"),
]
MAX_URL_LEN = 200
def is_keypress(k):
"""
@ -330,7 +328,7 @@ def export_to_clip_or_file(key, scope, flow, writer):
flowcache = utils.LRUCache(800)
def raw_format_flow(f, focus, extended, short_urls):
def raw_format_flow(f, focus, extended, truncate_urls):
f = dict(f)
pile = []
req = []
@ -363,8 +361,8 @@ def raw_format_flow(f, focus, extended, short_urls):
url = f["req_url"]
# TODO: Add a configuration setting that disables this behaviour?
if short_urls and len(url) > MAX_URL_LEN:
url = url[:MAX_URL_LEN] + "..."
if truncate_urls and len(url) > truncate_urls:
url = url[:truncate_urls] + "..."
if f["req_http_version"] not in ("HTTP/1.0", "HTTP/1.1"):
url += " " + f["req_http_version"]
@ -417,7 +415,7 @@ def raw_format_flow(f, focus, extended, short_urls):
return urwid.Pile(pile)
def format_flow(f, focus, extended=False, hostheader=False, short_urls=True):
def format_flow(f, focus, extended=False, hostheader=False, truncate_urls=False):
d = dict(
intercepted = f.intercepted,
acked = f.reply.state == "committed",
@ -461,5 +459,5 @@ def format_flow(f, focus, extended=False, hostheader=False, short_urls=True):
tuple(sorted(d.items())),
focus,
extended,
short_urls,
truncate_urls,
)

View File

@ -116,10 +116,12 @@ class ConnectionItem(urwid.WidgetWrap):
urwid.WidgetWrap.__init__(self, w)
def get_text(self):
cols, _ = self.master.ui.get_cols_rows()
return common.format_flow(
self.flow,
self.f,
hostheader = self.master.options.showhost,
hostheader=self.master.options.showhost,
truncate_urls=cols,
)
def selectable(self):

View File

@ -104,22 +104,24 @@ class FlowViewHeader(urwid.WidgetWrap):
def __init__(self, master, f):
self.master = master # type: "mitmproxy.console.master.ConsoleMaster"
self.flow = f # type: models.HTTPFlow
cols, _ = self.master.ui.get_cols_rows()
self._w = common.format_flow(
f,
False,
extended=True,
short_urls=False,
truncate_urls=cols,
hostheader=self.master.options.showhost
)
signals.flow_change.connect(self.sig_flow_change)
def sig_flow_change(self, sender, flow):
cols, _ = self.master.ui.get_cols_rows()
if flow == self.flow:
self._w = common.format_flow(
flow,
False,
extended=True,
short_urls=False,
truncate_urls=cols,
hostheader=self.master.options.showhost
)