Diff for /XMLRpcTools/XMLRpcTools.py between versions 1.7 and 1.11

version 1.7, 2007/10/22 18:34:35 version 1.11, 2010/03/19 11:39:52
Line 12  class XMLRpcServerProxy(SimpleItem): Line 12  class XMLRpcServerProxy(SimpleItem):
           
     meta_type="XMLRpcServerProxy"      meta_type="XMLRpcServerProxy"
           
     rpc_arg_expr='[^A-z0-9]'      rpc_no_arg_expr='[^A-z0-9]'
           
     manage_options= (      manage_options= (
         {'label':'Main Config','action':'mainConfigHTML'},          {'label':'Main Config','action':'mainConfigHTML'},
Line 38  class XMLRpcServerProxy(SimpleItem): Line 38  class XMLRpcServerProxy(SimpleItem):
         return pr          return pr
           
           
     def eval(self,method,argument):      def eval(self,method,argument,outputUnicode=True):
         """do proxy request"""          """do proxy request"""
         server=self.ServerProxy()          server=self.ServerProxy()
                   
Line 46  class XMLRpcServerProxy(SimpleItem): Line 46  class XMLRpcServerProxy(SimpleItem):
             # for XML-RPC methods only letters are allowed              # for XML-RPC methods only letters are allowed
             method=re.sub('[^A-z0-9_]','',method)              method=re.sub('[^A-z0-9_]','',method)
             # clean argument              # clean argument
             argument=re.sub(self.rpc_arg_expr,'',argument)              argument=re.sub(self.rpc_no_arg_expr,'',argument)
                           
             cmd="""server.%s('%s')"""%(method,argument)              cmd="""server.%s('%s')"""%(method,argument)
                         
Line 63  class XMLRpcServerProxy(SimpleItem): Line 63  class XMLRpcServerProxy(SimpleItem):
             resp = server.getresponse()              resp = server.getresponse()
             data = resp.read()              data = resp.read()
             #print "GOT: ", resp.status, ", ", resp.reason, " = ", data              #print "GOT: ", resp.status, ", ", resp.reason, " = ", data
               if outputUnicode:
                   return data.decode('UTF-8')
               else:
                   return data
           
       def eval2(self,method,argument1,argument2,outputUnicode=True):
           """do proxy request"""
           server=self.ServerProxy()
           
           if self.use_xmlrpc:
               # for XML-RPC methods only letters are allowed
               method=re.sub('[^A-z0-9_]','',method)
               # clean argument
               argument1=re.sub(self.rpc_no_arg_expr,'',argument1)
               argument2=re.sub(self.rpc_no_arg_expr,'',argument2)
               
               cmd="""server.%s('%s','%s')"""%(method,argument1,argument2)
              
               return eval(cmd)
           else:
               # HTTP
               # TODO: check arguments
               uri = method
               if argument1:
                   uri += '?' + argument1 + argument2
               
               #print "GET: ", uri
               server.request("GET", uri)
               resp = server.getresponse()
               data = resp.read()
               #print "GOT: ", resp.status, ", ", resp.reason, " = ", data
                           
               if outputUnicode:
             return data.decode('UTF-8')              return data.decode('UTF-8')
               else:
                   return data
                   
           
     def mainConfigHTML(self):      def mainConfigHTML(self):
Line 72  class XMLRpcServerProxy(SimpleItem): Line 106  class XMLRpcServerProxy(SimpleItem):
         pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','manageXMLRpcServerProxy.zpt')).__of__(self)          pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','manageXMLRpcServerProxy.zpt')).__of__(self)
         return pt()          return pt()
           
     def mainConfig(self,serverUrl,use_xmlrpc=True,rpc_arg_expr=None,RESPONSE=None):      def mainConfig(self,serverUrl,use_xmlrpc=True,rpc_no_arg_expr=None,RESPONSE=None):
         """main config"""          """main config"""
                   
         self.serverUrl=serverUrl          self.serverUrl=serverUrl
Line 84  class XMLRpcServerProxy(SimpleItem): Line 118  class XMLRpcServerProxy(SimpleItem):
                   
         self.use_xmlrpc=use_xmlrpc          self.use_xmlrpc=use_xmlrpc
                   
         if rpc_arg_expr is not None:          if rpc_no_arg_expr is not None:
             self.rpc_arg_expr = rpc_arg_expr              self.rpc_no_arg_expr = rpc_no_arg_expr
                   
         if RESPONSE:          if RESPONSE:
             RESPONSE.redirect("/manage_main")              RESPONSE.redirect("manage_main")
                           
   
 def manage_addXMLRpcServerProxyForm(self):  def manage_addXMLRpcServerProxyForm(self):
     """add the CXMLRpcServerProxy"""      """add the XMLRpcServerProxy"""
     pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','addXMLRpcServerProxy.zpt')).__of__(self)      pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','addXMLRpcServerProxy.zpt')).__of__(self)
     return pt()      return pt()
   
 def manage_addXMLRpcServerProxy(self,id,serverUrl,use_xmlrpc=True,rpc_arg_expr=None,RESPONSE=None):  def manage_addXMLRpcServerProxy(self,id,serverUrl,use_xmlrpc=True,rpc_no_arg_expr=None,RESPONSE=None):
     """add the basket"""      """add the XMLRpcServerProxy"""
     if use_xmlrpc and use_xmlrpc != "no":      if use_xmlrpc is not None and use_xmlrpc != "no":
         use_xmlrpc = True          use_xmlrpc = True
     else:      else:
         use_xmlrpc = False          use_xmlrpc = False
                   
     if rpc_arg_expr is not None:  
         self.rpc_arg_expr = rpc_arg_expr  
           
     ob=XMLRpcServerProxy(id,serverUrl,use_xmlrpc)      ob=XMLRpcServerProxy(id,serverUrl,use_xmlrpc)
           
       if rpc_no_arg_expr is not None:
           ob.rpc_no_arg_expr = rpc_no_arg_expr
           
     self._setObject(id, ob)      self._setObject(id, ob)
           
     if RESPONSE is not None:      if RESPONSE is not None:
         RESPONSE.redirect('manage_main')          RESPONSE.redirect('manage_main')
   
           
   

Removed from v.1.7  
changed lines
  Added in v.1.11


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>