def save_serialized_to_disk(ids, data, plugboards, root, opts, callback): from calibre.ebooks.metadata.opf2 import OPF root, opts, length = _sanitize_args(root, opts) failures = [] for x in ids: opf, cover, format_map, last_modified = data[x] if isinstance(opf, unicode): opf = opf.encode('utf-8') mi = OPF(cStringIO.StringIO(opf)).to_book_metadata() try: mi.last_modified = parse_date(last_modified) except: pass tb = '' try: with open(cover, 'rb') as f: cover = f.read() except: cover = None try: failed, id, title = do_save_book_to_disk(x, mi, cover, plugboards, format_map, root, opts, length) tb = _('Requested formats not available') except: failed, id, title = True, x, mi.title tb = traceback.format_exc() if failed: failures.append((id, title, tb)) if callable(callback): if not callback(int(id), title, failed, tb): break return failures
def save_serialized_to_disk(ids, data, plugboards, root, opts, callback): from calibre.ebooks.metadata.opf2 import OPF root, opts, length = _sanitize_args(root, opts) failures = [] for x in ids: opf, cover, format_map, last_modified = data[x] if isinstance(opf, unicode): opf = opf.encode('utf-8') mi = OPF(cStringIO.StringIO(opf)).to_book_metadata() try: mi.last_modified = parse_date(last_modified) except: pass tb = '' try: with open(cover, 'rb') as f: cover = f.read() except: cover = None try: failed, id, title = do_save_book_to_disk(x, mi, cover, plugboards, format_map, root, opts, length) tb = _('Requested formats not available') except: failed, id, title = True, x, mi.title tb = traceback.format_exc() if failed: failures.append((id, title, tb)) if callable(callback): if not callback(int(id), title, failed, tb): break return failures
def read_serialized_metadata(data): from calibre.ebooks.metadata.opf2 import OPF from calibre.utils.date import parse_date mi = OPF(data['opf'], try_to_guess_cover=False, populate_spine=False, basedir=os.path.dirname(data['opf'])).to_book_metadata() try: mi.last_modified = parse_date(data['last_modified']) except: pass mi.cover, mi.cover_data = None, (None, None) cdata = None if 'cover' in data: with lopen(data['cover'], 'rb') as f: cdata = f.read() return mi, cdata
def read_serialized_metadata(book_id, data): from calibre.ebooks.metadata.opf2 import OPF from calibre.utils.date import parse_date mi = OPF(data['opf'], try_to_guess_cover=False, populate_spine=False, basedir=os.path.dirname(data['opf'])).to_book_metadata() try: mi.last_modified = parse_date(data['last_modified']) except: pass mi.cover, mi.cover_data = None, (None, None) cdata = None if 'cover' in data: with lopen(data['cover'], 'rb') as f: cdata = f.read() return mi, cdata