feat: 新增 .doc 格式支持,借助 LibreOffice soffice
- 提取 LibreOffice 解析逻辑为公共工具函数 _utils.parse_via_libreoffice() - 新增 DocReader 独立 Reader,支持 .doc 格式 - 新增 is_valid_doc() 文件验证函数(复用 OLE2 检测) - 新增 doc 格式依赖配置(独立配置) - 新增完整的测试套件,使用静态测试文件 - 更新 README.md 和 SKILL.md,添加 .doc 格式支持说明 - 新增 openspec/specs/doc-reader/spec.md 规范文档 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
"""Utils module for lyxy-document."""
|
||||
|
||||
from .file_detection import (
|
||||
is_valid_doc,
|
||||
is_valid_docx,
|
||||
is_valid_pptx,
|
||||
is_valid_xlsx,
|
||||
@@ -11,6 +12,7 @@ from .file_detection import (
|
||||
)
|
||||
|
||||
__all__ = [
|
||||
"is_valid_doc",
|
||||
"is_valid_docx",
|
||||
"is_valid_pptx",
|
||||
"is_valid_xlsx",
|
||||
|
||||
@@ -6,7 +6,7 @@ from typing import List, Optional
|
||||
|
||||
|
||||
def _is_valid_ole(file_path: str) -> bool:
|
||||
"""验证 OLE2 格式文件(XLS)"""
|
||||
"""验证 OLE2 格式文件(XLS/DOC)"""
|
||||
try:
|
||||
import olefile
|
||||
except ImportError:
|
||||
@@ -53,6 +53,11 @@ def is_valid_xls(file_path: str) -> bool:
|
||||
return _is_valid_ole(file_path)
|
||||
|
||||
|
||||
def is_valid_doc(file_path: str) -> bool:
|
||||
"""验证文件是否为有效的 DOC 格式(OLE2)"""
|
||||
return _is_valid_ole(file_path)
|
||||
|
||||
|
||||
def is_valid_pdf(file_path: str) -> bool:
|
||||
"""验证文件是否为有效的 PDF 格式"""
|
||||
try:
|
||||
|
||||
Reference in New Issue
Block a user