beijing-exhibitions/logs/cron.log
... ...
@@ -4894,3 +4894,50 @@ openclaw feishu_doc write --doc_token IIpVd0zDZoJgSSxPdsXc0DzHneh --title '北
4894 4894
[2026-06-22 09:00:01] ✓ 今日记忆已更新(成功)
4895 4895
[2026-06-22 09:00:01] ========== 任务执行成功 ==========
4896 4896
✅ 北京展览爬取成功 (2026-06-22) - 共 20 个展览
4897
+[2026-06-23 09:00:02] ========== 开始执行展览爬取任务 ==========
4898
+[2026-06-23 09:00:02] [INFO] ============================================================
4899
+[2026-06-23 09:00:02] [INFO] 北京展览爬取(优先北京市文物局)
4900
+[2026-06-23 09:00:02] [INFO] ============================================================
4901
+[2026-06-23 09:00:02] [INFO] 数据库初始化完成
4902
+[2026-06-23 09:00:02] [INFO]
4903
+【1】北京市文物局 ⭐⭐⭐⭐⭐
4904
+[2026-06-23 09:00:05] [INFO] 获取 1 个
4905
+[2026-06-23 09:00:05] [INFO]
4906
+【2】各大博物馆 ⭐⭐⭐⭐
4907
+[2026-06-23 09:00:15] [INFO]
4908
+【3】聚合信息 ⭐⭐⭐
4909
+[2026-06-23 09:00:17] [INFO] 去重后:13 个
4910
+[2026-06-23 09:00:17] [INFO] 对比:新增13个,移除5个
4911
+{"status": "success", "total": 13, "comparison": {"is_same": false, "new_count": 13, "removed_count": 5, "message": "新增13个,移除5个"}, "report": "/root/.openclaw/workspace/travel/beijing-exhibitions/scripts/data/beijing_exhibitions_2026-06-23.md"}
4912
+[2026-06-23 09:00:17] [INFO] ============================================================
4913
+[2026-06-23 09:00:17] [INFO] 完成!13 个展览,新增13个,移除5个
4914
+[2026-06-23 09:00:02] 爬取结果:总计 13 条,保存 13 条,状态 success
4915
+[2026-06-23 09:00:02] ✓ 验证通过:爬取到 13 条展览信息
4916
+[2026-06-23 09:00:02] 同步到飞书文档...
4917
+[2026-06-23 09:00:02] 执行 feishu_sync_fixed.py...
4918
+[2026-06-23 09:00:17] 开始同步飞书文档...
4919
+[2026-06-23 09:00:17] 文档标题:北京展览推荐 - 2026-06-23
4920
+[2026-06-23 09:00:17] 文档 Token: IIpVd0zDZoJgSSxPdsXc0DzHneh
4921
+===FEISHU_DOC_START===
4922
+{"action": "write", "doc_token": "IIpVd0zDZoJgSSxPdsXc0DzHneh", "content": "# 北京展览推荐 - 2026-06-23\n\n## 📅 今日概览\n- **在展数量**:13 个\n- **符合兴趣**:3 个\n- **数据更新时间**:2026-06-23 09:00\n- **数据对比**:✅ 新增13个,移除5个\n\n---\n\n## 🌟 重点推荐展览\n\n1. **幽燕华章——西汉广阳国历史文化展** - 北京市文物局汇总(展期详情)\n2. **中国当代艺术选展** - 中国美术馆(展期详情)\n3. **北京恭王府博物馆丽江木府历史文化主题展** - 待查询(展期详情)\n\n---\n\n## 📊 数据来源\n- **优先**:北京市文物局、国家博物馆、故宫博物院、首都博物馆、中国美术馆\n- **补充**:豆瓣同城、本地宝等\n\n---\n\n*由 Travel Agent 自动生成 | 2026-06-23 09:00*\n", "title": "北京展览推荐 - 2026-06-23"}
4923
+===FEISHU_DOC_END===
4924
+[2026-06-23 09:00:17] ✓ 飞书同步指令已生成
4925
+[2026-06-23 09:00:17] 请通过 openclaw feishu_doc 执行以下命令:
4926
+openclaw feishu_doc write --doc_token IIpVd0zDZoJgSSxPdsXc0DzHneh --title '北京展览推荐 - 2026-06-23' --content '...'
4927
+[2026-06-23 09:00:02] ✓ 飞书文档同步成功
4928
+[2026-06-23 09:00:02] 执行 heartbeat 检查...
4929
+{
4930
+ "status": "success",
4931
+ "message": "今日已执行 1 次爬取,新增 0 个展览",
4932
+ "last_crawl": {
4933
+ "source": "Tavily",
4934
+ "time": "2026-06-23 09:00:17",
4935
+ "status": "success",
4936
+ "items": 13
4937
+ },
4938
+ "today_new_exhibitions": 0
4939
+}
4940
+[2026-06-23 09:00:02] ✓ 通知标记已写入:/root/.openclaw/workspace/travel/beijing-exhibitions/notification_pending.json
4941
+[2026-06-23 09:00:02] ✓ 今日记忆已更新(警告)
4942
+[2026-06-23 09:00:02] ========== 任务执行成功 ==========
4943
+✅ 北京展览爬取成功 (2026-06-23) - 共 13 个展览
beijing-exhibitions/logs/daily_20260623.log
... ...
@@ -0,0 +1,46 @@
1
+[2026-06-23 09:00:02] ========== 开始执行展览爬取任务 ==========
2
+[2026-06-23 09:00:02] [INFO] ============================================================
3
+[2026-06-23 09:00:02] [INFO] 北京展览爬取(优先北京市文物局)
4
+[2026-06-23 09:00:02] [INFO] ============================================================
5
+[2026-06-23 09:00:02] [INFO] 数据库初始化完成
6
+[2026-06-23 09:00:02] [INFO]
7
+【1】北京市文物局 ⭐⭐⭐⭐⭐
8
+[2026-06-23 09:00:05] [INFO] 获取 1 个
9
+[2026-06-23 09:00:05] [INFO]
10
+【2】各大博物馆 ⭐⭐⭐⭐
11
+[2026-06-23 09:00:15] [INFO]
12
+【3】聚合信息 ⭐⭐⭐
13
+[2026-06-23 09:00:17] [INFO] 去重后:13 个
14
+[2026-06-23 09:00:17] [INFO] 对比:新增13个,移除5个
15
+{"status": "success", "total": 13, "comparison": {"is_same": false, "new_count": 13, "removed_count": 5, "message": "新增13个,移除5个"}, "report": "/root/.openclaw/workspace/travel/beijing-exhibitions/scripts/data/beijing_exhibitions_2026-06-23.md"}
16
+[2026-06-23 09:00:17] [INFO] ============================================================
17
+[2026-06-23 09:00:17] [INFO] 完成!13 个展览,新增13个,移除5个
18
+[2026-06-23 09:00:02] 爬取结果:总计 13 条,保存 13 条,状态 success
19
+[2026-06-23 09:00:02] ✓ 验证通过:爬取到 13 条展览信息
20
+[2026-06-23 09:00:02] 同步到飞书文档...
21
+[2026-06-23 09:00:02] 执行 feishu_sync_fixed.py...
22
+[2026-06-23 09:00:17] 开始同步飞书文档...
23
+[2026-06-23 09:00:17] 文档标题:北京展览推荐 - 2026-06-23
24
+[2026-06-23 09:00:17] 文档 Token: IIpVd0zDZoJgSSxPdsXc0DzHneh
25
+===FEISHU_DOC_START===
26
+{"action": "write", "doc_token": "IIpVd0zDZoJgSSxPdsXc0DzHneh", "content": "# 北京展览推荐 - 2026-06-23\n\n## 📅 今日概览\n- **在展数量**:13 个\n- **符合兴趣**:3 个\n- **数据更新时间**:2026-06-23 09:00\n- **数据对比**:✅ 新增13个,移除5个\n\n---\n\n## 🌟 重点推荐展览\n\n1. **幽燕华章——西汉广阳国历史文化展** - 北京市文物局汇总(展期详情)\n2. **中国当代艺术选展** - 中国美术馆(展期详情)\n3. **北京恭王府博物馆丽江木府历史文化主题展** - 待查询(展期详情)\n\n---\n\n## 📊 数据来源\n- **优先**:北京市文物局、国家博物馆、故宫博物院、首都博物馆、中国美术馆\n- **补充**:豆瓣同城、本地宝等\n\n---\n\n*由 Travel Agent 自动生成 | 2026-06-23 09:00*\n", "title": "北京展览推荐 - 2026-06-23"}
27
+===FEISHU_DOC_END===
28
+[2026-06-23 09:00:17] ✓ 飞书同步指令已生成
29
+[2026-06-23 09:00:17] 请通过 openclaw feishu_doc 执行以下命令:
30
+openclaw feishu_doc write --doc_token IIpVd0zDZoJgSSxPdsXc0DzHneh --title '北京展览推荐 - 2026-06-23' --content '...'
31
+[2026-06-23 09:00:02] ✓ 飞书文档同步成功
32
+[2026-06-23 09:00:02] 执行 heartbeat 检查...
33
+{
34
+ "status": "success",
35
+ "message": "今日已执行 1 次爬取,新增 0 个展览",
36
+ "last_crawl": {
37
+ "source": "Tavily",
38
+ "time": "2026-06-23 09:00:17",
39
+ "status": "success",
40
+ "items": 13
41
+ },
42
+ "today_new_exhibitions": 0
43
+}
44
+[2026-06-23 09:00:02] ✓ 通知标记已写入:/root/.openclaw/workspace/travel/beijing-exhibitions/notification_pending.json
45
+[2026-06-23 09:00:02] ✓ 今日记忆已更新(警告)
46
+[2026-06-23 09:00:02] ========== 任务执行成功 ==========
beijing-exhibitions/scripts/data/beijing_exhibitions_2026-06-23.md
... ...
@@ -0,0 +1,25 @@
1
+# 北京展览推荐 - 2026-06-23
2
+
3
+## 📅 今日概览
4
+- **在展数量**:13 个
5
+- **符合兴趣**:3 个
6
+- **数据更新时间**:2026-06-23 09:00
7
+- **数据对比**:✅ 新增13个,移除5个
8
+
9
+---
10
+
11
+## 🌟 重点推荐展览
12
+
13
+1. **幽燕华章——西汉广阳国历史文化展** - 北京市文物局汇总(展期详情)
14
+2. **中国当代艺术选展** - 中国美术馆(展期详情)
15
+3. **北京恭王府博物馆丽江木府历史文化主题展** - 待查询(展期详情)
16
+
17
+---
18
+
19
+## 📊 数据来源
20
+- **优先**:北京市文物局、国家博物馆、故宫博物院、首都博物馆、中国美术馆
21
+- **补充**:豆瓣同城、本地宝等
22
+
23
+---
24
+
25
+*由 Travel Agent 自动生成 | 2026-06-23 09:00*
beijing-exhibitions/scripts/data/exhibitions.db
beijing-exhibitions/scripts/feishu_sync_fixed.py
... ...
@@ -1,21 +1,21 @@
1 1
#!/usr/bin/env python3
2 2
# -*- coding: utf-8 -*-
3 3
"""
4
-飞书文档同步脚本 - 修复版
5
-直接调用 feishu_doc API 同步展览报告
4
+飞书文档同步脚本 - 修复版 v3
5
+真正调用 openclaw feishu_doc API 同步展览报告
6 6
7 7
使用方法:
8
- python3 feishu_sync_fixed.py 2026-03-17
8
+ python3 feishu_sync_fixed.py [YYYY-MM-DD]
9 9
"""
10 10
11 11
import json
12
+import subprocess
12 13
import sys
13 14
from datetime import datetime
14 15
from pathlib import Path
15 16
16 17
# 基础配置
17
-BASE_DIR = Path(__file__).parent.parent
18
-DATA_DIR = Path(__file__).parent / "data" # 修复:数据在 scripts/data/ 目录下
18
+DATA_DIR = Path(__file__).parent / "data"
19 19
REPORT_DATE = sys.argv[1] if len(sys.argv) > 1 else datetime.now().strftime("%Y-%m-%d")
20 20
21 21
# 飞书文档配置
... ...
@@ -31,100 +31,54 @@ def get_report_content():
31 31
with open(report_path, "r", encoding="utf-8") as f:
32 32
return f.read()
33 33
else:
34
- # 如果今日报告不存在,使用默认数据
35
- return generate_default_report(REPORT_DATE)
36
-
37
-
38
-def generate_default_report(date):
39
- """生成默认报告(基于已知数据)"""
40
- return f"""# 北京展览推荐 - {date}
41
-
42
-## 📅 今日概览
43
-- **在展数量**:39 个
44
-- **官方权威**:15 个(国家级博物馆)
45
-- **符合您兴趣**:6 个(历史/人文/古建/博物馆/书法)
46
-- **数据更新时间**:{date} 09:00
47
-- **P2 任务状态**:✅ 完成(10/10 数据源)
48
-
49
----
50
-
51
-## 🌟 重点推荐展览(符合您的兴趣)TOP 6
52
-
53
-| 展览名称 | 地点 | 展期 | 票价 | 类型 |
54
-|---------|------|------|------|------|
55
-| **叩问永恒——庞贝的探索与发掘** 🔥 | 国家博物馆 南 1-2 厅 | 02-04~10-11 | ¥120/60 | 考古/古罗马 |
56
-| **双星耀世——三星堆—金沙古蜀文明展** 🔥 | 国家博物馆 南 8-9 厅 | 即日起~08-18 | **免费** | 古蜀文明 |
57
-| **万法归一:萨迦寺历史文化艺术展** | 故宫博物院 午门 | 02-10~05-10 | 含门票 | 藏传佛教 |
58
-| **饰文焕彩——河北古代艺术珍品展** | 中国美术馆 19-21 厅 | 02-13~05-12 | **免费** | 古代艺术 |
59
-| **跃马春风——楹联书法作品展** ⚠️ | 中国美术馆 4 厅 | 02-11~03-08 | **免费** | 书法 |
60
-| **仁风景从——故宫藏捐献文物展** | 故宫博物院 景仁宫 | 常设展 | 含门票 | 古代艺术 |
61
-
62
-**图例说明:** 🔥 强烈推荐 | ⚠️ 即将截止(3 月 8 日)
63
-
64
----
65
-
66
-## 📋 数据来源
67
-
68
-- **官方权威(7 个)**:故宫、国博、首博、中国美术馆等 15 个展览
69
-- **民间数据(3 个)**:豆瓣同城 10 个、小红书 13 篇、北京市文物局 8 个
70
-- **总计**:39 个展览/攻略
71
-
72
----
73
-
74
-## ℹ️ 观展提示
75
-
76
-- **预约方式**:大部分博物馆需提前在官网/公众号预约
77
-- **开放时间**:通常 9:00-17:00(周一闭馆)
78
-- **交通建议**:优先选择地铁出行
79
-
80
----
81
-
82
-*由 Travel Agent 自动生成 | 最后更新:{date} 09:00*
83
-"""
34
+ print(f"[WARN] 报告文件不存在:{report_path}")
35
+ return None
84 36
85 37
86 38
def sync_to_feishu(content):
87
- """
88
- 同步到飞书文档
89
-
90
- 返回:(success, message, feishu_output)
91
- """
92
- # 输出 JSON 指令,由调用方通过 openclaw feishu_doc 执行
93
- sync_command = {
94
- "action": "write",
95
- "doc_token": DOC_TOKEN,
96
- "content": content,
97
- "title": DOC_TITLE
98
- }
39
+ """真正调用 openclaw feishu_doc 写入飞书文档"""
40
+ cmd = [
41
+ "openclaw", "feishu_doc", "write",
42
+ "--doc_token", DOC_TOKEN,
43
+ "--title", DOC_TITLE,
44
+ "--content", content,
45
+ ]
99 46
100
- # 输出特殊标记,便于 shell 脚本解析
101
- print("===FEISHU_DOC_START===")
102
- print(json.dumps(sync_command, ensure_ascii=False))
103
- print("===FEISHU_DOC_END===")
47
+ result = subprocess.run(cmd, capture_output=True, text=True, timeout=60)
104 48
105
- return True, "成功", sync_command
49
+ if result.returncode == 0:
50
+ # 尝试解析输出获取 blocks_added
51
+ try:
52
+ resp = json.loads(result.stdout)
53
+ blocks_added = resp.get("blocks_added", "?")
54
+ blocks_deleted = resp.get("blocks_deleted", "?")
55
+ print(f" 飞书文档同步成功(新增 {blocks_added} 块,删除 {blocks_deleted} 块)")
56
+ except Exception:
57
+ print(f" 飞书文档同步成功")
58
+ return True
59
+ else:
60
+ print(f" 飞书文档同步失败:{result.stderr or result.stdout}")
61
+ return False
106 62
107 63
108 64
def main():
109
- """主函数"""
110 65
timestamp = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
111 66
print(f"[{timestamp}] 开始同步飞书文档...")
112 67
print(f"[{timestamp}] 文档标题:{DOC_TITLE}")
113 68
print(f"[{timestamp}] 文档 Token: {DOC_TOKEN}")
114 69
115
- # 获取报告内容
116 70
content = get_report_content()
71
+ if not content:
72
+ print(f"[{timestamp}] ✗ 无报告内容可同步")
73
+ return 1
117 74
118
- # 同步到飞书
119
- success, message, sync_command = sync_to_feishu(content)
75
+ success = sync_to_feishu(content)
120 76
121 77
if success:
122
- print(f"[{timestamp}] ✓ 飞书同步指令已生成")
123
- print(f"[{timestamp}] 请通过 openclaw feishu_doc 执行以下命令:")
124
- print(f"openclaw feishu_doc write --doc_token {DOC_TOKEN} --title '{DOC_TITLE}' --content '...'")
78
+ print(f"[{timestamp}] ✓ 飞书文档同步完成")
125 79
return 0
126 80
else:
127
- print(f"[{timestamp}] ✗ 飞书同步失败:{message}")
81
+ print(f"[{timestamp}] ✗ 飞书文档同步失败")
128 82
return 1
129 83
130 84
beijing-exhibitions/scripts/logs/exhibition_20260623.log
... ...
@@ -0,0 +1,15 @@
1
+[2026-06-23 09:00:02] [INFO] ============================================================
2
+[2026-06-23 09:00:02] [INFO] 北京展览爬取(优先北京市文物局)
3
+[2026-06-23 09:00:02] [INFO] ============================================================
4
+[2026-06-23 09:00:02] [INFO] 数据库初始化完成
5
+[2026-06-23 09:00:02] [INFO]
6
+【1】北京市文物局 ⭐⭐⭐⭐⭐
7
+[2026-06-23 09:00:05] [INFO] 获取 1 个
8
+[2026-06-23 09:00:05] [INFO]
9
+【2】各大博物馆 ⭐⭐⭐⭐
10
+[2026-06-23 09:00:15] [INFO]
11
+【3】聚合信息 ⭐⭐⭐
12
+[2026-06-23 09:00:17] [INFO] 去重后:13 个
13
+[2026-06-23 09:00:17] [INFO] 对比:新增13个,移除5个
14
+[2026-06-23 09:00:17] [INFO] ============================================================
15
+[2026-06-23 09:00:17] [INFO] 完成!13 个展览,新增13个,移除5个
memory/2026-06-23.md
... ...
@@ -60,3 +60,60 @@
60 60
61 61
*创建时间:2026-06-23 00:00:01*
62 62
*维护者:Travel Agent*
63
+
64
+---
65
+
66
+## ⚠️ 自动任务记录 - 北京展览爬取(数据偏少)
67
+
68
+**时间**:2026-06-23 09:00:02
69
+**状态**:success
70
+**展览数量**:13 个(低于正常值)
71
+**飞书文档**:https://feishu.cn/docx/IIpVd0zDZoJgSSxPdsXc0DzHneh
72
+
73
+**待处理**:检查数据源是否正常
74
+
75
+
76
+---
77
+
78
+## 📝 每日总结
79
+
80
+### ✅ 今日完成
81
+1.
82
+2.
83
+3.
84
+
85
+### ⚠️ 遇到的问题
86
+1.
87
+2.
88
+
89
+### 🧠 经验教训
90
+-
91
+
92
+### 📋 明日计划
93
+1.
94
+2.
95
+3.
96
+
97
+---
98
+
99
+### 三层记忆检查清单
100
+
101
+**第 1 层 预防(写入时)**
102
+- [ ] 长期记忆(MEMORY.md)是否更新?
103
+- [ ] 今日记忆是否完整记录?
104
+- [ ] 任务状态是否已更新?
105
+
106
+**第 2 层 侦测(恢复时)**
107
+- [ ] Session 开始前是否读取了记忆?
108
+- [ ] 是否检查了昨日记忆?
109
+- [ ] 是否确认了今日任务?
110
+
111
+**第 3 层 兜底(执行时)**
112
+- [ ] 高风险操作前是否检查了约束?
113
+- [ ] 不可逆操作前是否确认了?
114
+- [ ] 是否有违反原则的情况?
115
+
116
+---
117
+
118
+*最后更新:2026-06-23 23:00:01*
119
+*维护者:Travel Agent*
memory/daily_summary.log
... ...
@@ -404,3 +404,7 @@
404 404
[2026-06-22 23:00:01] ✓ 每日总结模板已添加
405 405
[2026-06-22 23:00:01] ========== 每日记忆总结完成 ==========
406 406
[2026-06-22 23:00:01] 每日总结完成
407
+[2026-06-23 23:00:01] ========== 开始每日记忆总结 ==========
408
+[2026-06-23 23:00:01] ✓ 每日总结模板已添加
409
+[2026-06-23 23:00:01] ========== 每日记忆总结完成 ==========
410
+[2026-06-23 23:00:01] 每日总结完成