#!/usr/bin/env python3 """调试 publish 流程,找出 600383 发布失败的原因。""" import sys import json import os sys.path.insert(0, '/home/ubuntu/.nanobot/workspace/skills/baoyu-post-to-wechat') # 1. 读取 600383 的分析结果 with open('/home/ubuntu/nanocode/TradingAgents/logs/tasks/600383_20260610161057.json', 'r') as f: task = json.load(f) state = task["result"] print("✅ 读取 600383 分析结果成功") # 2. 测试 Markdown 组装 from tradingagents.publish.wechat_publisher import _build_markdown, publish_analysis_result md = _build_markdown(state, "600383", "2026-06-10") print(f"✅ Markdown 组装成功,长度: {len(md)} 字符") # 3. 测试保存到磁盘 results_dir = os.path.join(os.path.expanduser("~"), "TradingAgents", "logs") publish_dir = os.path.join(results_dir, "600383", "published") os.makedirs(publish_dir, exist_ok=True) md_path = os.path.join(publish_dir, "analysis_2026-06-10.md") with open(md_path, "w", encoding="utf-8") as f: f.write(md) print(f"✅ Markdown 已保存到: {md_path}") # 4. 测试 WeChatPublisher 初始化 try: from baoyu_optimized import WeChatPublisher publisher = WeChatPublisher() print(f"✅ WeChatPublisher 初始化成功") print(f" 配置: {publisher.config}") except Exception as e: print(f"❌ WeChatPublisher 初始化失败: {e}") import traceback traceback.print_exc() sys.exit(1) # 5. 测试获取 access_token try: token = publisher.get_access_token() print(f"✅ 获取 access_token 成功: {token[:20]}...") except Exception as e: print(f"❌ 获取 access_token 失败: {e}") import traceback traceback.print_exc() sys.exit(1) # 6. 测试 blog_sync 导入(这是发布流程的一部分) print("\n🔍 测试 blog_sync 导入...") try: from blog_sync import sync_markdown_to_blog print("✅ blog_sync 导入成功") except Exception as e: print(f"❌ blog_sync 导入失败: {e}") import traceback traceback.print_exc() # 7. 检查封面图片是否存在 cover = publisher.config.get('default_cover_image') print(f"\n🔍 检查封面图片: {cover}") if cover and os.path.exists(cover): print("✅ 封面图片存在") else: print(f"⚠️ 封面图片不存在或路径为空") # 8. 测试解析 frontmatter(publish_markdown_with_images 的前几步) print("\n🔍 测试 Markdown 解析...") try: with open(md_path, 'r', encoding='utf-8') as f: content = f.read() frontmatter, body = publisher.markdown_parser.parse_frontmatter(content) print(f"✅ Frontmatter 解析成功: {frontmatter}") images = publisher.extract_images_from_markdown(body) print(f"✅ 提取到 {len(images)} 张图片") except Exception as e: print(f"❌ 解析失败: {e}") import traceback traceback.print_exc() print("\n--- 调试完成,未实际调用微信 API ---") print("如需测试完整发布流程,请手动调用 publisher.publish_markdown_with_images()")