def processBook(self, pidlst): raw = 0 fixedimage = True try: keydata = self.getBookPayloadRecord('dkey', 0) except DrmException as e: print("no dkey record found, book may not be encrypted") print("attempting to extrct files without a book key") self.createBookDirectory() self.extractFiles() print("Successfully Extracted Topaz contents") if inCalibre: from calibre_plugins.dedrm import genbook else: import genbook rv = genbook.generateBook(self.outdir, raw, fixedimage) if rv == 0: print("Book Successfully generated.") return rv # try each pid to decode the file bookKey = None for pid in pidlst: # use 8 digit pids here pid = pid[0:8] print("Trying: {0}".format(pid)) bookKeys = [] data = keydata try: bookKeys += decryptDkeyRecords(data, pid) except DrmException as e: pass else: bookKey = bookKeys[0] print("Book Key Found! ({0})".format(bookKey.encode('hex'))) break if not bookKey: raise DrmException( "No key found in {0:d} keys tried. Read the FAQs at Harper's repository: https://github.com/apprenticeharper/DeDRM_tools/blob/master/FAQs.md" .format(len(pidlst))) self.setBookKey(bookKey) self.createBookDirectory() self.extractFiles() print("Successfully Extracted Topaz contents") if inCalibre: from calibre_plugins.dedrm import genbook else: import genbook rv = genbook.generateBook(self.outdir, raw, fixedimage) if rv == 0: print("Book Successfully generated") return rv
def processBook(self, pidlst): raw = 0 fixedimage = True try: keydata = self.getBookPayloadRecord('dkey', 0) except DrmException, e: print(u"no dkey record found, book may not be encrypted") print(u"attempting to extrct files without a book key") self.createBookDirectory() self.extractFiles() print(u"Successfully Extracted Topaz contents") if inCalibre: from calibre_plugins.dedrm import genbook else: import genbook rv = genbook.generateBook(self.outdir, raw, fixedimage) if rv == 0: print(u"Book Successfully generated.") return rv
def processBook(self, pidlst): raw = 0 fixedimage=True try: keydata = self.getBookPayloadRecord('dkey', 0) except DrmException, e: print u"no dkey record found, book may not be encrypted" print u"attempting to extrct files without a book key" self.createBookDirectory() self.extractFiles() print u"Successfully Extracted Topaz contents" if inCalibre: from calibre_plugins.dedrm import genbook else: import genbook rv = genbook.generateBook(self.outdir, raw, fixedimage) if rv == 0: print u"Book Successfully generated." return rv
if not bookKey: raise DrmException( u"No key found in {0:d} keys tried. Read the FAQs at Harper's repository: https://github.com/apprenticeharper/DeDRM_tools/blob/master/FAQs.md" .format(len(pidlst))) self.setBookKey(bookKey) self.createBookDirectory() self.extractFiles() print(u"Successfully Extracted Topaz contents") if inCalibre: from calibre_plugins.dedrm import genbook else: import genbook rv = genbook.generateBook(self.outdir, raw, fixedimage) if rv == 0: print(u"Book Successfully generated") return rv def createBookDirectory(self): outdir = self.outdir # create output directory structure if not os.path.exists(outdir): os.makedirs(outdir) destdir = os.path.join(outdir, u"img") if not os.path.exists(destdir): os.makedirs(destdir) destdir = os.path.join(outdir, u"color_img") if not os.path.exists(destdir): os.makedirs(destdir)
print u"Book Key Found! ({0})".format(bookKey.encode('hex')) break if not bookKey: raise DrmException(u"No key found in {0:d} keys tried. Read the FAQs at Alf's blog: http://apprenticealf.wordpress.com/".format(len(pidlst))) self.setBookKey(bookKey) self.createBookDirectory() self.extractFiles() print u"Successfully Extracted Topaz contents" if inCalibre: from calibre_plugins.dedrm import genbook else: import genbook rv = genbook.generateBook(self.outdir, raw, fixedimage) if rv == 0: print u"Book Successfully generated" return rv def createBookDirectory(self): outdir = self.outdir # create output directory structure if not os.path.exists(outdir): os.makedirs(outdir) destdir = os.path.join(outdir,u"img") if not os.path.exists(destdir): os.makedirs(destdir) destdir = os.path.join(outdir,u"color_img") if not os.path.exists(destdir): os.makedirs(destdir)