def extract_metadata_mobi(self, book): book = Mobi(book) book.parse() try: cover_image = book.readImageRecord(0) except KeyError: cover_image = None title = book.title().decode("utf-8") author = book.author().decode("utf-8") book_config = book.config try: description = self.stripTags( book_config['exth']['records'][103].decode("utf-8")) except KeyError: description = None try: identifier = book_config['exth']['records'][104].decode("utf-8") except KeyError: identifier = None try: publisher = book_config['exth']['records'][101].decode("utf-8") except KeyError: publisher = None date = None rights = None try: ftags = book_config['exth']['records'][105].decode("utf-8") if ":" in ftags: ftags = ftags.replace(":", ",") elif ";" in ftags: ftags = ftags.replace(";", ",") # elif re.search(r"\s", ftags): # Must be final assignment to avoid spliting on multiple delimeters # ftags = ftags.replace(" ", ",") except KeyError: ftags = None return [ title, author, cover_image, book.f.name, description, identifier, publisher, date, rights, ftags, ]