def __serve_wn(self, wn, storagedir): print_enter('worknoteBookServer.__serve_wn') from tempfile import gettempdir from os.path import join, exists from cherrypy.lib.static import serve_download from worknoteBookHelpers import zip_worknote wn_dir, wn_title, wn_date = wn print 'Preparing to serve "{:s}" from "{:s}"...'.format(wn_dir, storagedir) tmpdir = gettempdir() fn_wnzip = '{wn_dir:s}.zip'.format(wn_dir=wn_dir) dl_filepath = join(tmpdir, fn_wnzip) print 'Zipping worknote...' zip_worknote(join(storagedir, wn_dir), dl_filepath) if exists(dl_filepath): print 'Serving file "{:s}"...'.format(dl_filepath) return serve_download(dl_filepath, name=fn_wnzip) else: print 'ERROR: Zip file not created' return 'Error creating ZIP archive for download'
try: response = urlopen(request) response.read() response.close() except HTTPError, e: print 'ERROR: Upload failed ({:s})'.format(str(e)) return except URLError, e: print 'ERROR: Upload failed ({:s})'.format(str(e)) return tmpdir = gettempdir() zip_fn = join(tmpdir, 'worknoteBook_upload.zip') if not exists(workdir): print 'ERROR: Directory "{:s}" does not exist.'.format(workdir) return zip_worknote(workdir, zip_fn) up_file = FileLenIO(zip_fn, 'rb') request_url = 'http://{:s}/upload'.format(self.get_server(servername)) if not chapter == '': request_url += '?chapter={:s}'.format(chapter.replace(' ', '+')) request = Request(request_url, up_file) request.add_header('Content-Type', 'application/octet-stream') request.add_header('X-Worknote-Workdir', workdir) request.add_header('X-Worknote-Overwrite', str(overwrite)) try: response = urlopen(request) response = response.read() except HTTPError, e: print 'ERROR: Upload failed ({:s})'.format(str(e)) return except URLError, e: