|
|
| version 1.8, 2007/10/23 17:40:23 | 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') | return data.decode('UTF-8') |
| else: | |
| return data | |
| def eval2(self,method,argument1,argument2): | def eval2(self,method,argument1,argument2,outputUnicode=True): |
| """do proxy request""" | """do proxy request""" |
| server=self.ServerProxy() | server=self.ServerProxy() |
| Line 74 class XMLRpcServerProxy(SimpleItem): | Line 76 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 |
| argument1=re.sub(self.rpc_arg_expr,'',argument1) | argument1=re.sub(self.rpc_no_arg_expr,'',argument1) |
| argument2=re.sub(self.rpc_arg_expr,'',argument2) | argument2=re.sub(self.rpc_no_arg_expr,'',argument2) |
| cmd="""server.%s('%s')"""%(method,argument1,argument2) | cmd="""server.%s('%s','%s')"""%(method,argument1,argument2) |
| return eval(cmd) | return eval(cmd) |
| else: | else: |
| Line 93 class XMLRpcServerProxy(SimpleItem): | Line 95 class XMLRpcServerProxy(SimpleItem): |
| 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') | return data.decode('UTF-8') |
| else: | |
| return data | |
| def mainConfigHTML(self): | def mainConfigHTML(self): |
| Line 101 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 113 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') |