codekingpro/portable-devtools
115k
1import logging2from collections.abc import Sequence3 4from mitmproxy import exceptions5from mitmproxy import flow6from mitmproxy.tools.console import overlay7from mitmproxy.tools.console import signals8 9 10class CommandExecutor:11 def __init__(self, master):12 self.master = master13 14 def __call__(self, cmd: str) -> None:15 if cmd.strip():16 try:17 ret = self.master.commands.execute(cmd)18 except exceptions.CommandError as e:19 logging.error(str(e))20 else:21 if ret is not None:22 if type(ret) == Sequence[flow.Flow]: # noqa: E72123 signals.status_message.send(24 message="Command returned %s flows" % len(ret)25 )26 elif type(ret) is flow.Flow:27 signals.status_message.send(message="Command returned 1 flow")28 else:29 self.master.overlay(30 overlay.DataViewerOverlay(31 self.master,32 ret,33 ),34 valign="top",35 )36 