def package (self, job): self.setup (job) zipfilename = job.outputfile # filename is zipfile m = re.match (r'\d+', zipfilename) if m: ebook_no = m.group (0) else: error ('Invalid filename %s for push packager.' % zipfilename) return zip_ = self.create (zipfilename) for suffix in '.txt -8.txt -0.txt .zip -8.zip -0.zip -rst.zip -h.zip'.split (): filename = '%s%s' % (ebook_no, suffix) memberfilename = '%s/%s' % (ebook_no, filename) self.add (zip_, filename, memberfilename) for suffix, ext in (('-h', 'html'), ('-rst', 'rst')): filename = '%s%s.%s' % (ebook_no, suffix, ext) memberfilename = '%s/%s%s/%s' % (ebook_no, ebook_no, suffix, filename) self.add (zip_, filename, memberfilename) # image files for url in options.html_images_list: rel_url = gg.make_url_relative (job.base_url, url) filename = os.path.join (self.path, rel_url) memberfilename = '%s/%s%s/%s' % (ebook_no, ebook_no, suffix, rel_url) self.add (zip_, filename, memberfilename) zip_.close () info ('Done Zip file: %s' % zipfilename)
def copy_aux_files(self, job, dest_dir): """ Copy image files to dest_dir. Use image data cached in parsers. """ for p in job.spider.parsers: if hasattr(p, 'resize_image'): src_uri = p.attribs.url fn_dest = gg.make_url_relative(webify_url(job.base_url), src_uri) fn_dest = os.path.join(dest_dir, fn_dest) # debug ('base_url = %s, src_uri = %s' % (job.base_url, src_uri)) if gg.is_same_path(src_uri, fn_dest): debug('Not copying %s to %s: same file' % (src_uri, fn_dest)) continue debug('Copying %s to %s' % (src_uri, fn_dest)) fn_dest = gg.normalize_path(fn_dest) gg.mkdir_for_filename(fn_dest) try: with open(fn_dest, 'wb') as fp_dest: fp_dest.write(p.serialize()) except IOError as what: error('Cannot copy %s to %s: %s' % (src_uri, fn_dest, what))
def package(self, job): self.setup(job) try: aux_file_list = list(job.spider.aux_file_iter()) except AttributeError: aux_file_list = [] filename = job.outputfile zipfilename = os.path.join(self.path, self.name) + '.zip' memberfilename = os.path.join(self.name, self.name) + self.ext zip_ = self.create(zipfilename) self.add(zip_, filename, memberfilename) # now images for url in aux_file_list: rel_url = gg.make_url_relative(job.base_url, url) filename = os.path.join(self.path, rel_url) memberfilename = os.path.join(self.name, rel_url) self.add(zip_, filename, memberfilename) zip_.close() info('Done Zip file: %s' % zipfilename)