aboutsummaryrefslogtreecommitdiffstats
path: root/mitmproxy
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@nullcube.com>2016-07-14 17:19:33 +1200
committerAldo Cortesi <aldo@nullcube.com>2016-07-14 19:54:15 +1200
commitdeffed2196a8d595624998b9fcc8fa4016b41808 (patch)
tree0aa8ef89dda9b42fed8c87843e9b284395e37c9b /mitmproxy
parentb94f5fd361af6255ad4d3c7a88b9a21868736dea (diff)
downloadmitmproxy-deffed2196a8d595624998b9fcc8fa4016b41808.tar.gz
mitmproxy-deffed2196a8d595624998b9fcc8fa4016b41808.tar.bz2
mitmproxy-deffed2196a8d595624998b9fcc8fa4016b41808.zip
Script cleanup: editing in console, Python3 compatibility fixes
Diffstat (limited to 'mitmproxy')
-rw-r--r--mitmproxy/console/grideditor.py11
-rw-r--r--mitmproxy/console/master.py32
-rw-r--r--mitmproxy/console/options.py16
-rw-r--r--mitmproxy/console/statusbar.py9
4 files changed, 20 insertions, 48 deletions
diff --git a/mitmproxy/console/grideditor.py b/mitmproxy/console/grideditor.py
index 9fa51ccb..f304de57 100644
--- a/mitmproxy/console/grideditor.py
+++ b/mitmproxy/console/grideditor.py
@@ -6,11 +6,12 @@ import re
import urwid
+from mitmproxy import exceptions
from mitmproxy import filt
-from mitmproxy import script
-from mitmproxy import utils
+from mitmproxy.builtins import script
from mitmproxy.console import common
from mitmproxy.console import signals
+from netlib import strutils
from netlib.http import cookies
from netlib.http import user_agents
@@ -55,7 +56,7 @@ class TextColumn:
o = editor.walker.get_current_value()
if o is not None:
n = editor.master.spawn_editor(o.encode("string-escape"))
- n = utils.clean_hanging_newline(n)
+ n = strutils.clean_hanging_newline(n)
editor.walker.set_current_value(n, False)
editor.walker._modified()
elif key in ["enter"]:
@@ -643,8 +644,8 @@ class ScriptEditor(GridEditor):
def is_error(self, col, val):
try:
- script.Script.parse_command(val)
- except script.ScriptException as e:
+ script.parse_command(val)
+ except exceptions.AddonError as e:
return str(e)
diff --git a/mitmproxy/console/master.py b/mitmproxy/console/master.py
index bc373a2b..64bd9f0a 100644
--- a/mitmproxy/console/master.py
+++ b/mitmproxy/console/master.py
@@ -248,23 +248,6 @@ class ConsoleMaster(flow.FlowMaster):
if options.server_replay:
self.server_playback_path(options.server_replay)
- if options.scripts:
- for i in options.scripts:
- try:
- self.load_script(i)
- except exceptions.ScriptException as e:
- print("Script load error: {}".format(e), file=sys.stderr)
- sys.exit(1)
-
- if options.outfile:
- err = self.start_stream_to_path(
- options.outfile[0],
- options.outfile[1]
- )
- if err:
- print("Stream file error: {}".format(err), file=sys.stderr)
- sys.exit(1)
-
self.view_stack = []
if options.app:
@@ -685,20 +668,7 @@ class ConsoleMaster(flow.FlowMaster):
self.refresh_focus()
def edit_scripts(self, scripts):
- commands = [x[0] for x in scripts] # remove outer array
- if commands == [s.command for s in self.scripts]:
- return
-
- self.unload_scripts()
- for command in commands:
- try:
- self.load_script(command)
- except exceptions.ScriptException as e:
- signals.status_message.send(
- message='Error loading "{}".'.format(command)
- )
- signals.add_event('Error loading "{}":\n{}'.format(command, e), "error")
- signals.update_settings.send(self)
+ self.options.scripts = [x[0] for x in scripts]
def stop_client_playback_prompt(self, a):
if a != "n":
diff --git a/mitmproxy/console/options.py b/mitmproxy/console/options.py
index d363ba74..d8824b05 100644
--- a/mitmproxy/console/options.py
+++ b/mitmproxy/console/options.py
@@ -54,7 +54,7 @@ class Options(urwid.WidgetWrap):
select.Option(
"Scripts",
"S",
- lambda: master.scripts,
+ lambda: master.options.scripts,
self.scripts
),
@@ -160,12 +160,14 @@ class Options(urwid.WidgetWrap):
self.master.replacehooks.clear()
self.master.set_ignore_filter([])
self.master.set_tcp_filter([])
- self.master.scripts = []
- self.master.options.anticache = False
- self.master.options.anticomp = False
- self.master.options.stickyauth = None
- self.master.options.stickycookie = None
+ self.master.options.update(
+ scripts = [],
+ anticache = False,
+ anticomp = False,
+ stickyauth = None,
+ stickycookie = None
+ )
self.master.state.default_body_view = contentviews.get("Auto")
@@ -234,7 +236,7 @@ class Options(urwid.WidgetWrap):
self.master.view_grideditor(
grideditor.ScriptEditor(
self.master,
- [[i.command] for i in self.master.scripts],
+ [[i] for i in self.master.options.scripts],
self.master.edit_scripts
)
)
diff --git a/mitmproxy/console/statusbar.py b/mitmproxy/console/statusbar.py
index fc41869c..e7a700a6 100644
--- a/mitmproxy/console/statusbar.py
+++ b/mitmproxy/console/statusbar.py
@@ -218,14 +218,13 @@ class StatusBar(urwid.WidgetWrap):
dst.address.host,
dst.address.port
))
- if self.master.scripts:
+ if self.master.options.scripts:
r.append("[")
r.append(("heading_key", "s"))
- r.append("cripts:%s]" % len(self.master.scripts))
- # r.append("[lt:%0.3f]"%self.master.looptime)
+ r.append("cripts:%s]" % len(self.master.options.scripts))
- if self.master.stream:
- r.append("[W:%s]" % self.master.stream_path)
+ if self.master.options.outfile:
+ r.append("[W:%s]" % self.master.outfile[0])
return r