mirror of
https://github.com/Grasscutters/mitmproxy.git
synced 2024-11-27 02:24:18 +00:00
New command
This commit is contained in:
parent
0cb38f6329
commit
9f78c36ec4
@ -50,9 +50,6 @@ CompletionState = typing.NamedTuple(
|
|||||||
class CommandBuffer:
|
class CommandBuffer:
|
||||||
def __init__(self, master: mitmproxy.master.Master, start: str = "") -> None:
|
def __init__(self, master: mitmproxy.master.Master, start: str = "") -> None:
|
||||||
self.master = master
|
self.master = master
|
||||||
option_setting = start.startswith("set") and start.endswith("=")
|
|
||||||
if option_setting:
|
|
||||||
start += self.get_option_value(start)
|
|
||||||
self.text = self.flatten(start)
|
self.text = self.flatten(start)
|
||||||
# Cursor is always within the range [0:len(buffer)].
|
# Cursor is always within the range [0:len(buffer)].
|
||||||
self._cursor = len(self.text)
|
self._cursor = len(self.text)
|
||||||
@ -97,11 +94,6 @@ class CommandBuffer:
|
|||||||
ret.append(("commander_hint", "%s " % v))
|
ret.append(("commander_hint", "%s " % v))
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
def get_option_value(self, txt):
|
|
||||||
option = txt.rstrip("=").split()[1]
|
|
||||||
option_value = getattr(self.master.options, option, None)
|
|
||||||
return option_value if option_value else ""
|
|
||||||
|
|
||||||
def flatten(self, txt):
|
def flatten(self, txt):
|
||||||
parts, _ = self.master.commands.parse_partial(txt)
|
parts, _ = self.master.commands.parse_partial(txt)
|
||||||
return " ".join([x.value for x in parts])
|
return " ".join([x.value for x in parts])
|
||||||
|
@ -277,6 +277,15 @@ class ConsoleAddon:
|
|||||||
"""
|
"""
|
||||||
signals.status_prompt_command.send(partial=" ".join(partial)) # type: ignore
|
signals.status_prompt_command.send(partial=" ".join(partial)) # type: ignore
|
||||||
|
|
||||||
|
@command.command("console.command.set")
|
||||||
|
def console_command_set(self, option: str) -> None:
|
||||||
|
"""Doc"""
|
||||||
|
option_value = getattr(self.master.options, option, None)
|
||||||
|
current_value = option_value if option_value else ""
|
||||||
|
self.master.commands.call(
|
||||||
|
"console.command set {}={}".format(option, current_value)
|
||||||
|
)
|
||||||
|
|
||||||
@command.command("console.view.keybindings")
|
@command.command("console.view.keybindings")
|
||||||
def view_keybindings(self) -> None:
|
def view_keybindings(self) -> None:
|
||||||
"""View the commands list."""
|
"""View the commands list."""
|
||||||
|
@ -26,8 +26,8 @@ def map(km):
|
|||||||
km.add("ctrl b", "console.nav.pageup", ["global"], "Page up")
|
km.add("ctrl b", "console.nav.pageup", ["global"], "Page up")
|
||||||
|
|
||||||
km.add("I", "console.intercept.toggle", ["global"], "Toggle intercept")
|
km.add("I", "console.intercept.toggle", ["global"], "Toggle intercept")
|
||||||
km.add("i", "console.command set intercept=", ["global"], "Set intercept")
|
km.add("i", "console.command.set intercept", ["global"], "Set intercept")
|
||||||
km.add("W", "console.command set save_stream_file=", ["global"], "Stream to file")
|
km.add("W", "console.command.set save_stream_file", ["global"], "Stream to file")
|
||||||
km.add("A", "flow.resume @all", ["flowlist", "flowview"], "Resume all intercepted flows")
|
km.add("A", "flow.resume @all", ["flowlist", "flowview"], "Resume all intercepted flows")
|
||||||
km.add("a", "flow.resume @focus", ["flowlist", "flowview"], "Resume this intercepted flow")
|
km.add("a", "flow.resume @focus", ["flowlist", "flowview"], "Resume this intercepted flow")
|
||||||
km.add(
|
km.add(
|
||||||
@ -46,7 +46,7 @@ def map(km):
|
|||||||
["flowlist", "flowview"],
|
["flowlist", "flowview"],
|
||||||
"Export this flow to file"
|
"Export this flow to file"
|
||||||
)
|
)
|
||||||
km.add("f", "console.command set view_filter=", ["flowlist"], "Set view filter")
|
km.add("f", "console.command.set view_filter", ["flowlist"], "Set view filter")
|
||||||
km.add("F", "set console_focus_follow=toggle", ["flowlist"], "Set focus follow")
|
km.add("F", "set console_focus_follow=toggle", ["flowlist"], "Set focus follow")
|
||||||
km.add(
|
km.add(
|
||||||
"ctrl l",
|
"ctrl l",
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
from mitmproxy import options
|
|
||||||
from mitmproxy.tools.console.commander import commander
|
from mitmproxy.tools.console.commander import commander
|
||||||
from mitmproxy.test import taddons
|
from mitmproxy.test import taddons
|
||||||
|
|
||||||
@ -96,11 +96,3 @@ class TestCommandBuffer:
|
|||||||
with taddons.context() as tctx:
|
with taddons.context() as tctx:
|
||||||
cb = commander.CommandBuffer(tctx.master)
|
cb = commander.CommandBuffer(tctx.master)
|
||||||
assert cb.flatten("foo bar") == "foo bar"
|
assert cb.flatten("foo bar") == "foo bar"
|
||||||
|
|
||||||
def test_get_option_value(self):
|
|
||||||
opts = options.Options(view_filter="value")
|
|
||||||
with taddons.context(options=opts) as tctx:
|
|
||||||
cb = commander.CommandBuffer(tctx.master)
|
|
||||||
assert cb.get_option_value("set unknown_option=") == ""
|
|
||||||
assert cb.get_option_value("set intercept=") == ""
|
|
||||||
assert cb.get_option_value("set view_filter=") == "value"
|
|
||||||
|
Loading…
Reference in New Issue
Block a user