[Checkins] SVN: zopyx.smartprintng.client/trunk/ supporting new email API
Andreas Jung
andreas at andreas-jung.com
Sat Jul 18 05:26:08 EDT 2009
Log message for revision 101982:
supporting new email API
Changed:
U zopyx.smartprintng.client/trunk/docs/HISTORY.txt
U zopyx.smartprintng.client/trunk/zopyx/smartprintng/client/zip_client.py
-=-
Modified: zopyx.smartprintng.client/trunk/docs/HISTORY.txt
===================================================================
--- zopyx.smartprintng.client/trunk/docs/HISTORY.txt 2009-07-18 08:56:28 UTC (rev 101981)
+++ zopyx.smartprintng.client/trunk/docs/HISTORY.txt 2009-07-18 09:26:08 UTC (rev 101982)
@@ -1,6 +1,12 @@
Changelog
=========
+0.3.0 (unreleased)
+------------------
+
+* preliminary support for the email API
+
+
0.2.0 (2009-07-08)
------------------
Modified: zopyx.smartprintng.client/trunk/zopyx/smartprintng/client/zip_client.py
===================================================================
--- zopyx.smartprintng.client/trunk/zopyx/smartprintng/client/zip_client.py 2009-07-18 08:56:28 UTC (rev 101981)
+++ zopyx.smartprintng.client/trunk/zopyx/smartprintng/client/zip_client.py 2009-07-18 09:26:08 UTC (rev 101982)
@@ -18,6 +18,24 @@
self.host = host
self.port = port
+ def _makeZipFromDirectory(self, directory):
+ """ generate a ZIP file from a directory containing all its
+ contents
+ """
+
+ directory = os.path.abspath(directory)
+
+ zip_filename = tempfile.mktemp()
+ ZF = zipfile.ZipFile(zip_filename, 'w')
+ for dirname, dirnames, filenames in os.walk(directory):
+ for fname in filenames:
+ arcname = os.path.join(dirname, fname).replace(directory + os.path.sep, '')
+ fullname = os.path.abspath(os.path.join(dirname, fname))
+ ZF.write(fullname, arcname)
+
+ ZF.close()
+ return zip_filename
+
def ping(self):
server = xmlrpclib.ServerProxy('http://%s:%d/ping' % (self.host, self.port))
return server()
@@ -28,23 +46,16 @@
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()
+ zip_filename = self._makeZipFromDirectory(dirname)
+
# send the ZIP archive base64 encoded
+ server = xmlrpclib.ServerProxy('http://%s:%d/convertZIP' % (self.host, self.port))
zip_data = server(base64.encodestring(file(zip_filename, 'rb').read()),
converter_name)
- # and receive the result PDF as base64 encoded ZIP archive
+ # and receive the conversion result as base64 encoded ZIP archive
+ # (it will contain only *one* file)
zip_temp = tempfile.mktemp()
file(zip_temp, 'wb').write(base64.decodestring(zip_data))
ZF = zipfile.ZipFile(zip_temp, 'r')
@@ -54,24 +65,14 @@
ZF.close()
os.unlink(zip_filename)
os.unlink(zip_temp)
- os.chdir(cwd)
return output_filename
def convertZIPEmail(self, dirname, converter_name='pdf-prince'):
- cwd = os.getcwd()
- os.chdir(dirname)
- server = xmlrpclib.ServerProxy('http://%s:%d/convertZIPEmail' % (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()
+ zip_filename = self._makeZipFromDirectory(dirname)
# send the ZIP archive base64 encoded
+ server = xmlrpclib.ServerProxy('http://%s:%d/convertZIPEmail' % (self.host, self.port))
result = server.convertZIPEmail(base64.encodestring(file(zip_filename, 'rb').read()),
converter_name)
return result
@@ -83,6 +84,6 @@
proxy = Proxy(port=6543)
print proxy.ping()
print proxy.availableConverters()
-# print proxy.convertZIP(sys.argv[1])
+ print proxy.convertZIP(sys.argv[1])
print proxy.convertZIPEmail(sys.argv[1])
More information about the Checkins
mailing list