aboutsummaryrefslogtreecommitdiffstats
path: root/libmproxy/console/common.py
diff options
context:
space:
mode:
authorMarcelo Glezer <marcelo.glezer@gmail.com>2015-01-15 09:36:59 -0300
committerMarcelo Glezer <mg@tekii.com.ar>2015-02-05 11:31:24 -0300
commitc57efffe01bdc29e08b5eaa1a9b7071336bd4bb1 (patch)
treee76953cf0aae284a77461d33f1b3027de22172c3 /libmproxy/console/common.py
parentf21a44dd48a1ea7401378830fc38e5a864e927e5 (diff)
downloadmitmproxy-c57efffe01bdc29e08b5eaa1a9b7071336bd4bb1.tar.gz
mitmproxy-c57efffe01bdc29e08b5eaa1a9b7071336bd4bb1.tar.bz2
mitmproxy-c57efffe01bdc29e08b5eaa1a9b7071336bd4bb1.zip
extracted server_copy_response to common
Diffstat (limited to 'libmproxy/console/common.py')
-rw-r--r--libmproxy/console/common.py20
1 files changed, 19 insertions, 1 deletions
diff --git a/libmproxy/console/common.py b/libmproxy/console/common.py
index 3e6e5ccc..3ba89f8e 100644
--- a/libmproxy/console/common.py
+++ b/libmproxy/console/common.py
@@ -3,7 +3,10 @@ import urwid
import urwid.util
from .. import utils
from ..protocol.http import CONTENT_MISSING
-
+try:
+ import pyperclip
+except:
+ pyperclip = False
VIEW_LIST = 0
VIEW_FLOW = 1
@@ -161,6 +164,21 @@ def raw_format_flow(f, focus, extended, padding):
pile.append(urwid.Columns(resp, dividechars=1))
return urwid.Pile(pile)
+def server_copy_response( k, response, statusbar):
+ if pyperclip:
+ if k == "c":
+ try:
+ pyperclip.copy(response.get_decoded_content())
+ except TypeError:
+ statusbar.message("Content is binary or can be converted to text")
+ elif k == "h":
+ try:
+ pyperclip.copy(str(response.headers))
+ except TypeError:
+ statusbar.message("Error converting headers to text")
+ else:
+ statusbar.message("No clipboard support on your system, sorry.")
+
class FlowCache:
@utils.LRUCache(200)