def __init__(self, book_ids, db, opts, root, parent=None, pool=None): QObject.__init__(self, parent) self.db = db.new_api self.plugboards = self.db.pref('plugboards', {}) self.template_functions = self.db.pref('user_template_functions', []) load_user_template_functions('', self.template_functions) self.collected_data = {} self.errors = defaultdict(list) self._book_id_data = {} self.all_book_ids = frozenset(book_ids) self.pd = ProgressDialog(_('Saving %d books...') % len(self.all_book_ids), _('Collecting metadata...'), min=0, max=0, parent=parent, icon='save.png') self.do_one_signal.connect(self.tick, type=Qt.QueuedConnection) self.do_one = self.do_one_collect self.ids_to_collect = iter(self.all_book_ids) self.tdir = PersistentTemporaryDirectory('_save_to_disk') self.pool = pool self.pd.show() self.root, self.opts, self.path_length = sanitize_args(root, opts) self.do_one_signal.emit() if DEBUG: self.start_time = time.time()
def __init__(self, book_ids, db, opts, root, parent=None, spare_server=None): QObject.__init__(self, parent) if parent is not None: setattr(parent, 'no_gc_%s' % id(self), self) self.db = db.new_api self.plugboards = self.db.pref('plugboards', {}) self.template_functions = self.db.pref('user_template_functions', []) load_user_template_functions('', self.template_functions) self.collected_data = {} self.metadata_data = {} self.errors = defaultdict(list) self._book_id_data = {} self.all_book_ids = frozenset(book_ids) self.pd = ProgressDialog(_('Saving %d books...') % len(self.all_book_ids), _('Collecting metadata...'), min=0, max=0, parent=parent, icon='save.png') self.do_one_signal.connect(self.tick, type=Qt.QueuedConnection) self.do_one = self.do_one_collect self.ids_to_collect = iter(self.all_book_ids) self.plugboard_cache = {} self.tdir = PersistentTemporaryDirectory('_save_to_disk') self.server = spare_server self.pd.show() self.root, self.opts, self.path_length = sanitize_args(root, opts) self.do_one_signal.emit() if DEBUG: self.start_time = time.time()
def main(opts, args, dbctx): if len(args) < 1 and not opts.all: raise SystemExit(_('You must specify some ids or the %s option') % '--all') if opts.all: book_ids = dbctx.run('export', 'all_ids') else: book_ids = set() for arg in args: book_ids |= set(integers_from_string(arg)) dest = os.path.abspath(os.path.expanduser(opts.to_dir)) dbproxy = DBProxy(dbctx) dest, opts, length = sanitize_args(dest, opts) for i, book_id in enumerate(book_ids): export(opts, dbctx, book_id, dest, dbproxy, length, i == 0) return 0