def upload_book(file): filename = book_staging_upload_set.save(file) if filename: extension = os.path.splitext(filename)[1][1:] if extension == 'epub': e = epub.Epub(book_staging_upload_set.path(filename)) if e: meta = e.metadata if 'creator' in meta: meta['author'] = meta['creator'] del meta['creator'] # if the book has a cover, copy it to tmp directory if e.cover: cover_filename = os.path.basename(e.cover) # todo conflicts if os.path.exists(tmp_cover_upload_set.path(cover_filename)): cover_filename = tmp_cover_upload_set.resolve_conflict(tmp_cover_upload_set.config.destination, cover_filename) dest = tmp_cover_upload_set.path(cover_filename) extracted = e.extract_cover(dest) if extracted: meta['cover'] = cover_filename else: meta = None else: meta = None return filename, meta else: return None
def move_cover_from_tmp(self, filename): if self.cover: self.remove_cover() if filename: self.cover = filename src = tmp_cover_upload_set.path(self.cover) dest_path = cover_upload_set.config.destination if os.path.exists(os.path.join(dest_path, self.cover)): self.cover = cover_upload_set.resolve_conflict(dest_path, self.cover) shutil.move(src, cover_upload_set.path(self.cover))