You are not logged in Log in Join
You are here: Home » Members » tuppence » zlave » zlave2.py » View File

Log in
Name

Password

 

zlave2.py

File details
Size
2 K
File type
text/plain

File contents

from Shared.UoB.xmlrpclibBasicAuth import Server
import xmlrpclib, base64, exceptions

zlave_url = 'http://your.zope.server/path/to/folder/containing/external/methods'

class xmlrpc_error(exceptions.Exception):
	def __init__(self, args=None):
		self.args = args

def word2html(self, url, worddoc, id,):
	#Stop the passed in url value from being used - temporary measure
	url = zlave_url
	#Connect to the server/url
	s = Server(url, 'user', 'pass')
	#Put returned values into suitable variables
	html, images = s.word2html(base64.encodestring(worddoc), str(self.REQUEST.AUTHENTICATED_USER))

	#Check to see if an error was returned in place of what you really wanted
	if html == 'Error':
		"""
		If there are any, error details from the zlave server are returned
		as the second value, in this case, 'images'
		"""
		raise xmlrpc_error, images
	else:
		#If no error, keep going
		#Remember that the html was base64 encoded
		html = base64.decodestring(html)

	for each in images.keys():
		images[each] = base64.decodestring(images[each])

	return html, images


def word_doc(self, url):
	#Stop the passed in url value from being used - temporary measure
	url = zlave_url
	s = Server(url, 'user', 'pass')
	word_doc = base64.decodestring(s.html2word(base64.encodestring(self.index_html())))
	self.REQUEST.RESPONSE.setHeader('content-type', 'application/msword')
	self.REQUEST.RESPONSE.setHeader('content-length', len(word_doc))
	self.REQUEST.RESPONSE.setHeader('content-disposition', 'attachment;filename='+self.id+'.doc')
	return word_doc


def ppt2html(self, url, pptdoc, id):
	#Stop the passed in url value from being used - temporary measure
	url = zlave_url
	s = Server(url, 'user', 'pass')
	images = s.ppt2html(base64.encodestring(pptdoc), str(self.REQUEST.AUTHENTICATED_USER))

	if images.has_key('null'):
		raise xmlrpc_error, 'No Slides returned!'
	elif images.has_key('Error'):
		raise xmlrpc_error, images['Error']
	else:
		for key in images.keys():
			images[key] = base64.decodestring(images[key])
		return images


def xl2html(self, url, xldoc, id,):
	#Stop the passed in url value from being used - temporary measure
	url = zlave_url
	#Connect to the server/url
	s = Server(url, 'user', 'pass')
	#Put returned values into suitable variables
	html, images = s.xl2html(base64.encodestring(xldoc), str(self.REQUEST.AUTHENTICATED_USER))

	#Check to see if an error was returned in place of what you really wanted
	if html == 'Error':
		"""
		If there are any, error details from the zlave server are returned
		as the second value, in this case, 'images'
		"""
		raise xmlrpc_error, images
	else:
		#If no error, keep going
		#Remember that the html was base64 encoded
		html = base64.decodestring(html)


        for each in images.keys():
		images[each] = base64.decodestring(images[each])

        return html, images