def cli_convert(self, args): #NODOC printsd(args) if args.all: # `calibre-debug -r djvumaker -- convert --all` printsd('in cli convert_all') # TODO: make work `djvumaker -- convert --all` # raise NotImplementedError('Convert all is not implemented.') user_input = ask_yesno_input( 'Do you wany to copy-convert all PDFs to DJVU?') if not user_input: return None from calibre.library import db from calibre.customize.ui import run_plugins_on_postimport db = db() # initialize calibre library database for book_id in list(db.all_ids()): if db.has_format(book_id, 'DJVU', index_is_id=True): continue # TODO: shouldn't work with this code, db has not atributte run_plugins_on_postimport # https://github.com/kovidgoyal/calibre/blob/master/src/calibre/customize/ui.py if db.has_format(book_id, 'PDF', index_is_id=True): run_plugins_on_postimport(db, book_id, 'pdf') continue elif args.path is not None: # `calibre-debug -r djvumaker -- convert -p test.pdf` -> tempfile(test.djvu) printsd('in path') if is_rasterbook(args.path): djvu = self.run_backend(args.path, log=self.prints.func) if djvu: input_filename, _ = os.path.splitext(args.path) shutil.copy2(djvu, input_filename + '.djvu') prints("Finished DJVU outputed to: {}.".format( input_filename + '.djvu')) user_input = ask_yesno_input( 'Do you want to open djvused in subshell?' ' (may not work on not macOS)') if not user_input: return None # de-munge the tty sys.stdin = sys.__stdin__ sys.stdout = sys.__stdout__ sys.stderr = sys.__stderr__ os.system("stat '%s'" % djvu) # TODO: doesn't work on Windows, why is it here? os.system("djvused -e dump '%s'" % djvu) os.system("djvused -v '%s'" % djvu) elif args.id is not None: # `calibre-debug -r djvumaker -- convert -i 123 #id(123).pdf` -> tempfile(id(123).djvu) printsd('in convert by id') self._postimport(args.id)
def cli_convert(self, args): #NODOC printsd(args) if args.all: # `calibre-debug -r djvumaker -- convert --all` printsd('in cli convert_all') # TODO: make work `djvumaker -- convert --all` # raise NotImplementedError('Convert all is not implemented.') user_input = ask_yesno_input('Do you wany to copy-convert all PDFs to DJVU?') if not user_input: return None from calibre.library import db from calibre.customize.ui import run_plugins_on_postimport db = db() # initialize calibre library database for book_id in list(db.all_ids()): if db.has_format(book_id, 'DJVU', index_is_id=True): continue # TODO: shouldn't work with this code, db has not atributte run_plugins_on_postimport # https://github.com/kovidgoyal/calibre/blob/master/src/calibre/customize/ui.py if db.has_format(book_id, 'PDF', index_is_id=True): run_plugins_on_postimport(db, book_id, 'pdf') continue elif args.path is not None: # `calibre-debug -r djvumaker -- convert -p test.pdf` -> tempfile(test.djvu) printsd('in path') if is_rasterbook(args.path): djvu = self.run_backend(args.path, log=self.prints.func) if djvu: input_filename, _ = os.path.splitext(args.path) shutil.copy2(djvu, input_filename + '.djvu') prints("Finished DJVU outputed to: {}.".format(input_filename + '.djvu')) user_input = ask_yesno_input('Do you want to open djvused in subshell?' ' (may not work on not macOS)') if not user_input: return None # de-munge the tty sys.stdin = sys.__stdin__ sys.stdout = sys.__stdout__ sys.stderr = sys.__stderr__ os.system("stat '%s'" % djvu) # TODO: doesn't work on Windows, why is it here? os.system("djvused -e dump '%s'" % djvu) os.system("djvused -v '%s'" % djvu) elif args.id is not None: # `calibre-debug -r djvumaker -- convert -i 123 #id(123).pdf` -> tempfile(id(123).djvu) printsd('in convert by id') self._postimport(args.id, fork_job=False)
self.ids = [] self.accept() def keyPressEvent(self, ev): if ev.key() in (Qt.Key_Enter, Qt.Key_Return): ev.accept() return return QDialog.keyPressEvent(self, ev) if __name__ == '__main__': from calibre.gui2 import Application from calibre.library import db app = Application([]) db = db() ids = sorted(db.all_ids(), reverse=True) ids = tuple(zip(ids[0::2], ids[1::2])) gm = partial(db.get_metadata, index_is_id=True, get_cover=True, cover_as_data=True) get_metadata = lambda x: map(gm, ids[x]) d = CompareMany(list(xrange(len(ids))), get_metadata, db.field_metadata, db=db) if d.exec_() == d.Accepted: for changed, mi in d.accepted.itervalues(): if changed and mi is not None: print(mi)
'confirm_metadata_review_reject', parent=self): return self.next_item(False) for id_ in self.ids: self.rejected_ids.add(id_) oldmi, newmi = self.get_metadata(id_) self.accepted[id_] = (False, None) self.ids = [] self.accept() def keyPressEvent(self, ev): if ev.key() in (Qt.Key_Enter, Qt.Key_Return): ev.accept() return return QDialog.keyPressEvent(self, ev) if __name__ == '__main__': from calibre.gui2 import Application from calibre.library import db app = Application([]) db = db() ids = sorted(db.all_ids(), reverse=True) ids = tuple(zip(ids[0::2], ids[1::2])) gm = partial(db.get_metadata, index_is_id=True, get_cover=True, cover_as_data=True) get_metadata = lambda x:map(gm, ids[x]) d = CompareMany(list(xrange(len(ids))), get_metadata, db.field_metadata, db=db) if d.exec_() == d.Accepted: for changed, mi in d.accepted.itervalues(): if changed and mi is not None: print (mi)