Annot.[HTML->Html, _]

This commit is contained in:
Kiryl
2022-09-06 16:36:35 +03:00
parent ddc45e2d04
commit 83939e43cb
9 changed files with 22 additions and 23 deletions

View File

@@ -7,11 +7,10 @@ from typing import Union
from threading import Event
from bs4 import BeautifulSoup
from src.util.helpers import BookLogger
class Docx2LibreHTML:
class Docx2LibreHtml:
def __init__(self, book_id: int = 0, file_path: Union[pathlib.PosixPath, str] = None,
access=None, logger: BookLogger = None, libre_locker: Event = None):
self.book_id = book_id if book_id != 0 else pathlib.Path(

View File

@@ -7,9 +7,9 @@ from src.book_solver import BookSolver
from src.util.helpers import BookLogger
from src.html_preprocessor import HtmlPreprocessor
from src.style_preprocessor import StylePreprocessor
from src.docx_converter.docx2libre_html import Docx2LibreHTML
from src.docx_converter.html_docx_processor import HTMLDocxProcessor
from src.docx_converter.libre_html2json_converter import LibreHTML2JSONConverter
from src.docx_converter.docx2libre_html import Docx2LibreHtml
from src.docx_converter.html_docx_processor import HtmlDocxProcessor
from src.docx_converter.libre_html2json_converter import LibreHtml2JsonConverter
class DocxBook(BookSolver):
@@ -38,7 +38,7 @@ class DocxBook(BookSolver):
"""
# 1. Converts docx to html with LibreOffice
try:
html_converter = Docx2LibreHTML(self.book_id, self.book_path, self.access,
html_converter = Docx2LibreHtml(self.book_id, self.book_path, self.access,
self.logger_object, self.libre_locker)
except Exception as exc:
self.logger_object.log(
@@ -52,7 +52,7 @@ class DocxBook(BookSolver):
html_preprocessor = HtmlPreprocessor(
logger=self.logger_object, preset_path="presets/docx_presets.json")
style_preprocessor = StylePreprocessor()
html_processor = HTMLDocxProcessor(html_soup=html_converter.html_soup,
html_processor = HtmlDocxProcessor(html_soup=html_converter.html_soup,
logger=self.logger_object,
html_preprocessor=html_preprocessor,
style_preprocessor=style_preprocessor)
@@ -67,7 +67,7 @@ class DocxBook(BookSolver):
# 3. Parses from line structure to nested structure with JSONConverter
try:
json_converter = LibreHTML2JSONConverter(bs_tags, footnotes, top_level_headers,
json_converter = LibreHtml2JsonConverter(bs_tags, footnotes, top_level_headers,
self.logger_object)
content_dict = json_converter.convert_to_dict()
except Exception as exc:
@@ -86,18 +86,18 @@ if __name__ == "__main__":
locker = Event()
locker.set()
html_converter = Docx2LibreHTML(file_path=docx_file_path,
html_converter = Docx2LibreHtml(file_path=docx_file_path,
logger=logger_object, libre_locker=locker)
html_preprocessor = HtmlPreprocessor(
logger=logger_object, preset_path="../../presets/docx_presets.json")
style_preprocessor = StylePreprocessor()
html_processor = HTMLDocxProcessor(html_soup=html_converter.html_soup, logger=logger_object,
html_processor = HtmlDocxProcessor(html_soup=html_converter.html_soup, logger=logger_object,
html_preprocessor=html_preprocessor, style_preprocessor=style_preprocessor)
content, footnotes, top_level_headers = html_processor.process_html(
html_path=html_converter.html_path, book_id=html_converter.book_id)
json_converter = LibreHTML2JSONConverter(
json_converter = LibreHtml2JsonConverter(
content, footnotes, top_level_headers, logger_object)
content_dict = json_converter.convert_to_dict()

View File

@@ -3,7 +3,7 @@ from typing import List
from bs4 import BeautifulSoup, Tag, NavigableString
def _clean_footnote_content(content: str) -> str:
def clean_footnote_content(content: str) -> str:
content = content.strip()
return content.strip()
@@ -66,7 +66,7 @@ def process_footnotes(body_tag: Tag) -> List[str]:
else:
unicode_string += child.decode_contents()
content = _clean_footnote_content(unicode_string)
content = clean_footnote_content(unicode_string)
cont_tag.decompose()
footnotes.append(content)

View File

@@ -11,7 +11,7 @@ from src.docx_converter.footnotes_processing import process_footnotes
from src.tag_inline_style_processor import modify_html_soup_with_css_styles
class HTMLDocxProcessor:
class HtmlDocxProcessor:
def __init__(self, logger: BookLogger, html_soup: BeautifulSoup, html_preprocessor, style_preprocessor):
self.logger = logger
self.html_soup = html_soup

View File

@@ -7,7 +7,7 @@ from bs4 import Tag
from src.livecarta_config import LiveCartaConfig
class LibreHTML2JSONConverter:
class LibreHtml2JsonConverter:
def __init__(self, content: List[Tag], footnotes: List[str], top_level_headers: List[Dict[str, Union[str, bool]]],
logger_object, book_api_status=None):
self.content_dict = None

View File

@@ -13,7 +13,7 @@ from src.util.helpers import BookLogger
from src.livecarta_config import LiveCartaConfig
from src.data_objects import ChapterItem, NavPoint
from src.style_preprocessor import StylePreprocessor
from src.epub_converter.html_epub_processor import HTMLEpubProcessor
from src.epub_converter.html_epub_processor import HtmlEpubProcessor
from src.epub_converter.image_processing import update_images_src_links
from src.epub_converter.footnotes_processing import preprocess_footnotes
from src.tag_inline_style_processor import modify_html_soup_with_css_styles
@@ -21,7 +21,7 @@ from src.tag_inline_style_processor import modify_html_soup_with_css_styles
class EpubConverter:
def __init__(self, book_path, access=None, logger: BookLogger = None,
style_processor: StylePreprocessor = None, html_processor: HTMLEpubProcessor = None):
style_processor: StylePreprocessor = None, html_processor: HtmlEpubProcessor = None):
self.book_path = book_path
self.access = access
self.logger: BookLogger = logger

View File

@@ -5,7 +5,7 @@ from src.book_solver import BookSolver
from src.util.helpers import BookLogger
from src.html_preprocessor import HtmlPreprocessor
from src.style_preprocessor import StylePreprocessor
from src.epub_converter.html_epub_processor import HTMLEpubProcessor
from src.epub_converter.html_epub_processor import HtmlEpubProcessor
from src.epub_converter.epub_converter import EpubConverter
@@ -33,7 +33,7 @@ class EpubBook(BookSolver):
html_preprocessor = HtmlPreprocessor(
logger=self.logger_object, preset_path="presets/epub_presets.json")
style_preprocessor = StylePreprocessor()
html_processor = HTMLEpubProcessor(logger=self.logger_object,
html_processor = HtmlEpubProcessor(logger=self.logger_object,
html_preprocessor=html_preprocessor)
json_converter = EpubConverter(
self.book_path, access=self.access, logger=self.logger_object,
@@ -51,7 +51,7 @@ if __name__ == "__main__":
html_preprocessor = HtmlPreprocessor(
logger=logger_object, preset_path="../../presets/epub_presets.json")
style_preprocessor = StylePreprocessor()
html_processor = HTMLEpubProcessor(logger=logger_object,
html_processor = HtmlEpubProcessor(logger=logger_object,
html_preprocessor=html_preprocessor)
json_converter = EpubConverter(epub_file_path, logger=logger_object,

View File

@@ -3,7 +3,7 @@ from typing import List, Tuple
from bs4 import BeautifulSoup, Tag
def _replace_with_livecarta_anchor_tag(anchor, i):
def replace_with_livecarta_anchor_tag(anchor, i):
"""Function replace noteref_tag(anchor) with new livecarta tag"""
new_tag = BeautifulSoup(features="lxml").new_tag("sup")
new_tag["class"] = "footnote-element"
@@ -75,7 +75,7 @@ def preprocess_footnotes(source_html_tag: Tag, href2soup_html: dict = None, note
if footnote_tag.parent.attrs.get("role") and footnote_tag.parent.attrs.get("role") == "docs-endnote":
footnote_tag = footnote_tag.parent
new_noterefs_tags.append(
_replace_with_livecarta_anchor_tag(noteref_tag, i))
replace_with_livecarta_anchor_tag(noteref_tag, i))
content = footnote_tag.text
# footnote_tag.decompose()
footnotes.append(content)

View File

@@ -7,7 +7,7 @@ from src.util.helpers import BookLogger
from src.html_preprocessor import _preprocess_html
class HTMLEpubProcessor:
class HtmlEpubProcessor:
def __init__(self, logger: BookLogger = None, html_preprocessor=None):
self.logger = logger
self.html_preprocessor = html_preprocessor