aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarcelo Glezer <mg@tekii.com.ar>2015-01-16 12:13:55 -0300
committerMarcelo Glezer <mg@tekii.com.ar>2015-01-16 12:13:55 -0300
commitd80e2e2b2b125a6b38baef6e9ba6d4282354775a (patch)
treeec0e91d102f733aedd70eff7061bd3db8b23255f
parent7ba7d64bacc36821eddaaf2862f7a098949b2d4e (diff)
downloadmitmproxy-d80e2e2b2b125a6b38baef6e9ba6d4282354775a.tar.gz
mitmproxy-d80e2e2b2b125a6b38baef6e9ba6d4282354775a.tar.bz2
mitmproxy-d80e2e2b2b125a6b38baef6e9ba6d4282354775a.zip
added support for copying request (content|header) to clipboard
-rw-r--r--libmproxy/console/common.py13
-rw-r--r--libmproxy/console/flowlist.py15
-rw-r--r--libmproxy/console/flowview.py15
3 files changed, 34 insertions, 9 deletions
diff --git a/libmproxy/console/common.py b/libmproxy/console/common.py
index 29e59373..33738c0a 100644
--- a/libmproxy/console/common.py
+++ b/libmproxy/console/common.py
@@ -181,7 +181,7 @@ def save_body(path, master, state, content):
def ask_save_body(k, master, state, content):
if k == "y":
master.path_prompt(
- "Save response body: ",
+ "Save message content: ",
state.last_saveload,
save_body,
master,
@@ -189,12 +189,12 @@ def ask_save_body(k, master, state, content):
content,
)
-## common server_copy_response parts
-def server_copy_response( k, master, state, response):
+## common copy_message parts
+def copy_message( k, master, state, message):
if pyperclip:
if k == "c":
try:
- pyperclip.copy(response.get_decoded_content())
+ pyperclip.copy(message.get_decoded_content())
except TypeError:
master.prompt_onekey(
"Content is binary do you want to save it to a file instead?",
@@ -205,17 +205,16 @@ def server_copy_response( k, master, state, response):
ask_save_body,
master,
state,
- response.get_decoded_content(),
+ message.get_decoded_content(),
)
elif k == "h":
try:
- pyperclip.copy(str(response.headers))
+ pyperclip.copy(str(message.headers))
except TypeError:
master.statusbar.message("Error converting headers to text")
else:
master.statusbar.message("No clipboard support on your system, sorry.")
-
class FlowCache:
@utils.LRUCache(200)
def format_flow(self, *args):
diff --git a/libmproxy/console/flowlist.py b/libmproxy/console/flowlist.py
index 214c10db..77803a51 100644
--- a/libmproxy/console/flowlist.py
+++ b/libmproxy/console/flowlist.py
@@ -13,6 +13,7 @@ def _mkhelp():
("e", "toggle eventlog"),
("F", "toggle follow flow list"),
("g", "copy response(content/headers) to clipboard"),
+ ("G", "copy request(content/headers) to clipboard"),
("l", "set limit filter pattern"),
("L", "load saved flows"),
("r", "replay request"),
@@ -210,11 +211,23 @@ class ConnectionItem(common.WWrap):
("content", "c"),
("headers", "h"),
),
- common.server_copy_response,
+ common.copy_message,
self.master,
self.state,
self.flow.response,
)
+ elif key == "G":
+ self.master.prompt_onekey(
+ "Copy Request",
+ (
+ ("content", "c"),
+ ("headers", "h"),
+ ),
+ common.copy_message,
+ self.master,
+ self.state,
+ self.flow.request,
+ )
else:
return key
diff --git a/libmproxy/console/flowview.py b/libmproxy/console/flowview.py
index b964b92a..a759f109 100644
--- a/libmproxy/console/flowview.py
+++ b/libmproxy/console/flowview.py
@@ -20,6 +20,7 @@ def _mkhelp():
("e", "edit request/response"),
("f", "load full body data"),
("g", "copy response(content/headers) to clipboard"),
+ ("G", "copy request(content/headers) to clipboard"),
("m", "change body display mode for this entity"),
(None,
common.highlight_key("automatic", "a") +
@@ -746,11 +747,23 @@ class FlowView(common.WWrap):
("content", "c"),
("headers", "h"),
),
- common.server_copy_response,
+ common.copy_message,
self.master,
self.state,
self.flow.response,
)
+ elif key == "G":
+ self.master.prompt_onekey(
+ "Copy Request",
+ (
+ ("content", "c"),
+ ("headers", "h"),
+ ),
+ common.copy_message,
+ self.master,
+ self.state,
+ self.flow.request,
+ )
elif key == "m":
p = list(contentview.view_prompts)
p.insert(0, ("Clear", "C"))