mirror of
https://github.com/denizsafak/abogen.git
synced 2026-07-22 07:10:28 +02:00
refactor: extract extract_metadata_for_file() domain function, delete PyQt wrapper
domain/metadata_extraction.py gains extract_metadata_for_file() combining read_text_for_metadata + extract_metadata_from_text. PyQt _extract_metadata_dict deleted, calls replaced with domain function. Tests: 1253 passed
This commit is contained in:
@@ -195,6 +195,28 @@ def read_text_for_metadata(
|
|||||||
return ""
|
return ""
|
||||||
|
|
||||||
|
|
||||||
|
def extract_metadata_for_file(
|
||||||
|
file_path: str,
|
||||||
|
is_direct_text: bool = False,
|
||||||
|
) -> Dict[str, Optional[str]]:
|
||||||
|
"""Extract metadata dict from a file or direct text.
|
||||||
|
|
||||||
|
Convenience function combining read_text_for_metadata + extract_metadata_from_text.
|
||||||
|
Returns empty dict on any error.
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
text = read_text_for_metadata(
|
||||||
|
file_path=file_path,
|
||||||
|
is_direct_text=is_direct_text,
|
||||||
|
direct_text=file_path if is_direct_text else None,
|
||||||
|
)
|
||||||
|
if text:
|
||||||
|
return extract_metadata_from_text(text) or {}
|
||||||
|
except Exception:
|
||||||
|
pass
|
||||||
|
return {}
|
||||||
|
|
||||||
|
|
||||||
def format_metadata_tags(
|
def format_metadata_tags(
|
||||||
metadata: Dict[str, Any],
|
metadata: Dict[str, Any],
|
||||||
filename: str,
|
filename: str,
|
||||||
|
|||||||
@@ -55,8 +55,7 @@ from abogen.domain.pronunciation import (
|
|||||||
)
|
)
|
||||||
from abogen.domain.metadata_extraction import (
|
from abogen.domain.metadata_extraction import (
|
||||||
extract_metadata_and_build_args,
|
extract_metadata_and_build_args,
|
||||||
extract_metadata_from_text,
|
extract_metadata_for_file,
|
||||||
read_text_for_metadata,
|
|
||||||
)
|
)
|
||||||
from abogen.domain.text_chapters import parse_chapters_from_text
|
from abogen.domain.text_chapters import parse_chapters_from_text
|
||||||
from abogen.infrastructure.exporters import ExportService
|
from abogen.infrastructure.exporters import ExportService
|
||||||
@@ -67,22 +66,6 @@ import subprocess
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
def _extract_metadata_dict(file_name: str, is_direct_text: bool) -> dict:
|
|
||||||
"""Extract metadata dict from file for intro/outro text building."""
|
|
||||||
try:
|
|
||||||
from abogen.domain.metadata_extraction import read_text_for_metadata, extract_metadata_from_text
|
|
||||||
text = read_text_for_metadata(
|
|
||||||
file_path=file_name,
|
|
||||||
is_direct_text=is_direct_text,
|
|
||||||
direct_text=file_name if is_direct_text else None,
|
|
||||||
)
|
|
||||||
if text:
|
|
||||||
return extract_metadata_from_text(text) or {}
|
|
||||||
except Exception:
|
|
||||||
pass
|
|
||||||
return {}
|
|
||||||
|
|
||||||
|
|
||||||
# Configuration constants
|
# Configuration constants
|
||||||
_USER_RESPONSE_TIMEOUT = (
|
_USER_RESPONSE_TIMEOUT = (
|
||||||
0.1 # Timeout in seconds for checking user response/cancellation
|
0.1 # Timeout in seconds for checking user response/cancellation
|
||||||
@@ -776,7 +759,7 @@ class ConversionThread(QThread):
|
|||||||
intro_emitted = False
|
intro_emitted = False
|
||||||
if merge_chapters_at_end:
|
if merge_chapters_at_end:
|
||||||
intro_spec = resolve_intro(
|
intro_spec = resolve_intro(
|
||||||
_extract_metadata_dict(self.file_name, self.is_direct_text),
|
extract_metadata_for_file(self.file_name, self.is_direct_text),
|
||||||
os.path.basename(self.file_name) if self.file_name else "",
|
os.path.basename(self.file_name) if self.file_name else "",
|
||||||
getattr(self, "read_title_intro", False),
|
getattr(self, "read_title_intro", False),
|
||||||
self.voice, self.voice, list(self.voice_cache._cache.keys()),
|
self.voice, self.voice, list(self.voice_cache._cache.keys()),
|
||||||
@@ -1101,7 +1084,7 @@ class ConversionThread(QThread):
|
|||||||
# --- Outro synthesis ---
|
# --- Outro synthesis ---
|
||||||
if merge_chapters_at_end:
|
if merge_chapters_at_end:
|
||||||
outro_spec = resolve_outro(
|
outro_spec = resolve_outro(
|
||||||
_extract_metadata_dict(self.file_name, self.is_direct_text),
|
extract_metadata_for_file(self.file_name, self.is_direct_text),
|
||||||
os.path.basename(self.file_name) if self.file_name else "",
|
os.path.basename(self.file_name) if self.file_name else "",
|
||||||
getattr(self, "read_closing_outro", True),
|
getattr(self, "read_closing_outro", True),
|
||||||
self.voice, self.voice, list(self.voice_cache._cache.keys()),
|
self.voice, self.voice, list(self.voice_cache._cache.keys()),
|
||||||
|
|||||||
Reference in New Issue
Block a user