[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