From e09d452d7b8e2c324c630e15f5ca1ac079e8b530 Mon Sep 17 00:00:00 2001 From: x2000habouzit Date: Tue, 7 Sep 2004 19:28:44 +0000 Subject: [PATCH] first commit --- scripts/mailman/mailman-rpc.py | 48 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100755 scripts/mailman/mailman-rpc.py 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() + -- 2.1.4