mirror of
https://github.com/zhigang1992/mitmproxy.git
synced 2026-04-23 20:00:09 +08:00
console: "v" to reverse flow order
This commit is contained in:
@@ -129,8 +129,8 @@ class View(collections.Sequence):
|
||||
self.show_marked = not self.show_marked
|
||||
self._refilter()
|
||||
|
||||
def toggle_reversed(self):
|
||||
self.order_reversed = not self.order_reversed
|
||||
def set_reversed(self, value: bool):
|
||||
self.order_reversed = value
|
||||
self.sig_refresh.send(self)
|
||||
|
||||
def set_order(self, order_key: typing.Callable):
|
||||
@@ -220,6 +220,8 @@ class View(collections.Sequence):
|
||||
raise exceptions.OptionsError(
|
||||
"Unknown flow order: %s" % opts.order
|
||||
)
|
||||
if "order_reversed" in updated:
|
||||
self.set_reversed(opts.order_reversed)
|
||||
|
||||
def request(self, f):
|
||||
self.add(f)
|
||||
|
||||
@@ -29,6 +29,7 @@ def _mkhelp():
|
||||
("r", "replay request"),
|
||||
("S", "server replay request/s"),
|
||||
("U", "unmark all marked flows"),
|
||||
("v", "reverse flow order"),
|
||||
("V", "revert changes to request"),
|
||||
("w", "save flows "),
|
||||
("W", "stream flows to file"),
|
||||
@@ -219,6 +220,9 @@ class FlowItem(urwid.WidgetWrap):
|
||||
for f in self.master.view:
|
||||
f.marked = False
|
||||
signals.flowlist_change.send(self)
|
||||
elif key == "v":
|
||||
val = not self.master.options.order_reversed
|
||||
self.master.options.order_reversed = val
|
||||
elif key == "V":
|
||||
if not self.flow.modified():
|
||||
signals.status_message.send(message="Flow not modified.")
|
||||
|
||||
@@ -52,6 +52,7 @@ class Options(mitmproxy.options.Options):
|
||||
no_mouse: bool = False,
|
||||
follow_focus: bool = False,
|
||||
order: Optional[str] = None,
|
||||
order_reversed: bool = False,
|
||||
**kwargs
|
||||
):
|
||||
self.eventlog = eventlog
|
||||
@@ -63,6 +64,7 @@ class Options(mitmproxy.options.Options):
|
||||
self.no_mouse = no_mouse
|
||||
self.follow_focus = follow_focus
|
||||
self.order = order
|
||||
self.order_reversed = order_reversed
|
||||
super().__init__(**kwargs)
|
||||
|
||||
|
||||
|
||||
@@ -77,13 +77,13 @@ def test_order():
|
||||
|
||||
v.set_order(view.key_request_method)
|
||||
assert [i.request.method for i in v] == ["GET", "GET", "PUT", "PUT"]
|
||||
v.toggle_reversed()
|
||||
v.set_reversed(True)
|
||||
assert [i.request.method for i in v] == ["PUT", "PUT", "GET", "GET"]
|
||||
|
||||
v.set_order(view.key_request_start)
|
||||
assert [i.request.timestamp_start for i in v] == [4, 3, 2, 1]
|
||||
|
||||
v.toggle_reversed()
|
||||
v.set_reversed(False)
|
||||
assert [i.request.timestamp_start for i in v] == [1, 2, 3, 4]
|
||||
|
||||
|
||||
@@ -92,7 +92,7 @@ def test_reversed():
|
||||
v.request(tft(start=1))
|
||||
v.request(tft(start=2))
|
||||
v.request(tft(start=3))
|
||||
v.toggle_reversed()
|
||||
v.set_reversed(True)
|
||||
|
||||
assert v[0].request.timestamp_start == 3
|
||||
assert v[-1].request.timestamp_start == 1
|
||||
@@ -266,9 +266,16 @@ def test_settings():
|
||||
|
||||
|
||||
class Options(options.Options):
|
||||
def __init__(self, *, filter=None, order=None, **kwargs):
|
||||
def __init__(
|
||||
self, *,
|
||||
filter=None,
|
||||
order=None,
|
||||
order_reversed=False,
|
||||
**kwargs
|
||||
):
|
||||
self.filter = filter
|
||||
self.order = order
|
||||
self.order_reversed = order_reversed
|
||||
super().__init__(**kwargs)
|
||||
|
||||
|
||||
@@ -280,3 +287,5 @@ def test_configure():
|
||||
|
||||
tctx.configure(v, order="method")
|
||||
tutils.raises("unknown flow order", tctx.configure, v, order="no")
|
||||
|
||||
tctx.configure(v, order_reversed=True)
|
||||
|
||||
Reference in New Issue
Block a user