feat: integrate bilibili-extractor into obsidian-kb

- Add extractors layer with BilibiliExtractor (Playwright stealth mode)
- Add outputs layer with ObsidianWriter and GitSync
- Implement subtitle/no-subtitle graceful degradation
- Update config with output and bilibili extraction settings
- Complete integration pipeline: extract → process → output → sync
- Add comprehensive tests (100% pass rate)
- Update documentation (SKILL.md, README.md, requirements.txt)
This commit is contained in:
OpenClaw Agent
2026-02-07 13:07:43 +08:00
parent ceeeb0f84c
commit 08f7c9f26c
29 changed files with 5824 additions and 45 deletions
+8 -4
View File
@@ -89,15 +89,19 @@ class AnalysisResult:
"""AI深度分析结果"""
main_topics: List[str] = field(default_factory=list) # 主要主题
key_insights: List[str] = field(default_factory=list) # 关键洞察
timeline_summary: List[Dict[str, Any]] = field(default_factory=list) # 时间线摘要
content_structure: str = "" # 内容结构描述
action_items: List[str] = field(default_factory=list) # 行动项
summary: str = "" # 摘要
timeline: List[Dict[str, Any]] = field(default_factory=list) # 时间线
recommended_tags: List[str] = field(default_factory=list) # 推荐标签
full_analysis: str = "" # 完整分析
timeline_summary: List[Dict[str, Any]] = field(default_factory=list) # 时间线摘要(兼容字段)
content_structure: str = "" # 内容结构描述
target_audience: str = "" # 目标受众
difficulty_level: str = "intermediate" # 难度级别
def to_dict(self) -> Dict[str, Any]:
return asdict(self)
@classmethod
def from_dict(cls, data: Dict[str, Any]) -> "AnalysisResult":
return cls(**data)