[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