aboutsummaryrefslogtreecommitdiffstats
path: root/libmproxy/console/flowview.py
diff options
context:
space:
mode:
authorMaximilian Hils <git@maximilianhils.com>2015-02-06 20:27:50 +0100
committerMaximilian Hils <git@maximilianhils.com>2015-02-06 20:27:50 +0100
commitc871a12ea4b358df56ac838839be88eb1e9f1f0b (patch)
tree56a6e2f48d14441f50cec540f193be08e8db54e8 /libmproxy/console/flowview.py
parentd67372f9d60ec123b622f129a7c54d3b2234dd98 (diff)
parentf49dcb0d91031c75231b4659f141aece5a43f8d1 (diff)
downloadmitmproxy-c871a12ea4b358df56ac838839be88eb1e9f1f0b.tar.gz
mitmproxy-c871a12ea4b358df56ac838839be88eb1e9f1f0b.tar.bz2
mitmproxy-c871a12ea4b358df56ac838839be88eb1e9f1f0b.zip
Merge remote-tracking branch 'tekii/feature-334'
Diffstat (limited to 'libmproxy/console/flowview.py')
-rw-r--r--libmproxy/console/flowview.py68
1 files changed, 41 insertions, 27 deletions
diff --git a/libmproxy/console/flowview.py b/libmproxy/console/flowview.py
index 2aac575d..f95cd776 100644
--- a/libmproxy/console/flowview.py
+++ b/libmproxy/console/flowview.py
@@ -19,6 +19,8 @@ def _mkhelp():
("D", "duplicate flow"),
("e", "edit request/response"),
("f", "load full body data"),
+ ("g", "copy response(content/headers) to clipboard"),
+ ("G", "copy request(content/headers/url) to clipboard"),
("m", "change body display mode for this entity"),
(None,
common.highlight_key("automatic", "a") +
@@ -508,22 +510,6 @@ class FlowView(common.WWrap):
self.flow.request.method = i[0].upper()
self.master.refresh_flow(self.flow)
- def save_body(self, path):
- if not path:
- return
- self.state.last_saveload = path
- if self.state.view_flow_mode == common.VIEW_FLOW_REQUEST:
- c = self.flow.request
- else:
- c = self.flow.response
- path = os.path.expanduser(path)
- try:
- f = file(path, "wb")
- f.write(str(c.content))
- f.close()
- except IOError, v:
- self.master.statusbar.message(v.strerror)
-
def set_url(self, url):
request = self.flow.request
try:
@@ -691,17 +677,20 @@ class FlowView(common.WWrap):
elif key == "b":
if conn:
if self.state.view_flow_mode == common.VIEW_FLOW_REQUEST:
- self.master.path_prompt(
- "Save request body: ",
- self.state.last_saveload,
- self.save_body
- )
- else:
- self.master.path_prompt(
- "Save response body: ",
- self.state.last_saveload,
- self.save_body
- )
+ msg = "Save request body: "
+ content = self.flow.request.content
+ else:
+ msg = "Save response body: "
+ content = self.flow.response.content
+
+ self.master.path_prompt(
+ msg,
+ self.state.last_saveload,
+ common.save_body,
+ self.master,
+ self.state,
+ content,
+ )
elif key == "d":
if self.state.flow_count() == 1:
self.master.view_flowlist()
@@ -752,6 +741,31 @@ class FlowView(common.WWrap):
)
self.master.refresh_flow(self.flow)
self.master.statusbar.message("")
+ elif key == "g":
+ self.master.prompt_onekey(
+ "Copy Response",
+ (
+ ("content", "c"),
+ ("headers", "h"),
+ ),
+ common.copy_message,
+ self.master,
+ self.state,
+ self.flow.response,
+ )
+ elif key == "G":
+ self.master.prompt_onekey(
+ "Copy Request",
+ (
+ ("content", "c"),
+ ("headers", "h"),
+ ("url", "u"),
+ ),
+ common.copy_message,
+ self.master,
+ self.state,
+ self.flow.request,
+ )
elif key == "m":
p = list(contentview.view_prompts)
p.insert(0, ("Clear", "C"))