aboutsummaryrefslogtreecommitdiffstats
path: root/libmproxy/console/flowlist.py
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@nullcube.com>2015-06-12 13:53:07 +1200
committerAldo Cortesi <aldo@nullcube.com>2015-06-12 13:53:07 +1200
commit85e1ae7543e903d7f703e9d07515929513381687 (patch)
tree32bac45c82523c56f60142a612ddfa17e4d1cba4 /libmproxy/console/flowlist.py
parentd389b9c59d7f4a4918a15b5a40d771ccc154d751 (diff)
parent946030367fee0d624a29ba57a11d5f2d1dea4105 (diff)
downloadmitmproxy-85e1ae7543e903d7f703e9d07515929513381687.tar.gz
mitmproxy-85e1ae7543e903d7f703e9d07515929513381687.tar.bz2
mitmproxy-85e1ae7543e903d7f703e9d07515929513381687.zip
Merge pull request #624 from drahosj/master
Added flow marking functionality in the console
Diffstat (limited to 'libmproxy/console/flowlist.py')
-rw-r--r--libmproxy/console/flowlist.py21
1 files changed, 20 insertions, 1 deletions
diff --git a/libmproxy/console/flowlist.py b/libmproxy/console/flowlist.py
index 39245984..bb23df75 100644
--- a/libmproxy/console/flowlist.py
+++ b/libmproxy/console/flowlist.py
@@ -17,9 +17,11 @@ def _mkhelp():
("F", "toggle follow flow list"),
("l", "set limit filter pattern"),
("L", "load saved flows"),
+ ("m", "toggle flow mark"),
("n", "create a new request"),
("P", "copy flow to clipboard"),
("r", "replay request"),
+ ("U", "unmark all marked flows"),
("V", "revert changes to request"),
("w", "save flows "),
("W", "stream flows to file"),
@@ -108,7 +110,8 @@ class ConnectionItem(urwid.WidgetWrap):
return common.format_flow(
self.flow,
self.f,
- hostheader = self.master.showhost
+ hostheader = self.master.showhost,
+ marked=self.state.flow_marked(self.flow)
)
def selectable(self):
@@ -120,6 +123,11 @@ class ConnectionItem(urwid.WidgetWrap):
prompt = "Save all flows to",
callback = self.master.save_flows
)
+ elif k == "m":
+ signals.status_prompt_path.send(
+ prompt = "Save marked flows to",
+ callback = self.master.save_marked_flows
+ )
else:
signals.status_prompt_path.send(
prompt = "Save this flow to",
@@ -177,6 +185,12 @@ class ConnectionItem(urwid.WidgetWrap):
elif key == "D":
f = self.master.duplicate_flow(self.flow)
self.master.view_flow(f)
+ elif key == "m":
+ if self.state.flow_marked(self.flow):
+ self.state.set_flow_marked(self.flow, False)
+ else:
+ self.state.set_flow_marked(self.flow, True)
+ signals.flowlist_change.send(self)
elif key == "r":
r = self.master.replay_request(self.flow)
if r:
@@ -202,6 +216,10 @@ class ConnectionItem(urwid.WidgetWrap):
),
callback = self.stop_server_playback_prompt,
)
+ elif key == "U":
+ for f in self.state.flows:
+ self.state.set_flow_marked(f, False)
+ signals.flowlist_change.send(self)
elif key == "V":
if not self.flow.modified():
signals.status_message.send(message="Flow not modified.")
@@ -216,6 +234,7 @@ class ConnectionItem(urwid.WidgetWrap):
keys = (
("all flows", "a"),
("this flow", "t"),
+ ("marked flows", "m"),
),
callback = self.save_flows_prompt,
)