aboutsummaryrefslogtreecommitdiffstats
path: root/examples/simple/io_write_dumpfile.py
diff options
context:
space:
mode:
authorMaximilian Hils <git@maximilianhils.com>2016-11-21 02:16:20 +0100
committerMaximilian Hils <git@maximilianhils.com>2016-11-21 02:28:10 +0100
commit9af8f4bb31c94a25780a4189bffa406906249626 (patch)
treecf52f1c312b7bac3d83d796d6b03bb33b4556f26 /examples/simple/io_write_dumpfile.py
parentf74e561524d04c93cd7953f34e78ebe67eaa58a8 (diff)
downloadmitmproxy-9af8f4bb31c94a25780a4189bffa406906249626.tar.gz
mitmproxy-9af8f4bb31c94a25780a4189bffa406906249626.tar.bz2
mitmproxy-9af8f4bb31c94a25780a4189bffa406906249626.zip
organize examples
This commit is largely based on work by Thiago Arrais (@thiagoarrais) and Shane Bradfield (@l33tLumberjack). I wasn't really able to get their PR reasonably merged onto the latest master, so I reapplied their changes manually here and did some further improvements on that.
Diffstat (limited to 'examples/simple/io_write_dumpfile.py')
-rw-r--r--examples/simple/io_write_dumpfile.py29
1 files changed, 29 insertions, 0 deletions
diff --git a/examples/simple/io_write_dumpfile.py b/examples/simple/io_write_dumpfile.py
new file mode 100644
index 00000000..ff1fd0f4
--- /dev/null
+++ b/examples/simple/io_write_dumpfile.py
@@ -0,0 +1,29 @@
+"""
+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.
+"""
+import random
+import sys
+from mitmproxy import io
+
+
+class Writer:
+ def __init__(self, path):
+ if path == "-":
+ f = sys.stdout
+ else:
+ f = open(path, "wb")
+ self.w = io.FlowWriter(f)
+
+ def response(self, flow):
+ if random.choice([True, False]):
+ self.w.add(flow)
+
+
+def start():
+ if len(sys.argv) != 2:
+ raise ValueError('Usage: -s "flowriter.py filename"')
+ return Writer(sys.argv[1])