mitmproxy/examples/upsidedownternet.py

18 lines
664 B
Python
Raw Normal View History

2016-03-20 18:40:03 +00:00
from six.moves import cStringIO as StringIO
2014-01-04 02:15:08 +00:00
from PIL import Image
from mitmproxy.models import decoded
2014-01-04 02:15:08 +00:00
2015-05-30 00:03:28 +00:00
2014-09-08 14:02:31 +00:00
def response(context, flow):
2015-09-05 18:45:58 +00:00
if flow.response.headers.get("content-type", "").startswith("image"):
2014-09-08 14:02:31 +00:00
with decoded(flow.response): # automatically decode gzipped responses.
try:
2016-03-20 18:40:03 +00:00
s = StringIO(flow.response.content)
2014-09-08 14:02:31 +00:00
img = Image.open(s).rotate(180)
2016-03-20 18:40:03 +00:00
s2 = StringIO()
2014-09-08 14:02:31 +00:00
img.save(s2, "png")
flow.response.content = s2.getvalue()
2015-09-05 18:45:58 +00:00
flow.response.headers["content-type"] = "image/png"
2014-09-08 14:02:31 +00:00
except: # Unknown image types etc.
2015-05-30 00:03:28 +00:00
pass