forked from LiveCarta/BookConverter
Add preset processing from backend
This commit is contained in:
@@ -13,7 +13,6 @@ from typing import Dict, Union, List
|
||||
from bs4 import BeautifulSoup, NavigableString, Tag
|
||||
|
||||
from src.util.helpers import BookLogger
|
||||
from src.preset_processor import PresetProcessor
|
||||
from src.epub_converter.css_processor import CSSPreprocessor
|
||||
from src.epub_converter.html_epub_processor import HtmlEpubPreprocessor
|
||||
from src.livecarta_config import LiveCartaConfig
|
||||
@@ -24,11 +23,11 @@ from src.epub_converter.tag_inline_style_processor import TagInlineStyleProcesso
|
||||
|
||||
|
||||
class EpubConverter:
|
||||
def __init__(self, file_path, access=None, logger=None, css_processor=None, html_processor=None):
|
||||
self.file_path = file_path
|
||||
def __init__(self, book_path, access=None, logger=None, css_processor=None, html_processor=None):
|
||||
self.book_path = book_path
|
||||
self.access = access
|
||||
self.logger: BookLogger = logger
|
||||
self.ebooklib_book = epub.read_epub(file_path)
|
||||
self.ebooklib_book = epub.read_epub(book_path)
|
||||
self.css_processor = css_processor
|
||||
self.html_processor = html_processor
|
||||
|
||||
@@ -603,7 +602,7 @@ class EpubConverter:
|
||||
path_to_html=nav_point.href,
|
||||
access=self.access,
|
||||
path2aws_path=self.book_image_src_path2aws_path,
|
||||
book_id=Path(self.file_path).stem)
|
||||
book_id=Path(self.book_path).stem)
|
||||
sub_nodes = []
|
||||
# warning! not EpubHtmlItems won't be added to chapter
|
||||
# if it doesn't have subchapters
|
||||
@@ -638,11 +637,8 @@ if __name__ == "__main__":
|
||||
logger_object = BookLogger(
|
||||
name="epub", book_id=epub_file_path.split("/")[-1])
|
||||
|
||||
preset = PresetProcessor(preset_path="../../config/presets.json", logger=logger_object)\
|
||||
.get_preset_json()
|
||||
css_processor = CSSPreprocessor()
|
||||
html_processor = HtmlEpubPreprocessor(
|
||||
preset=preset, logger=logger_object)
|
||||
html_processor = HtmlEpubPreprocessor("../../presets/presets.json", logger=logger_object)
|
||||
|
||||
json_converter = EpubConverter(epub_file_path, logger=logger_object,
|
||||
css_processor=css_processor, html_processor=html_processor)
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
from src.book_solver import BookSolver
|
||||
from src.preset_processor import PresetProcessor
|
||||
from src.epub_converter.css_processor import CSSPreprocessor
|
||||
from src.epub_converter.html_epub_processor import HtmlEpubPreprocessor
|
||||
from src.epub_converter.epub_converter import EpubConverter
|
||||
@@ -28,12 +27,10 @@ class EpubBook(BookSolver):
|
||||
json for LiveCarta platform
|
||||
|
||||
"""
|
||||
preset = PresetProcessor(preset_path="config/presets.json", logger=self.logger_object)\
|
||||
.get_preset_json()
|
||||
css_processor = CSSPreprocessor()
|
||||
html_processor = HtmlEpubPreprocessor(preset=preset, logger=self.logger_object)
|
||||
html_processor = HtmlEpubPreprocessor(self.preset_path, logger=self.logger_object)
|
||||
json_converter = EpubConverter(
|
||||
self.file_path, access=self.access, logger=self.logger_object,
|
||||
self.book_path, access=self.access, logger=self.logger_object,
|
||||
css_processor=css_processor, html_processor=html_processor)
|
||||
content_dict = json_converter.convert_to_dict()
|
||||
return content_dict
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
import re
|
||||
import json
|
||||
from bs4 import BeautifulSoup, NavigableString, Comment, Tag
|
||||
|
||||
from src.util.helpers import BookLogger
|
||||
|
||||
|
||||
class HtmlEpubPreprocessor:
|
||||
def __init__(self, preset, logger=None):
|
||||
self.preset = preset
|
||||
def __init__(self, preset_path, logger=None):
|
||||
self.preset = json.load(open(preset_path))
|
||||
self.logger: BookLogger = logger
|
||||
self.name2function = {
|
||||
"table_wrapper": self._wrap_tags_with_table,
|
||||
|
||||
Reference in New Issue
Block a user