aboutsummaryrefslogtreecommitdiffstats
path: root/libmproxy/console
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@nullcube.com>2015-03-29 15:54:29 +1300
committerAldo Cortesi <aldo@nullcube.com>2015-03-29 15:54:29 +1300
commitcfeee347d95cf56dfaf53c77ac5726bb72347234 (patch)
treef24f25cdad571d44322e911dcf854da70e429740 /libmproxy/console
parent8f0e4a9bdd29d75ff451002f933d86a09f63dbc8 (diff)
downloadmitmproxy-cfeee347d95cf56dfaf53c77ac5726bb72347234.tar.gz
mitmproxy-cfeee347d95cf56dfaf53c77ac5726bb72347234.tar.bz2
mitmproxy-cfeee347d95cf56dfaf53c77ac5726bb72347234.zip
Simplify content generation in flow view
Diffstat (limited to 'libmproxy/console')
-rw-r--r--libmproxy/console/flowview.py104
1 files changed, 40 insertions, 64 deletions
diff --git a/libmproxy/console/flowview.py b/libmproxy/console/flowview.py
index d4bdb458..a7a47694 100644
--- a/libmproxy/console/flowview.py
+++ b/libmproxy/console/flowview.py
@@ -161,56 +161,47 @@ class FlowView(urwid.WidgetWrap):
)
return self.state.default_body_view if override is None else override
- def conn_text_raw(self, conn):
- """
- Based on a request/response, conn, returns the elements for
- display.
- """
- headers = common.format_keyvals(
- [(h+":", v) for (h, v) in conn.headers.lst],
- key = "header",
- val = "text"
- )
- viewmode = self.viewmode_get()
- msg, body = self.content_view(viewmode, conn)
- return headers, msg, body
-
- def conn_text_merge(self, headers, msg, body):
- """
- Grabs what is returned by conn_text_raw and merges them all
- toghether, mainly used by conn_text
- """
- viewmode = self.viewmode_get()
- cols = [urwid.Text(
- [
- ("heading", msg),
- ]
- )
- ]
- cols.append(urwid.Text([
- " ",
- ('heading', "["),
- ('heading_key', "m"),
- ('heading', (":%s]"%viewmode.name)),
- ],
- align="right"
- )
- )
-
- title = urwid.AttrWrap(urwid.Columns(cols), "heading")
- headers.append(title)
- headers.extend(body)
+ def conn_text(self, conn):
+ if conn:
+ txt = common.format_keyvals(
+ [(h+":", v) for (h, v) in conn.headers.lst],
+ key = "header",
+ val = "text"
+ )
+ viewmode = self.viewmode_get()
+ msg, body = self.content_view(viewmode, conn)
- return headers
+ cols = [urwid.Text(
+ [
+ ("heading", msg),
+ ]
+ )
+ ]
+ cols.append(urwid.Text([
+ " ",
+ ('heading', "["),
+ ('heading_key', "m"),
+ ('heading', (":%s]"%viewmode.name)),
+ ],
+ align="right"
+ )
+ )
+ title = urwid.AttrWrap(urwid.Columns(cols), "heading")
- def conn_text(self, conn):
- """
- Same as conn_text_raw, but returns result wrapped in a listbox ready for
- usage.
- """
- headers, msg, body = self.conn_text_raw(conn)
- merged = self.conn_text_merge(headers, msg, body)
- return searchable.Searchable(self.state, merged)
+ txt.append(title)
+ txt.extend(body)
+ else:
+ txt = [
+ urwid.Text(""),
+ urwid.Text(
+ [
+ ("highlight", "No response. Press "),
+ ("key", "e"),
+ ("highlight", " and edit any aspect to add one."),
+ ]
+ )
+ ]
+ return searchable.Searchable(self.state, txt)
def _tab(self, content, attr):
p = urwid.Text(content)
@@ -253,22 +244,7 @@ class FlowView(urwid.WidgetWrap):
def view_response(self):
self.state.view_flow_mode = common.VIEW_FLOW_RESPONSE
- if self.flow.response:
- body = self.conn_text(self.flow.response)
- else:
- body = searchable.Searchable(
- self.state,
- [
- urwid.Text(""),
- urwid.Text(
- [
- ("highlight", "No response. Press "),
- ("key", "e"),
- ("highlight", " and edit any aspect to add one."),
- ]
- )
- ]
- )
+ body = self.conn_text(self.flow.response)
self._w = self.wrap_body(common.VIEW_FLOW_RESPONSE, body)
def set_method_raw(self, m):