aboutsummaryrefslogtreecommitdiffstats
path: root/examples/upsidedownternet.py
blob: e8444c83935b6ade8ac7f095e9df2032a0ccaef0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import cStringIO
from PIL import Image
from libmproxy.models import decoded


def response(context, flow):
    if flow.response.headers.get_first("content-type", "").startswith("image"):
        with decoded(flow.response):  # automatically decode gzipped responses.
            try:
                s = cStringIO.StringIO(flow.response.content)
                img = Image.open(s).rotate(180)
                s2 = cStringIO.StringIO()
                img.save(s2, "png")
                flow.response.content = s2.getvalue()
                flow.response.headers["content-type"] = ["image/png"]
            except:  # Unknown image types etc.
                pass