def getComicThumbnail(self, comic_fingerprint): filename = comic_fingerprint + ".png" foldername = filename[0] folderpath = AppFolders.appThumbPath(foldername, filename) with open(folderpath, 'rb') as fd: thumbnail = fd.read() self.write(thumbnail.getvalue())
def getComicMetadata(self, path): ca = ComicArchive( path, default_image_path=AppFolders.missingPath("page.png")) if ca.seemsToBeAComicArchive(): if ca.hasMetadata(MetaDataStyle.CIX): style = MetaDataStyle.CIX elif ca.hasMetadata(MetaDataStyle.CBI): style = MetaDataStyle.CBI elif ca.hasMetadata(MetaDataStyle.COMET): style = MetaDataStyle.COMET elif ca.hasMetadata(MetaDataStyle.CBW): style = MetaDataStyle.CBW else: logging.warning(u"Library: File Has No ComicMeta Data") if ca.hasMetadata(MetaDataStyle.CALIBRE): style = MetaDataStyle.CALIBRE elif ca.hasMetadata(MetaDataStyle.EPUB): style = MetaDataStyle.EPUB else: style = None if style is not None: md = ca.readMetadata(style) if md.isEmpty: md = ca.metadataFromFilename() else: # No metadata in comic. make some guesses from the filename md = ca.metadataFromFilename() # patch version 2 if (md.title is None or md.title == "") and md.issue is None and not md.series is None: md.title = md.series md.series = None md.fingerprint = ca.fingerprint() md.path = ca.path md.page_count = ca.page_count md.mod_ts = datetime.utcfromtimestamp(getmtime(ca.path)) md.filesize = os.path.getsize(md.path) md.hash = "" #thumbnail generation image_data = ca.getPage(0, AppFolders.missingPath("cover.png")) #now resize it thumb = StringIO.StringIO() #Lets right thumbs to files. large libraries cause the database to bloat try: utils.resize(image_data, (400, 400), thumb) filename = md.fingerprint + ".png" foldername = filename[0] thumbSubFolder = AppFolders.appThumbFolder(foldername) if not os.path.exists(thumbSubFolder): os.makedirs(thumbSubFolder) folderpath = AppFolders.appThumbPath(foldername, filename) with open(folderpath, 'wb') as f: f.write(thumb.getvalue()) print("Extracted thumb: " + filename) except: print("Thumbnail extraction failed") # print md return md return None