Change logic in offsetting chapters

This commit is contained in:
Kiryl
2022-01-04 18:27:20 +03:00
parent f5538cbca7
commit fd807fbaf8

View File

@@ -214,23 +214,24 @@ class EpubConverter:
sub_nodes = [] sub_nodes = []
for elem in second: for elem in second:
if 'chapter' in (elem.title.lower() if isinstance(elem, Link) else elem[0].title.lower()): if 'chapter' in (elem.title.lower() if isinstance(elem, Link) else elem[0].title.lower())\
and 'appendices' not in (elem.title.lower() if isinstance(elem, Link) else elem[0].title.lower()):
self.offset_sub_nodes.append(self.build_adjacency_list_from_toc(elem, lvl)) self.offset_sub_nodes.append(self.build_adjacency_list_from_toc(elem, lvl))
else: else:
sub_nodes.append( sub_nodes.append(
self.build_adjacency_list_from_toc(elem, lvl + 1)) self.build_adjacency_list_from_toc(elem, lvl + 1))
self.adjacency_list[nav_point] = sub_nodes or self.offset_sub_nodes self.adjacency_list[nav_point] = sub_nodes
self.hrefs_added_to_toc.add(nav_point.href) self.hrefs_added_to_toc.add(nav_point.href)
return nav_point return nav_point
elif isinstance(element, list) and (lvl == 0): elif isinstance(element, list) and (lvl == 0):
nodes = [] nodes = []
# go through every element # add through every element
for elem in element: for elem in element:
nodes.append( nodes.append(
self.build_adjacency_list_from_toc(elem, lvl + 1)) self.build_adjacency_list_from_toc(elem, lvl + 1))
# go through every offset sub element # set chapter_i after Section & add through every offset sub element
for offset_sub_node in self.offset_sub_nodes: for offset_sub_node in self.offset_sub_nodes:
nodes.append(offset_sub_node) nodes.append(offset_sub_node)
self.offset_sub_nodes = [] self.offset_sub_nodes = []
@@ -510,7 +511,7 @@ if __name__ == "__main__":
logger_object = BookLogger(name=f'epub', main_logger=logger, book_id=0) logger_object = BookLogger(name=f'epub', main_logger=logger, book_id=0)
json_converter = EpubConverter('../../epub/9781634259804.epub', json_converter = EpubConverter('../../epub/9781641051217.epub',
logger=logger_object) logger=logger_object)
tmp = json_converter.convert_to_dict() tmp = json_converter.convert_to_dict()