
On 12/03/2015 01:09 PM, Adrian Pepper wrote:
I wrote something (really ugly[*], incrementally developed over a period of weeks) that produced, based on the main "membership" page(s) that produced via web access, e.g.
apepper@pytone.org smHxanudP "Adrian Pepper" apepper@pyttwo.org smHxAnuDP "Adrian Pepper again" empty@pytone.org smHxanudP "Empty Recipient List" mshapiro@pytone.org smHxanudP "Mark Shapiro" onafees@pytthree.org smHXanudP "Oscar Nafees"
those letter options correspond to reading across on https://SERVER/mailman/admin/LISTNAME/members sort of like "ls gone a little crazy".
s/S - subscribe/unsubscribe (not actually implemented, for "safety") (though I did once in a test version when it would be useful) m/M - moderation off/ON h/H - hidden off/ON x/X - nomail off/ON (reason lost) a/A - ack off/ON n/N - not metoo off/ON u/U - nodUpes off/ON (ahem!) d/D - digest off/ON p/P - plaintext off/ON (applies to digest only)
Needs a cookie file for access. Vulnerable to formatting changes in the web page output, of course.
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@msapiro.net","off","off","off","off","off","on","off","off" "Mark","another@address","off","off","[A]","off","off","on","off","off" "Mark","yet@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.