From 3c68964f5b80997703d4713dc3f5eda47ae68f3c Mon Sep 17 00:00:00 2001 From: Patrick Cernko <pcernko@mpi-klsb.mpg.de> Date: Tue, 16 Jan 2024 14:05:35 +0100 Subject: [PATCH] support for json output --- mailman-subscribers3.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/mailman-subscribers3.py b/mailman-subscribers3.py index f515f3f..79615ef 100755 --- a/mailman-subscribers3.py +++ b/mailman-subscribers3.py @@ -166,6 +166,7 @@ import re import string import urllib.request, urllib.parse, urllib.error import getopt +import json import http.client from time import sleep from html.parser import HTMLParser @@ -241,7 +242,7 @@ def main(): try: opts, args = getopt.getopt(sys.argv[1:], "ho:rd:fn:cKu:Uvs", ["help", "output=", "regular", "digest=", "fullnames", - "nomail=", "sympa", "csv", "kv", "url_path=", "unhide", "verbose", + "nomail=", "sympa", "csv", "kv", "json", "url_path=", "unhide", "verbose", "ssl"]) except: usage(2) @@ -278,6 +279,8 @@ def main(): kv = True if o in ("-c", "--csv"): csv = True + if o in ("-j", "--json"): + jsonoutput = True if o in ("-u", "--url_path"): url_path = a if o in ("-U", "--unhide"): @@ -382,6 +385,8 @@ or you may need to specify --url_path. if verbose and nunhide % 100 == 0: print('.', end=' ', file=sys.stderr) email = urllib.parse.unquote(email) + if jsonoutput: + continue if csv: print('"%s","%s","%s","%s","%s","%s","%s","%s","%s","%s"'\ % (d['_realname'], email, d['_mod'], d['_hide'], @@ -460,6 +465,9 @@ visibility %s else: print('%s <%s>' % (d['_realname'], email), file=fp) + if jsonoutput: + print(json.dumps(dict(subscriberlist), indent=4), file=fp) + fp.close() -- GitLab