[Checkins] SVN: zopyx.smartprintng.client/trunk/zopyx/smartprintng/client/zip_client.py OO
Andreas Jung
andreas at andreas-jung.com
Wed Jul 8 07:37:42 EDT 2009
Log message for revision 101739:
OO
Changed:
U zopyx.smartprintng.client/trunk/zopyx/smartprintng/client/zip_client.py
-=-
Modified: zopyx.smartprintng.client/trunk/zopyx/smartprintng/client/zip_client.py
===================================================================
--- zopyx.smartprintng.client/trunk/zopyx/smartprintng/client/zip_client.py 2009-07-08 11:34:55 UTC (rev 101738)
+++ zopyx.smartprintng.client/trunk/zopyx/smartprintng/client/zip_client.py 2009-07-08 11:37:42 UTC (rev 101739)
@@ -11,38 +11,51 @@
import tempfile
import zipfile
-def convertZIP(dirname, converter_name='pdf-prince', host='localhost', port=6543):
- """ XMLRPC client to SmartPrintNG server """
- cwd = os.getcwd()
- os.chdir(dirname)
- server = xmlrpclib.ServerProxy('http://%s:%d/convertZIP' % (host, port))
- zip_filename = tempfile.mktemp()
- ZF = zipfile.ZipFile(zip_filename, 'w')
- for fname in os.listdir('.'):
- if not os.path.isfile(fname):
- continue
- fullname = os.path.join(dirname, fname)
- ZF.write(fname)
- ZF.close()
- # send the ZIP archive base64 encoded
- zip_data = server.convertZIP(base64.encodestring(file(zip_filename, 'rb').read()),
- converter_name)
+class Proxy(object):
- # and receive the result PDF as base64 encoded ZIP archive
- zip_temp = tempfile.mktemp()
- file(zip_temp, 'wb').write(base64.decodestring(zip_data))
- ZF = zipfile.ZipFile(zip_temp, 'r')
- names = ZF.namelist()
- output_filename = os.path.abspath(names[0])
- file(output_filename, 'wb').write(ZF.read(names[0]))
- ZF.close()
- os.unlink(zip_filename)
- os.unlink(zip_temp)
- os.chdir(cwd)
- return output_filename
+ def __init__(self, host='localhost', port=6543):
+ self.host = host
+ self.port = port
+ def availableConverters(self):
+ server = xmlrpclib.ServerProxy('http://%s:%d/availableConverters' % (self.host, self.port))
+ return server()
+
+ def convertZIP(self, dirname, converter_name='pdf-prince'):
+ """ XMLRPC client to SmartPrintNG server """
+ cwd = os.getcwd()
+ os.chdir(dirname)
+ server = xmlrpclib.ServerProxy('http://%s:%d/convertZIP' % (self.host, self.port))
+ zip_filename = tempfile.mktemp()
+ ZF = zipfile.ZipFile(zip_filename, 'w')
+ for fname in os.listdir('.'):
+ if not os.path.isfile(fname):
+ continue
+ fullname = os.path.join(dirname, fname)
+ ZF.write(fname)
+ ZF.close()
+
+ # send the ZIP archive base64 encoded
+ zip_data = server.convertZIP(base64.encodestring(file(zip_filename, 'rb').read()),
+ converter_name)
+
+ # and receive the result PDF as base64 encoded ZIP archive
+ zip_temp = tempfile.mktemp()
+ file(zip_temp, 'wb').write(base64.decodestring(zip_data))
+ ZF = zipfile.ZipFile(zip_temp, 'r')
+ names = ZF.namelist()
+ output_filename = os.path.abspath(names[0])
+ file(output_filename, 'wb').write(ZF.read(names[0]))
+ ZF.close()
+ os.unlink(zip_filename)
+ os.unlink(zip_temp)
+ os.chdir(cwd)
+ return output_filename
+
if __name__ == '__main__':
# usage: convertZIP <dirname>
- print convertZIP(sys.argv[1])
+ proxy = Proxy()
+ print proxy.availableConverters()
+ print proxy.convertZIP(sys.argv[1])
More information about the Checkins
mailing list