From ba42984b593246b0105a077311e16a2ca71f79eb Mon Sep 17 00:00:00 2001 From: Marcelo Glezer Date: Tue, 10 Feb 2015 15:24:21 -0300 Subject: added support for creating new requests. still wip (not working for https) --- libmproxy/console/flowlist.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'libmproxy/console/flowlist.py') diff --git a/libmproxy/console/flowlist.py b/libmproxy/console/flowlist.py index c5cef061..8dfaba95 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(): @@ -16,6 +17,7 @@ def _mkhelp(): ("g", "copy flow to clipboard"), ("l", "set limit filter pattern"), ("L", "load saved flows"), + ("n", "creates a new request"), ("r", "replay request"), ("V", "revert changes to request"), ("w", "save flows "), @@ -245,6 +247,31 @@ 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): + try: + scheme, host, port, path = http.parse_url(url) + f = self.master.add_request(method, scheme, host, port, path) + self.master.view_flow(f) + except ValueError: + self.master.statusbar.message("Invalid Url") + def keypress(self, size, key): key = common.shortcuts(key) if key == "A": @@ -262,6 +289,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": -- cgit v1.2.3