#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Obsidian KB - 使用示例 展示如何使用主流程集成功能 """ import os import sys # 添加项目路径 sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) def example_1_basic_usage(): """示例1: 基本使用""" print("=" * 80) print("示例1: 基本使用") print("=" * 80 + "\n") from main_pipeline import MainPipeline from src.config import get_config # 创建主流程 config = get_config() pipeline = MainPipeline(config=config, enable_git_sync=False) # 处理视频 source_id = "BV1MnFNz5EDL" # 替换为实际的 BV 号 result = pipeline.process_video(source_id) if result['success']: print("✅ 处理成功!") print(result['message']) else: print(f"❌ 处理失败: {result['error']}") def example_2_with_git_sync(): """示例2: 启用 Git 同步""" print("\n" + "=" * 80) print("示例2: 启用 Git 同步") print("=" * 80 + "\n") from main_pipeline import MainPipeline from src.config import get_config # 创建主流程(启用 Git 同步) config = get_config() pipeline = MainPipeline(config=config, enable_git_sync=True) # 处理视频 source_id = "BV1MnFNz5EDL" result = pipeline.process_video(source_id) if result['success']: print("✅ 处理成功(包含 Git 同步)!") print(result['message']) else: print(f"❌ 处理失败: {result['error']}") def example_3_handler_interface(): """示例3: 使用 Handler 接口""" print("\n" + "=" * 80) print("示例3: 使用 Handler 接口") print("=" * 80 + "\n") from handler import process_video_full # 使用 Handler 处理视频 source_id = "BV1MnFNz5EDL" success, message = process_video_full(source_id, enable_git_sync=False) if success: print("✅ 处理成功!") print(message) else: print(f"❌ 处理失败: {message}") def example_4_batch_processing(): """示例4: 批量处理""" print("\n" + "=" * 80) print("示例4: 批量处理") print("=" * 80 + "\n") from main_pipeline import MainPipeline from src.config import get_config # 创建主流程 config = get_config() pipeline = MainPipeline(config=config, enable_git_sync=False) # 批量处理多个视频 source_ids = [ "BV1MnFNz5EDL", # 添加更多 BV 号 ] results = [] for i, source_id in enumerate(source_ids, 1): print(f"\n处理第 {i}/{len(source_ids)} 个视频: {source_id}") result = pipeline.process_video(source_id) results.append(result) # 汇总结果 print("\n" + "-" * 80) print("批量处理结果汇总:") print("-" * 80) success_count = sum(1 for r in results if r['success']) fail_count = len(results) - success_count print(f" 总数: {len(results)}") print(f" 成功: {success_count}") print(f" 失败: {fail_count}") def example_5_custom_config(): """示例5: 自定义配置""" print("\n" + "=" * 80) print("示例5: 自定义配置") print("=" * 80 + "\n") from main_pipeline import MainPipeline from src.config import Config # 使用自定义配置 custom_config_path = "/path/to/custom/config.yaml" config = get_config(custom_config_path) # 或者直接修改配置 config.set('git.enabled', True) config.set('git.auto_push', False) # 创建主流程 pipeline = MainPipeline(config=config, enable_git_sync=True) # 处理视频 source_id = "BV1MnFNz5EDL" result = pipeline.process_video(source_id) if result['success']: print("✅ 处理成功(使用自定义配置)!") print(result['message']) else: print(f"❌ 处理失败: {result['error']}") def example_6_error_handling(): """示例6: 错误处理""" print("\n" + "=" * 80) print("示例6: 错误处理") print("=" * 80 + "\n") from main_pipeline import MainPipeline from src.config import get_config # 创建主流程 config = get_config() pipeline = MainPipeline(config=config, enable_git_sync=False) # 测试无效的 BV 号 invalid_bv = "BVinvalid123" result = pipeline.process_video(invalid_bv) if not result['success']: print("✅ 错误被正确捕获!") print(f"错误信息: {result['error']}") else: print("❌ 应该失败但成功了") def main(): """运行示例""" print("\n" + "=" * 80) print("Obsidian KB - 主流程集成使用示例") print("=" * 80) print("\n注意:这些示例需要实际安装依赖并配置环境") print(" 可以根据需要选择运行不同的示例\n") # 运行示例 # example_1_basic_usage() # example_2_with_git_sync() # example_3_handler_interface() # example_4_batch_processing() # example_5_custom_config() # example_6_error_handling() print("\n提示:取消注释上面的示例代码来运行对应的示例") if __name__ == '__main__': main()