[tor-commits] [policies/master] Script to provide email activity

atagar at torproject.org atagar at torproject.org
Tue Oct 3 17:08:40 UTC 2017


commit 1b734bf73015ae97399b375c1116dcbfabd4afbd
Author: Damian Johnson <atagar at torproject.org>
Date:   Tue Oct 3 10:08:34 2017 -0700

    Script to provide email activity
---
 scripts/email_activity.py | 48 +++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 48 insertions(+)

diff --git a/scripts/email_activity.py b/scripts/email_activity.py
new file mode 100644
index 0000000..e40fac7
--- /dev/null
+++ b/scripts/email_activity.py
@@ -0,0 +1,48 @@
+import collections
+import re
+import urllib
+
+from datetime import date
+from dateutil import relativedelta  # https://pypi.python.org/pypi/python-dateutil/
+
+EMAIL_LISTS = (
+  'tor-talk',
+  'tor-dev',
+  'tor-relays',
+  'tor-project',
+
+  'ooni-talk',
+  'ooni-dev',
+
+  'global-south',
+  'metrics-team',
+  'tbb-dev',
+  'tor-community-team',
+  'UX',
+)
+
+AUTHOR = re.compile('</A><A NAME="\S+"> </A>\n<I>(.+)\n')
+
+all_emails = []
+emails_for_list = {}  # {author => {list => count}}
+
+for email_list in EMAIL_LISTS:
+  for month_offset in range(6):
+    d = date.today() - relativedelta.relativedelta(months = month_offset)
+    url = "https://lists.torproject.org/pipermail/%s/%s/author.html" % (email_list, d.strftime("%Y-%B"))
+
+    request = urllib.urlopen(url)
+    list_authors = AUTHOR.findall(request.read())
+
+    all_emails += list_authors
+
+    for author, count in collections.Counter(list_authors).items():
+      emails_for_list.setdefault(author, {})[email_list] = count
+
+for author, count in sorted(collections.Counter(all_emails).items(), key = lambda entry: entry[1], reverse = True):
+  list_counts = ['%s %s' % (c, a) for (a, c) in sorted(emails_for_list.get(author, {}).items(), key = lambda e: e[1], reverse = True)]
+
+  print('%s %s' % (count, author))
+  print('  %s' % ', '.join(list_counts))
+  print('')
+



More information about the tor-commits mailing list