aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiroslav <ttahabatt@gmail.com>2018-02-28 00:18:18 +0200
committerMiroslav <ttahabatt@gmail.com>2018-02-28 00:18:18 +0200
commit5161458217227123069911c4d2dae39fcb603720 (patch)
tree758f5478937049b4d8c50a825e5221edd143254e
parent90166084866952c578b2dd81a0aa19ed516a619e (diff)
downloadmitmproxy-5161458217227123069911c4d2dae39fcb603720.tar.gz
mitmproxy-5161458217227123069911c4d2dae39fcb603720.tar.bz2
mitmproxy-5161458217227123069911c4d2dae39fcb603720.zip
Shortening notifications in statusbar
-rw-r--r--mitmproxy/tools/console/master.py3
-rw-r--r--mitmproxy/tools/console/statusbar.py32
2 files changed, 33 insertions, 2 deletions
diff --git a/mitmproxy/tools/console/master.py b/mitmproxy/tools/console/master.py
index 5da6ef0b..397fc8e8 100644
--- a/mitmproxy/tools/console/master.py
+++ b/mitmproxy/tools/console/master.py
@@ -94,7 +94,8 @@ class ConsoleMaster(master.Master):
self.start_err = entry
else:
signals.status_message.send(
- message=(entry.level, "{}: {}".format(entry.level.title(), entry.msg)),
+ message=(entry.level, "{}: {}".format(entry.level.title(),
+ entry.msg.lstrip())),
expire=5
)
diff --git a/mitmproxy/tools/console/statusbar.py b/mitmproxy/tools/console/statusbar.py
index 8553a66f..d4563515 100644
--- a/mitmproxy/tools/console/statusbar.py
+++ b/mitmproxy/tools/console/statusbar.py
@@ -49,7 +49,7 @@ class ActionBar(urwid.WidgetWrap):
def sig_message(self, sender, message, expire=1):
if self.prompting:
return
- w = urwid.Text(message)
+ w = urwid.Text(self.prep_message(message))
self._w = w
if expire:
def cb(*args):
@@ -60,6 +60,36 @@ class ActionBar(urwid.WidgetWrap):
def prep_prompt(self, p):
return p.strip() + ": "
+ def prep_message(self, msg):
+ cols, _ = self.master.ui.get_cols_rows()
+ eventlog_prompt = "(more in eventlog)"
+ if isinstance(msg, (tuple, list)):
+ log_level, msg_text = msg
+ elif isinstance(msg, str):
+ log_level, msg_text = None, msg
+ else:
+ return msg
+
+ msg_lines = msg_text.split("\n")
+ first_line = msg_lines[0]
+
+ def prep_line(line, eventlog_prompt, cols):
+ if cols < len(eventlog_prompt) + 3:
+ first_line = "..."
+ else:
+ first_line = line[:cols - len(eventlog_prompt) - 3] + "..."
+ return first_line
+
+ if len(msg_lines) > 1:
+ if len(first_line) + len(eventlog_prompt) > cols:
+ first_line = prep_line(first_line, eventlog_prompt, cols)
+ else:
+ if len(first_line) > cols:
+ first_line = prep_line(first_line, eventlog_prompt, cols)
+ else:
+ eventlog_prompt = ""
+ return [(log_level, first_line), ("warn", eventlog_prompt)]
+
def sig_prompt(self, sender, prompt, text, callback, args=()):
signals.focus.send(self, section="footer")
self._w = urwid.Edit(self.prep_prompt(prompt), text or "")