diff options
author | Aldo Cortesi <aldo@nullcube.com> | 2012-08-18 17:51:34 +1200 |
---|---|---|
committer | Aldo Cortesi <aldo@nullcube.com> | 2012-08-18 17:51:34 +1200 |
commit | 15e234558dc3ca2e7fb3a3ef73211994bf541584 (patch) | |
tree | db4491800b0d8024064d199592784d249d083275 /libmproxy/console/contentview.py | |
parent | b70e91bbd4548d95429db6a7830c988d334e9990 (diff) | |
download | mitmproxy-15e234558dc3ca2e7fb3a3ef73211994bf541584.tar.gz mitmproxy-15e234558dc3ca2e7fb3a3ef73211994bf541584.tar.bz2 mitmproxy-15e234558dc3ca2e7fb3a3ef73211994bf541584.zip |
Further content view cleaups.
Diffstat (limited to 'libmproxy/console/contentview.py')
-rw-r--r-- | libmproxy/console/contentview.py | 37 |
1 files changed, 28 insertions, 9 deletions
diff --git a/libmproxy/console/contentview.py b/libmproxy/console/contentview.py index 359b3d3c..4b934ed5 100644 --- a/libmproxy/console/contentview.py +++ b/libmproxy/console/contentview.py @@ -1,4 +1,4 @@ -import re, cStringIO, traceback +import re, cStringIO, traceback, json import urwid from PIL import Image from PIL.ExifTags import TAGS @@ -7,6 +7,13 @@ import common from .. import utils, encoding, flow from ..contrib import jsbeautifier, html2text +try: + import pyamf + from pyamf import remoting +except ImportError: # pragma nocover + pyamf = None + + VIEW_CUTOFF = 1024*50 @@ -230,9 +237,25 @@ class ViewAMF: prompt = ("amf", "f") content_types = ["application/x-amf"] def __call__(self, hdrs, content, limit): - s = utils.pretty_amf(content) - if s: - return "AMF", _view_text(s[:limit], len(s), limit) + envelope = remoting.decode(content) + if not envelope: + return None + + data = {} + data['amfVersion'] = envelope.amfVersion + for target, message in iter(envelope): + one_message = {} + + if hasattr(message, 'status'): + one_message['status'] = message.status + + if hasattr(message, 'target'): + one_message['target'] = message.target + + one_message['body'] = message.body + data[target] = one_message + s = json.dumps(data, indent=4) + return "AMF", _view_text(s[:limit], len(s), limit) class ViewJavaScript: @@ -307,12 +330,8 @@ views = [ ViewMultipart(), ViewImage(), ] -try: - import pyamf +if pyamf: views.append(ViewAMF()) -except ImportError: # pragma nocover - pass - content_types_map = {} for i in views: |