[Mailman-Users] View a user's subscription options
Adrian Pepper
arpepper at uwaterloo.ca
Thu Dec 10 13:10:14 EST 2015
I see https://www.msapiro.net/scripts/user_options lists subscribed topics.
Which is something of interest. But it must be run from the server.
I ended up taking my own approach, building on little things I'd written
before, to do an assessment of topic subscriptions from a web client machine.
Does the following mimic some standard utility somewhere?
#
# tag-filter
# From HTML input, output lines of only text or a single tags.
#
I.e. it will produce...
(e.g. from output of
curl -s -b cookiefile https://mailman/mailman/options/test-aharper-subset/aharper--at--dt.uwaterloo.ca )
<html>
<head>
<link rel="SHORTCUT ICON" href="/icons/mm-icon.png">
<title>
aharper at dt.uwaterloo.ca membership configuration for test-aharper-subset
</title>
</head>
<BODY BGCOLOR="#ffffff">
<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
<TR>
<TD WIDTH="100%" BGCOLOR="#99CCFF">
<B>
<FONT COLOR="#000000" SIZE=+1>
test-aharper-subset mailing list membership configuration for
aharper at dt.uwaterloo.ca
</FONT>
[...]
<tr>
<td colspan="2">
<p>
<strong>
[...]
That can simplify rudimentary parsing.
After tag-filter, I can use my "form-filter", which from output such as
the above can produce...
aharper at dt.uwaterloo.ca.disablemail="0"(CHECKED)
aharper at dt.uwaterloo.ca.disablemail="1"(notchecked)
aharper at dt.uwaterloo.ca.deliver-globally="1"(notchecked)
aharper at dt.uwaterloo.ca.digest="0"(CHECKED)
aharper at dt.uwaterloo.ca.digest="1"(notchecked)
aharper at dt.uwaterloo.ca.mime="0"(notchecked)
aharper at dt.uwaterloo.ca.mime="1"(CHECKED)
aharper at dt.uwaterloo.ca.mime-globally="1"(notchecked)
aharper at dt.uwaterloo.ca.dontreceive="1"(notchecked)
aharper at dt.uwaterloo.ca.dontreceive="0"(CHECKED)
aharper at dt.uwaterloo.ca.ackposts="0"(CHECKED)
aharper at dt.uwaterloo.ca.ackposts="1"(notchecked)
aharper at dt.uwaterloo.ca.remind="1"(notchecked)
aharper at dt.uwaterloo.ca.remind="0"(CHECKED)
aharper at dt.uwaterloo.ca.remind-globally="1"(notchecked)
aharper at dt.uwaterloo.ca.conceal="0"(notchecked)
aharper at dt.uwaterloo.ca.conceal="1"(CHECKED)
aharper at dt.uwaterloo.ca.usertopic="Newsletter%2C"(notchecked)
aharper at dt.uwaterloo.ca.usertopic="Test+Topic+2%2C"(notchecked)
aharper at dt.uwaterloo.ca.usertopic="Any+Topic%2C"(notchecked)
aharper at dt.uwaterloo.ca.usertopic="This+Topic+Should+Match+Nothing%2C"(notchecked)
aharper at dt.uwaterloo.ca.usertopic="This+Topic+Should+Match+Everything%2C"(notchecked)
aharper at dt.uwaterloo.ca.usertopic="Farmers+Institute+Newsletters+1%2C"(notchecked)
aharper at dt.uwaterloo.ca.usertopic="Farmers+Institute+Newsletters+2%2C"(notchecked)
aharper at dt.uwaterloo.ca.usertopic="Farmers+Institute+Newsletters+3%2C"(notchecked)
aharper at dt.uwaterloo.ca.usertopic="Farmers+Institute+Newsletters+4%2C"(notchecked)
aharper at dt.uwaterloo.ca.usertopic="Farmers+Institute+Newsletters+5%2C"(notchecked)
aharper at dt.uwaterloo.ca.usertopic="Farmers+Institute+Newsletters+6%2C"(notchecked)
aharper at dt.uwaterloo.ca.usertopic="NothingPythonOrg%2C"(notchecked)
aharper at dt.uwaterloo.ca.usertopic="NothingMine%2C"(notchecked)
aharper at dt.uwaterloo.ca.rcvtopic="0"(CHECKED)
aharper at dt.uwaterloo.ca.rcvtopic="1"(notchecked)
aharper at dt.uwaterloo.ca.nodupes="0"(CHECKED)
aharper at dt.uwaterloo.ca.nodupes="1"(notchecked)
aharper at dt.uwaterloo.ca.nodupes-globally="1"(notchecked)
aharper at dt.uwaterloo.ca.options-submit="Submit My Changes"
(Both tag-filter and form-filter may make simplifying assumptions based
on what has and has never been seen as mailman HTML, e.g. on what to use
as "form name").
After turning a simple pipeline like that into "mailman-get-member-options"
and writing something to do:
get-member-list $listname | \
xargs -n 1 mailman-get-member-options $listname
I added that to what I run in my standard list dumps.
Allowing me to assess...
(relevant output is distributed into */members.optioned)
cs-xh-admin% grep topic= */*optioned | sed 's/^[^:]*:.*[.]//' | sort | uniq -c | sort -nr
1063 rcvtopic="1"(notchecked)
1063 rcvtopic="0"(CHECKED)
104 usertopic="Topic+Which+Gets+No+Posts"(notchecked)
102 usertopic="Farmers+Institute+Newsletters"(notchecked)
4 usertopic="This+Topic+Should+Match+Nothing%2C"(notchecked)
4 usertopic="This+Topic+Should+Match+Everything%2C"(notchecked)
4 usertopic="Test+Topic+2%2C"(notchecked)
4 usertopic="SCS+Newsletter%2C"(notchecked)
4 usertopic="NothingPythonOrg%2C"(notchecked)
4 usertopic="NothingMine%2C"(notchecked)
4 usertopic="Farmers+Institute+Newsletters+6%2C"(notchecked)
4 usertopic="Farmers+Institute+Newsletters+5%2C"(notchecked)
4 usertopic="Farmers+Institute+Newsletters+4%2C"(notchecked)
4 usertopic="Farmers+Institute+Newsletters+3%2C"(notchecked)
4 usertopic="Farmers+Institute+Newsletters+2%2C"(notchecked)
4 usertopic="Farmers+Institute+Newsletters+1%2C"(notchecked)
4 usertopic="Any+Topic%2C"(notchecked)
2 usertopic="Farmers+Institute+Newsletters"(CHECKED)
1 rcvtopic="1"(CHECKED)
1 rcvtopic="0"(notchecked)
cs-xh-admin%
(Not a lot of interest is selecting based on topic (yet)).
(The only use so far is my own testing).
Adrian.
On 12/03/2015 1:57 PM -0800 Mark Sapiro wrote:
>
> On 12/03/2015 01:09 PM, Adrian Pepper wrote:
> >
> > I wrote something (really ugly[*], incrementally developed over a period
[...]
>
>
> You might be interested in looking at
> <https://www.msapiro.net/scripts/mailman-subscribers.py> which is
> another web admin membership screenscraper which when run with the --csv
> option produces output like
>
>
> > "Full name","email address","mod","hide","nomail","ack","not metoo","nodupes","digest","plain"
> > "Mark Sapiro","mark at msapiro.net","off","off","off","off","off","on","off","off"
> > "Mark","another at address","off","off","[A]","off","off","on","off","off"
> > "Mark","yet at another","off","off","[A]","off","on","on","off","off"
>
>
> It uses Python's cookielib to deal with cookies and only requires the
> hostname, listname and admin password for input.
>
> --
> Mark Sapiro
>
More information about the Mailman-Users
mailing list