diff options
author | Aldo Cortesi <aldo@corte.si> | 2014-01-04 14:04:02 -0800 |
---|---|---|
committer | Aldo Cortesi <aldo@corte.si> | 2014-01-04 14:04:02 -0800 |
commit | ac31039ad3c5a7f808065cab426d3d9aeab0004c (patch) | |
tree | be05ffb9ce190f7913532ee644f2d9b4148c43e3 /libmproxy/console | |
parent | a2261e3cf01121fb466bc91cd4117204187ba059 (diff) | |
parent | c5f4614ba5bc8e3497951ef49c66fde07fb02ddb (diff) | |
download | mitmproxy-ac31039ad3c5a7f808065cab426d3d9aeab0004c.tar.gz mitmproxy-ac31039ad3c5a7f808065cab426d3d9aeab0004c.tar.bz2 mitmproxy-ac31039ad3c5a7f808065cab426d3d9aeab0004c.zip |
Merge pull request #198 from Kami/add_css_view
Add CSS view which beautifies minified CSS files
Diffstat (limited to 'libmproxy/console')
-rw-r--r-- | libmproxy/console/contentview.py | 32 | ||||
-rw-r--r-- | libmproxy/console/help.py | 4 |
2 files changed, 35 insertions, 1 deletions
diff --git a/libmproxy/console/contentview.py b/libmproxy/console/contentview.py index 8dd8ad1d..b03d06c5 100644 --- a/libmproxy/console/contentview.py +++ b/libmproxy/console/contentview.py @@ -1,3 +1,4 @@ +import logging import re, cStringIO, traceback, json import urwid @@ -19,6 +20,18 @@ try: except ImportError: # pragma nocover pyamf = None +try: + import cssutils +except ImportError: # pragma nocover + cssutils = None +else: + cssutils.log.setLevel(logging.CRITICAL) + + cssutils.ser.prefs.keepComments = True + cssutils.ser.prefs.omitLastSemicolon = False + cssutils.ser.prefs.indentClosingBrace = False + cssutils.ser.prefs.validOnly = False + VIEW_CUTOFF = 1024*50 @@ -318,7 +331,23 @@ class ViewJavaScript: opts = jsbeautifier.default_options() opts.indent_size = 2 res = jsbeautifier.beautify(content[:limit], opts) - return "JavaScript", _view_text(res, len(content), limit) + return "JavaScript", _view_text(res, len(res), limit) + +class ViewCSS: + name = "CSS" + prompt = ("css", "c") + content_types = [ + "text/css" + ] + + def __call__(self, hdrs, content, limit): + if cssutils: + sheet = cssutils.parseString(content) + beautified = sheet.cssText + else: + beautified = content + + return "CSS", _view_text(beautified, len(beautified), limit) class ViewImage: @@ -409,6 +438,7 @@ views = [ ViewHTML(), ViewHTMLOutline(), ViewJavaScript(), + ViewCSS(), ViewURLEncoded(), ViewMultipart(), ViewImage(), diff --git a/libmproxy/console/help.py b/libmproxy/console/help.py index f8be6605..0d01ac6f 100644 --- a/libmproxy/console/help.py +++ b/libmproxy/console/help.py @@ -62,6 +62,10 @@ class HelpView(urwid.ListBox): [("text", ": JSON")] ), (None, + common.highlight_key("css", "c") + + [("text", ": CSS")] + ), + (None, common.highlight_key("urlencoded", "u") + [("text", ": URL-encoded data")] ), |