from src.book_solver import BookSolver from src.preset_processor import PresetProcessor from src.epub_converter.css_preprocessor import CSSPreprocessor from src.epub_converter.html_epub_preprocessor import HtmlEpubPreprocessor from src.epub_converter.epub_converter import EpubConverter class EpubBook(BookSolver): """Class of .epub type book - child of BookSolver""" def __init__(self, book_id=0, access=None, main_logger=None): super().__init__(book_id, access, main_logger) self.book_type = "epub" def get_converted_book(self): """ Function Steps ---------- 1. Gets data from preset structure 2. Add preset to html preprocessor 3. Converts .epub to .html 4. Parses from line structure to nested structure Returns ---------- content_dict json for LiveCarta platform """ preset = PresetProcessor(preset_path="config/presets.json", logger=self.logger_object)\ .get_preset_json() css_preprocessor = CSSPreprocessor(logger=self.logger_object) html_preprocessor = HtmlEpubPreprocessor(preset=preset, logger=self.logger_object) json_converter = EpubConverter( self.file_path, access=self.access, logger=self.logger_object, css_preprocessor=css_preprocessor, html_processor=html_preprocessor) content_dict = json_converter.convert_to_dict() return content_dict