mitmproxy/examples/simple/io_write_dumpfile.py

28 lines
704 B
Python
Raw Normal View History

"""
This script how to generate a mitmproxy dump file,
as it would also be generated by passing `-w` to mitmproxy.
In contrast to `-w`, this gives you full control over which
flows should be saved and also allows you to rotate files or log
to multiple files in parallel.
"""
2015-04-12 01:47:58 +00:00
import random
import sys
2017-04-28 21:56:14 +00:00
from mitmproxy import io, http
import typing # noqa
2015-04-12 01:50:14 +00:00
class Writer:
2017-04-28 21:56:14 +00:00
def __init__(self, path: str) -> None:
self.f: typing.IO[bytes] = open(path, "wb")
2017-05-26 14:14:20 +00:00
self.w = io.FlowWriter(self.f)
2017-04-28 21:56:14 +00:00
def response(self, flow: http.HTTPFlow) -> None:
if random.choice([True, False]):
self.w.add(flow)
2015-04-12 01:50:14 +00:00
2017-05-26 14:14:20 +00:00
def done(self):
self.f.close()
2016-07-08 01:37:33 +00:00
addons = [Writer(sys.argv[1])]