diff options
| author | Maximilian Hils <git@maximilianhils.com> | 2015-02-27 09:17:59 +0100 | 
|---|---|---|
| committer | Maximilian Hils <git@maximilianhils.com> | 2015-02-27 09:17:59 +0100 | 
| commit | c51a1dbb1166db6265d59f92e7fcf95ec35ff341 (patch) | |
| tree | 53e408d0872ee52a21360c4d57b70cfe106ee296 /libmproxy/console/flowlist.py | |
| parent | 81a274eb51ea7552667a872f0b6db1aeca9315b3 (diff) | |
| parent | bd6c3f64c1f3102a4e91d4a964757821773781e0 (diff) | |
| download | mitmproxy-c51a1dbb1166db6265d59f92e7fcf95ec35ff341.tar.gz mitmproxy-c51a1dbb1166db6265d59f92e7fcf95ec35ff341.tar.bz2 mitmproxy-c51a1dbb1166db6265d59f92e7fcf95ec35ff341.zip | |
Merge branch 'master' of github.com:mitmproxy/mitmproxy
Diffstat (limited to 'libmproxy/console/flowlist.py')
| -rw-r--r-- | libmproxy/console/flowlist.py | 36 | 
1 files changed, 36 insertions, 0 deletions
| diff --git a/libmproxy/console/flowlist.py b/libmproxy/console/flowlist.py index 102fa7b9..9e7c6d69 100644 --- a/libmproxy/console/flowlist.py +++ b/libmproxy/console/flowlist.py @@ -1,5 +1,6 @@  from __future__ import absolute_import  import urwid +from netlib import http  from . import common  def _mkhelp(): @@ -7,13 +8,16 @@ def _mkhelp():      keys = [          ("A", "accept all intercepted flows"),          ("a", "accept this intercepted flow"), +        ("b", "save request/response body"),          ("C", "clear flow list or eventlog"),          ("d", "delete flow"),          ("D", "duplicate flow"),          ("e", "toggle eventlog"),          ("F", "toggle follow flow list"), +        ("g", "copy flow to clipboard"),          ("l", "set limit filter pattern"),          ("L", "load saved flows"), +        ("n", "create a new request"),          ("r", "replay request"),          ("V", "revert changes to request"),          ("w", "save flows "), @@ -204,6 +208,10 @@ class ConnectionItem(common.WWrap):                  self.master.run_script_once,                  self.flow              ) +        elif key == "g": +            common.ask_copy_part("a", self.flow, self.master, self.state) +        elif key == "b": +            common.ask_save_body(None, self.master, self.state, self.flow)          else:              return key @@ -239,6 +247,32 @@ class FlowListBox(urwid.ListBox):          self.master = master          urwid.ListBox.__init__(self, master.flow_list_walker) +    def get_method_raw(self, k): +        if k: +            self.get_url(k)     + +    def get_method(self, k): +        if k == "e": +            self.master.prompt("Method:", "", self.get_method_raw) +        else: +            method = "" +            for i in common.METHOD_OPTIONS: +                if i[1] == k: +                    method = i[0].upper() +            self.get_url(method) + +    def get_url(self,method): +        self.master.prompt("URL:", "http://www.example.com/", self.new_request, method) + +    def new_request(self, url, method): +        parts = http.parse_url(str(url)) +        if not parts: +            self.master.statusbar.message("Invalid Url") +            return +        scheme, host, port, path = parts +        f = self.master.create_request(method, scheme, host, port, path) +        self.master.view_flow(f) +      def keypress(self, size, key):          key = common.shortcuts(key)          if key == "A": @@ -256,6 +290,8 @@ class FlowListBox(urwid.ListBox):                  self.master.state.last_saveload,                  self.master.load_flows_callback              ) +        elif key == "n": +            self.master.prompt_onekey("Method", common.METHOD_OPTIONS, self.get_method)          elif key == "F":              self.master.toggle_follow_flows()          elif key == "W": | 
