aboutsummaryrefslogtreecommitdiffstats
path: root/libmproxy/console/common.py
diff options
context:
space:
mode:
Diffstat (limited to 'libmproxy/console/common.py')
-rw-r--r--libmproxy/console/common.py56
1 files changed, 24 insertions, 32 deletions
diff --git a/libmproxy/console/common.py b/libmproxy/console/common.py
index fa21c93e..3a708c7c 100644
--- a/libmproxy/console/common.py
+++ b/libmproxy/console/common.py
@@ -1,7 +1,9 @@
from __future__ import absolute_import
+
import urwid
import urwid.util
import os
+
from .. import utils
from ..protocol.http import CONTENT_MISSING, decoded
@@ -41,6 +43,8 @@ def highlight_key(s, k):
KEY_MAX = 30
+
+
def format_keyvals(lst, key="key", val="text", indent=0):
"""
Format a list of (key, value) tuples.
@@ -103,10 +107,8 @@ else:
SYMBOL_RETURN = u"<-"
-
def raw_format_flow(f, focus, extended, padding):
f = dict(f)
-
pile = []
req = []
if extended:
@@ -122,7 +124,7 @@ def raw_format_flow(f, focus, extended, padding):
req.append(fcol(SYMBOL_REPLAY, "replay"))
req.append(fcol(f["req_method"], "method"))
- preamble = sum(i[1] for i in req) + len(req) -1
+ preamble = sum(i[1] for i in req) + len(req) - 1
if f["intercepted"] and not f["acked"]:
uc = "intercept"
@@ -284,15 +286,16 @@ def ask_copy_part(scope, flow, master, state):
def ask_save_body(part, master, state, flow):
"""
- Save either the request or the response body to disk.
- part can either be "q" (request), "s" (response) or None (ask user if necessary).
+ Save either the request or the response body to disk. part can either be
+ "q" (request), "s" (response) or None (ask user if necessary).
"""
request_has_content = flow.request and flow.request.content
response_has_content = flow.response and flow.response.content
if part is None:
- # We first need to determine whether we want to save the request or the response content.
+ # We first need to determine whether we want to save the request or the
+ # response content.
if request_has_content and response_has_content:
master.prompt_onekey(
"Save",
@@ -311,9 +314,19 @@ def ask_save_body(part, master, state, flow):
ask_save_body("q", master, state, flow)
elif part == "q" and request_has_content:
- ask_save_path("Save request content: ", flow.request.get_decoded_content(), master, state)
+ ask_save_path(
+ "Save request content: ",
+ flow.request.get_decoded_content(),
+ master,
+ state
+ )
elif part == "s" and response_has_content:
- ask_save_path("Save response content: ", flow.response.get_decoded_content(), master, state)
+ ask_save_path(
+ "Save response content: ",
+ flow.response.get_decoded_content(),
+ master,
+ state
+ )
else:
master.statusbar.message("No content to save.")
@@ -348,7 +361,6 @@ def format_flow(f, focus, extended=False, hostheader=False, padding=2):
duration = 0
if f.response.timestamp_end and f.request.timestamp_start:
duration = f.response.timestamp_end - f.request.timestamp_start
- size = f.response.size()
roundtrip = utils.pretty_duration(duration)
d.update(dict(
@@ -362,26 +374,6 @@ def format_flow(f, focus, extended=False, hostheader=False, padding=2):
d["resp_ctype"] = t[0].split(";")[0]
else:
d["resp_ctype"] = ""
- return flowcache.format_flow(tuple(sorted(d.items())), focus, extended, padding)
-
-
-def int_version(v):
- SIG = 3
- v = urwid.__version__.split("-")[0].split(".")
- x = 0
- for i in range(min(SIG, len(v))):
- x += int(v[i]) * 10**(SIG-i)
- return x
-
-
-# We have to do this to be portable over 0.9.8 and 0.9.9 If compatibility
-# becomes a pain to maintain, we'll just mandate 0.9.9 or newer.
-class WWrap(urwid.WidgetWrap):
- if int_version(urwid.__version__) >= 990:
- def set_w(self, x):
- self._w = x
- def get_w(self):
- return self._w
- w = property(get_w, set_w)
-
-
+ return flowcache.format_flow(
+ tuple(sorted(d.items())), focus, extended, padding
+ )