fix: clean direct_text in planner + remove redundant if/else

- _extract_source_text now applies clean_text() to direct_text (was skipped)
- _parse_chapters simplified: identical branches collapsed to single call
This commit is contained in:
Artem Akymenko
2026-07-22 07:05:50 +00:00
parent 1a3741ec50
commit 16b3f7d8a8
+6 -9
View File
@@ -80,11 +80,11 @@ def build_conversion_plan(request: ConversionRequest) -> ConversionPlan:
def _extract_source_text(request: ConversionRequest) -> Optional[str]: def _extract_source_text(request: ConversionRequest) -> Optional[str]:
"""Extract text from request source.""" """Extract text from request source."""
if request.direct_text: from abogen.subtitle_utils import clean_text
return request.direct_text
if request.source_path and request.source_path.exists():
from abogen.subtitle_utils import clean_text
if request.direct_text:
return clean_text(request.direct_text)
if request.source_path and request.source_path.exists():
encoding = "utf-8" encoding = "utf-8"
try: try:
with open(request.source_path, "r", encoding=encoding, errors="replace") as f: with open(request.source_path, "r", encoding=encoding, errors="replace") as f:
@@ -123,11 +123,8 @@ def _parse_chapters(
""" """
from abogen.domain.text_chapters import parse_chapters_from_text from abogen.domain.text_chapters import parse_chapters_from_text
# For direct text, use the text as-is # Text is already cleaned in _extract_source_text, so clean=False here
if request.direct_text: chapters = parse_chapters_from_text(source_text, default_title="text", clean=False)
chapters = parse_chapters_from_text(source_text, default_title="text", clean=False)
else:
chapters = parse_chapters_from_text(source_text, default_title="text", clean=False)
# Default voice from request # Default voice from request
default_voice = request.voice or "M1" default_voice = request.voice or "M1"