From: x2000habouzit Date: Tue, 7 Sep 2004 19:28:44 +0000 (+0000) Subject: first commit X-Git-Tag: xorg/old~1562 X-Git-Url: http://git.polytechnique.org/?a=commitdiff_plain;h=e09d452d7b8e2c324c630e15f5ca1ac079e8b530;p=platal.git first commit --- diff --git a/scripts/mailman/mailman-rpc.py b/scripts/mailman/mailman-rpc.py new file mode 100755 index 0000000..5f91221 --- /dev/null +++ b/scripts/mailman/mailman-rpc.py @@ -0,0 +1,48 @@ +#!/usr/bin/env python + +from SimpleXMLRPCServer import SimpleXMLRPCServer + +from Mailman import mm_cfg +from Mailman import MailList +from Mailman import Utils +from Mailman import Errors +from Mailman.i18n import _ + +class UserDesc: pass + +def lists(): + names = Utils.list_names() + return names + +def members(listname): + try: + mlist = MailList.MailList(listname, lock=False) + except Errors.MMListError, e: + return None + return mlist.getRegularMemberKeys() + +def subscribe(listname,name,mail): + try: + mlist = MailList.MailList(listname, lock=True) + except Errors.MMListError, e: + return 0 + userdesc = UserDesc() + userdesc.fullname, userdesc.address = (name,mail) + userdesc.digest = 0 + try: + mlist.AddMember(userdesc) + mlist.Save() + except Exception, e: + mlist.Unlock() + return 0 + mlist.Unlock() + return 1 + + +server = SimpleXMLRPCServer(("localhost", 4949)) +server.register_function(lists) +server.register_function(members) +server.register_function(subscribe) +server.register_introspection_functions() +server.serve_forever() +