Example #1
0
 def handle_entry(self, code, data):
     if code == 0:
         parser = HHCParser(self.book)
         parser.parse(self.book.archive[data])
     elif code == 1:
         parser = HHKParser(self.book)
         parser.parse(self.book.archive[data])
     elif code == 2:
         self.book.contents.link = data
     elif code == 3:
         self.book.contents.name = data
Example #2
0
    def read_chm(self, path):
        archive = ChmArchive(path)

        name = os.path.splitext(os.path.basename(path))[0]

        book = Book(name, archive)

        SystemParser(book)

        for name in archive:
            if name.lower().endswith('.hhc') and not len(book.contents):
                parser = HHCParser(book)
                parser.parse(archive[name])
            elif name.lower().endswith('.hhk') and not len(book.index):
                parser = HHKParser(book)
                parser.parse(archive[name])

        book.archive = ChmFilterArchive(archive)

        return book