[Moin-devel] CVS: MoinMoin wikirpc.py,NONE,1.1 cgimain.py,1.53,1.54

J?rgen Hermann jhermann at users.sourceforge.net
Wed May 8 18:55:02 EDT 2002


Update of /cvsroot/moin/MoinMoin
In directory usw-pr-cvs1:/tmp/cvs-serv1510/MoinMoin

Modified Files:
	cgimain.py 
Added Files:
	wikirpc.py 
Log Message:
XMLRPC skeleton added


--- NEW FILE: wikirpc.py ---
"""
    MoinMoin - XMLRPC Interface

    Copyright (c) 2002 by Jürgen Hermann <jh at web.de>
    All rights reserved, see COPYING for details.

    $Id: wikirpc.py,v 1.1 2002/05/09 01:54:40 jhermann Exp $
"""

import sys

from MoinMoin import webapi
from MoinMoin.support import xmlrpclib

def xmlrpc(request):
    # read request
    data = sys.stdin.read() #int(self.headers["content-length"]))

    if 0:
        webapi.http_headers(request, [
            "Content-Type: text/plain",
            "Content-Length: %d" % len(data),
        ])
        sys.stdout.write(data)
        return

    params, method = xmlrpclib.loads(data)

    # generate response
    try:
        response = (method, params)
        # wrap response in a singleton tuple
        response = (response,)
    except:
        # report exception back to server
        response = xmlrpclib.dumps(
            xmlrpclib.Fault(1, "%s:%s" % (sys.exc_type, sys.exc_value))
            )
    else:
        response = xmlrpclib.dumps(response, methodresponse=1)

    webapi.http_headers(request, [
        "Content-Type: text/xml",
        "Content-Length: %d" % len(response),
    ])
    sys.stdout.write(response)
    sys.stdout.flush()


Index: cgimain.py
===================================================================
RCS file: /cvsroot/moin/MoinMoin/cgimain.py,v
retrieving revision 1.53
retrieving revision 1.54
diff -C2 -r1.53 -r1.54
*** cgimain.py	24 Apr 2002 20:11:21 -0000	1.53
--- cgimain.py	9 May 2002 01:54:40 -0000	1.54
***************
*** 120,123 ****
--- 120,128 ----
      #     sys.stderr.write("    %s = '%s'\n" % (key, os.environ[key]))
  
+     if os.environ.get('QUERY_STRING') == 'action=xmlrpc':
+         from MoinMoin.wikirpc import xmlrpc
+         xmlrpc(request)
+         return request
+ 
      # parse request data
      try:





More information about the Moin-devel mailing list