console: fix/improve server replay
- Fix "S" shortcut in list view - Consolidate replay from file in global R shortcut - Fix help
This commit is contained in:
parent
734d177007
commit
6427176cf1
|
@ -18,14 +18,15 @@ def _mkhelp():
|
||||||
("d", "delete flow"),
|
("d", "delete flow"),
|
||||||
("D", "duplicate flow"),
|
("D", "duplicate flow"),
|
||||||
("e", "toggle eventlog"),
|
("e", "toggle eventlog"),
|
||||||
|
("E", "export flow to file"),
|
||||||
("f", "filter view"),
|
("f", "filter view"),
|
||||||
("F", "toggle follow flow list"),
|
("F", "toggle follow flow list"),
|
||||||
("L", "load saved flows"),
|
("L", "load saved flows"),
|
||||||
("m", "toggle flow mark"),
|
("m", "toggle flow mark"),
|
||||||
("M", "toggle marked flow view"),
|
("M", "toggle marked flow view"),
|
||||||
("n", "create a new request"),
|
("n", "create a new request"),
|
||||||
("E", "export flow to file"),
|
|
||||||
("r", "replay request"),
|
("r", "replay request"),
|
||||||
|
("S", "server replay request/s"),
|
||||||
("U", "unmark all marked flows"),
|
("U", "unmark all marked flows"),
|
||||||
("V", "revert changes to request"),
|
("V", "revert changes to request"),
|
||||||
("w", "save flows "),
|
("w", "save flows "),
|
||||||
|
@ -140,36 +141,13 @@ class ConnectionItem(urwid.WidgetWrap):
|
||||||
args = (self.flow,)
|
args = (self.flow,)
|
||||||
)
|
)
|
||||||
|
|
||||||
def stop_server_playback_prompt(self, a):
|
|
||||||
if a != "n":
|
|
||||||
self.master.stop_server_playback()
|
|
||||||
|
|
||||||
def server_replay_prompt(self, k):
|
def server_replay_prompt(self, k):
|
||||||
|
a = self.master.addons.get("serverplayback")
|
||||||
if k == "a":
|
if k == "a":
|
||||||
self.master.start_server_playback(
|
a.load([i.copy() for i in self.master.state.view])
|
||||||
[i.copy() for i in self.master.state.view],
|
|
||||||
self.master.options.replay_kill_extra, self.master.options.server_replay_use_headers,
|
|
||||||
False, self.master.options.server_replay_nopop,
|
|
||||||
self.master.options.server_replay_ignore_params,
|
|
||||||
self.master.options.server_replay_ignore_content,
|
|
||||||
self.master.options.server_replay_ignore_payload_params,
|
|
||||||
self.master.options.server_replay_ignore_host
|
|
||||||
)
|
|
||||||
elif k == "t":
|
elif k == "t":
|
||||||
self.master.start_server_playback(
|
a.load([self.flow.copy()])
|
||||||
[self.flow.copy()],
|
signals.update_settings.send(self)
|
||||||
self.master.options.replay_kill_extra, self.master.options.server_replay_use_headers,
|
|
||||||
False, self.master.options.server_replay_nopop,
|
|
||||||
self.master.options.server_replay_ignore_params,
|
|
||||||
self.master.options.server_replay_ignore_content,
|
|
||||||
self.master.options.server_replay_ignore_payload_params,
|
|
||||||
self.master.options.server_replay_ignore_host
|
|
||||||
)
|
|
||||||
else:
|
|
||||||
signals.status_prompt_path.send(
|
|
||||||
prompt = "Server replay path",
|
|
||||||
callback = self.master.server_playback_path
|
|
||||||
)
|
|
||||||
|
|
||||||
def mouse_event(self, size, event, button, col, row, focus):
|
def mouse_event(self, size, event, button, col, row, focus):
|
||||||
if event == "mouse press" and button == 1:
|
if event == "mouse press" and button == 1:
|
||||||
|
@ -207,24 +185,27 @@ class ConnectionItem(urwid.WidgetWrap):
|
||||||
signals.status_message.send(message=r)
|
signals.status_message.send(message=r)
|
||||||
signals.flowlist_change.send(self)
|
signals.flowlist_change.send(self)
|
||||||
elif key == "S":
|
elif key == "S":
|
||||||
if not self.master.server_playback:
|
def stop_server_playback(response):
|
||||||
signals.status_prompt_onekey.send(
|
if response == "y":
|
||||||
prompt = "Server Replay",
|
self.master.options.server_replay = []
|
||||||
keys = (
|
a = self.master.addons.get("serverplayback")
|
||||||
("all flows", "a"),
|
if a.count():
|
||||||
("this flow", "t"),
|
|
||||||
("file", "f"),
|
|
||||||
),
|
|
||||||
callback = self.server_replay_prompt,
|
|
||||||
)
|
|
||||||
else:
|
|
||||||
signals.status_prompt_onekey.send(
|
signals.status_prompt_onekey.send(
|
||||||
prompt = "Stop current server replay?",
|
prompt = "Stop current server replay?",
|
||||||
keys = (
|
keys = (
|
||||||
("yes", "y"),
|
("yes", "y"),
|
||||||
("no", "n"),
|
("no", "n"),
|
||||||
),
|
),
|
||||||
callback = self.stop_server_playback_prompt,
|
callback = stop_server_playback,
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
signals.status_prompt_onekey.send(
|
||||||
|
prompt = "Server Replay",
|
||||||
|
keys = (
|
||||||
|
("all flows", "a"),
|
||||||
|
("this flow", "t"),
|
||||||
|
),
|
||||||
|
callback = self.server_replay_prompt,
|
||||||
)
|
)
|
||||||
elif key == "U":
|
elif key == "U":
|
||||||
for f in self.state.flows:
|
for f in self.state.flows:
|
||||||
|
|
|
@ -53,7 +53,7 @@ class HelpView(urwid.ListBox):
|
||||||
("o", "options"),
|
("o", "options"),
|
||||||
("q", "quit / return to previous page"),
|
("q", "quit / return to previous page"),
|
||||||
("Q", "quit without confirm prompt"),
|
("Q", "quit without confirm prompt"),
|
||||||
("R", "replay of HTTP requests/responses"),
|
("R", "replay of requests/responses from file"),
|
||||||
]
|
]
|
||||||
text.extend(
|
text.extend(
|
||||||
common.format_keyvals(keys, key="key", val="text", indent=4)
|
common.format_keyvals(keys, key="key", val="text", indent=4)
|
||||||
|
|
|
@ -136,6 +136,8 @@ class StatusBar(urwid.WidgetWrap):
|
||||||
def get_status(self):
|
def get_status(self):
|
||||||
r = []
|
r = []
|
||||||
|
|
||||||
|
sreplay = self.master.addons.get("serverplayback")
|
||||||
|
|
||||||
if len(self.master.options.setheaders):
|
if len(self.master.options.setheaders):
|
||||||
r.append("[")
|
r.append("[")
|
||||||
r.append(("heading_key", "H"))
|
r.append(("heading_key", "H"))
|
||||||
|
@ -148,11 +150,10 @@ class StatusBar(urwid.WidgetWrap):
|
||||||
r.append("[")
|
r.append("[")
|
||||||
r.append(("heading_key", "cplayback"))
|
r.append(("heading_key", "cplayback"))
|
||||||
r.append(":%s]" % self.master.client_playback.count())
|
r.append(":%s]" % self.master.client_playback.count())
|
||||||
if self.master.options.server_replay:
|
if sreplay.count():
|
||||||
r.append("[")
|
r.append("[")
|
||||||
r.append(("heading_key", "splayback"))
|
r.append(("heading_key", "splayback"))
|
||||||
a = self.master.addons.get("serverplayback")
|
r.append(":%s]" % sreplay.count())
|
||||||
r.append(":%s]" % a.count())
|
|
||||||
if self.master.options.ignore_hosts:
|
if self.master.options.ignore_hosts:
|
||||||
r.append("[")
|
r.append("[")
|
||||||
r.append(("heading_key", "I"))
|
r.append(("heading_key", "I"))
|
||||||
|
|
Loading…
Reference in New Issue