aboutsummaryrefslogtreecommitdiffstats
path: root/examples/addons/commands-paths.py
diff options
context:
space:
mode:
Diffstat (limited to 'examples/addons/commands-paths.py')
-rw-r--r--examples/addons/commands-paths.py32
1 files changed, 32 insertions, 0 deletions
diff --git a/examples/addons/commands-paths.py b/examples/addons/commands-paths.py
new file mode 100644
index 00000000..f37a0fbc
--- /dev/null
+++ b/examples/addons/commands-paths.py
@@ -0,0 +1,32 @@
+import typing
+
+from mitmproxy import command
+from mitmproxy import ctx
+from mitmproxy import flow
+from mitmproxy import types
+
+
+class MyAddon:
+ def __init__(self):
+ self.num = 0
+
+ @command.command("myaddon.histogram")
+ def histogram(
+ self,
+ flows: typing.Sequence[flow.Flow],
+ path: types.Path,
+ ) -> None:
+ totals = {}
+ for f in flows:
+ totals[f.request.host] = totals.setdefault(f.request.host, 0) + 1
+
+ fp = open(path, "w+")
+ for cnt, dom in sorted([(v, k) for (k, v) in totals.items()]):
+ fp.write("%s: %s\n" % (cnt, dom))
+
+ ctx.log.alert("done")
+
+
+addons = [
+ MyAddon()
+]