🔄 卡若AI 同步 2026-03-05 17:00 | 更新:水桥平台对接、运营中枢工作台 | 排除 >20MB: 11 个
This commit is contained in:
@@ -93,4 +93,5 @@
|
||||
- 对话、细节、观点分行,避免大段堆砌
|
||||
- 用 `---` 做段落分隔(与全书一致)
|
||||
- **分享句**:全文约 20% 处一句(≤50 字)、结尾一句(≤50 字、围绕主题);**不用「干货」二字及「干货:」等格式**,直接一句金句
|
||||
- **文件名(强制)**:第9章场次可用「第X场.md」或「第X场-短句.md」体现刺激性观点/效率;短句**不含空格、逗号、全角符号**(如 `第114场-有AI差1万倍.md`、`第115场-可控的事先做.md`),标题同步放在正文第一行,否则部分编辑器会报错。
|
||||
- 写作与改写第9章文章时,**必须先读本规范**;以后写 Soul 派对场次文章都用这套
|
||||
|
||||
@@ -34,8 +34,13 @@ python3 /Users/karuo/Documents/个人/卡若AI/02_卡人(水)/水桥_平台
|
||||
python3 /Users/karuo/Documents/个人/卡若AI/02_卡人(水)/水桥_平台对接/飞书管理/脚本/auto_log.py
|
||||
```
|
||||
|
||||
**Token 全部命令行操作**(脚本:`脚本/feishu_token_cli.py`):
|
||||
- `python3 feishu_token_cli.py get-access-token` → 刷新并获取 access_token(写入 `.feishu_tokens.json`)
|
||||
- `python3 feishu_token_cli.py set-march-token <token>` → 将 3 月文档 node token 写入本地(`.feishu_month_wiki_tokens.json`),写日志时自动使用
|
||||
- `python3 feishu_token_cli.py get-march-token` → 输出当前 3 月 wiki token(环境变量 > 本地文件)
|
||||
|
||||
**自动完成**:
|
||||
1. ✅ **静默Token刷新** → 优先使用refresh_token自动刷新(无需授权)
|
||||
1. ✅ **静默Token刷新** → 优先使用 refresh_token 自动刷新(无需授权);也可命令行 `get-access-token`
|
||||
2. ✅ **检查服务** → 自动启动后端服务
|
||||
3. ✅ **月份路由** → 根据 `X月X日` 自动写入对应月份文档(避免串月)
|
||||
4. ✅ **写入日志** → 倒序插入(新日期在上)
|
||||
@@ -56,7 +61,7 @@ python3 /Users/karuo/Documents/个人/卡若AI/02_卡人(水)/水桥_平台
|
||||
### 2) 写入中:只允许命中当月 token(强制)
|
||||
|
||||
- 禁止固定一个 `WIKI_TOKEN` 写全年日志。
|
||||
- **每月只保持一个文档**:每个自然月对应一个飞书文档(如「2026年3月 (突破执行)」)。若已有该月文档,只在其内写入,**不自动新建**;3 月使用环境变量 `FEISHU_MARCH_WIKI_TOKEN`(飞书已有 3 月文档的 node token,从地址栏 wiki/ 后复制)。
|
||||
- **每月只保持一个文档**:每个自然月对应一个飞书文档(如「2026年3月 (突破执行)」)。若已有该月文档,只在其内写入,**不自动新建**;3 月 token 优先:环境变量 `FEISHU_MARCH_WIKI_TOKEN` 或**命令行写入**(见下「Token 命令行」)。
|
||||
- **3月1日专用**:`脚本/write_0301_feishu_log.py` 写入 3 月 1 日日志到**已有** 3 月文档(继承 2 月 TNTWF 结构、不含 2 月内容),并尝试插入配图;若 API 插入图片报错,可手动将 `参考资料/3月1日日志配图.png` 拖入飞书文档。
|
||||
|
||||
### 2.1) 目标与百分比(强制)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"access_token": "u-e0Q048i_V21aHlAonl9XqBlh1CbxghWhogGaEM0022hU",
|
||||
"refresh_token": "ur-eUOgqdPXh51GxtdCdEqCmAlh1691ghqhWgGaEQg026hF",
|
||||
"access_token": "u-fW5F.d7ah1XElD2g9EqLu2lh3cb1ghojW0GaVA4027gZ",
|
||||
"refresh_token": "ur-cXUl0kWhx8wUAclQajYocYlh14HxghgrUMGaIx40271V",
|
||||
"name": "飞书用户",
|
||||
"auth_time": "2026-03-05T05:29:45.873907"
|
||||
"auth_time": "2026-03-05T16:59:09.519704"
|
||||
}
|
||||
@@ -1,10 +1,10 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
飞书 Token 命令行:获取 access_token、写入/读取月度 wiki token,全部用命令行操作。
|
||||
飞书 Token 命令行:获取 access_token、写入/读取当月 wiki token,全部用命令行操作。
|
||||
用法:
|
||||
python3 feishu_token_cli.py get-access-token # 刷新并输出 access_token,写入 .feishu_tokens.json
|
||||
python3 feishu_token_cli.py set-march-token <token> # 将 3 月文档 token 写入本地,供 auto_log 读取
|
||||
python3 feishu_token_cli.py get-march-token # 输出当前 3 月 wiki token(env 或本地文件)
|
||||
python3 feishu_token_cli.py get-access-token # 刷新并获取 access_token(静默写入 .feishu_tokens.json)
|
||||
python3 feishu_token_cli.py set-march-token <token> # 将 3 月文档 token 写入本地,供写入日志使用
|
||||
python3 feishu_token_cli.py get-march-token # 输出当前 3 月 wiki token(环境变量 > 本地文件)
|
||||
"""
|
||||
import os
|
||||
import sys
|
||||
@@ -18,7 +18,7 @@ MONTH_TOKENS_FILE = SCRIPT_DIR / ".feishu_month_wiki_tokens.json"
|
||||
def _load_month_tokens():
|
||||
if MONTH_TOKENS_FILE.exists():
|
||||
try:
|
||||
with open(MONTH_TOKENS_FILE, "r", encoding="utf-8") as f:
|
||||
with open(MONTH_TOKENS_FILE, encoding="utf-8") as f:
|
||||
return json.load(f)
|
||||
except Exception:
|
||||
pass
|
||||
@@ -31,52 +31,59 @@ def _save_month_tokens(data):
|
||||
|
||||
|
||||
def cmd_get_access_token():
|
||||
"""刷新并获取 access_token,写入 .feishu_tokens.json,并输出结果"""
|
||||
sys.path.insert(0, str(SCRIPT_DIR))
|
||||
from auto_log import get_token_silent, load_tokens
|
||||
from auto_log import get_token_silent
|
||||
token = get_token_silent()
|
||||
if token:
|
||||
print(token)
|
||||
print("OK")
|
||||
print(token[:20] + "..." if len(token) > 20 else token)
|
||||
return 0
|
||||
print("", file=sys.stderr)
|
||||
print("FAIL")
|
||||
return 1
|
||||
|
||||
|
||||
def cmd_set_march_token(token_value):
|
||||
token_value = (token_value or "").strip()
|
||||
if not token_value:
|
||||
print("用法: feishu_token_cli.py set-march-token <token>", file=sys.stderr)
|
||||
def cmd_set_march_token(token: str):
|
||||
"""将 3 月 wiki token 写入 .feishu_month_wiki_tokens.json"""
|
||||
token = (token or "").strip()
|
||||
if not token:
|
||||
print("FAIL: token 为空")
|
||||
return 1
|
||||
data = _load_month_tokens()
|
||||
data["3"] = token_value
|
||||
data["3"] = token
|
||||
_save_month_tokens(data)
|
||||
print(f"✅ 3 月 wiki token 已写入 {MONTH_TOKENS_FILE}")
|
||||
print("OK")
|
||||
print("已写入 3 月 wiki token,写今日日志将自动使用")
|
||||
return 0
|
||||
|
||||
|
||||
def cmd_get_march_token():
|
||||
# 优先环境变量
|
||||
env_tok = os.environ.get("FEISHU_MARCH_WIKI_TOKEN", "").strip()
|
||||
if env_tok:
|
||||
print(env_tok)
|
||||
"""输出当前 3 月 wiki token(环境变量 > 本地文件)"""
|
||||
v = os.environ.get("FEISHU_MARCH_WIKI_TOKEN", "").strip()
|
||||
if v:
|
||||
print(v)
|
||||
return 0
|
||||
data = _load_month_tokens()
|
||||
tok = data.get("3", "").strip()
|
||||
if tok:
|
||||
print(tok)
|
||||
v = (data.get("3") or "").strip()
|
||||
if v:
|
||||
print(v)
|
||||
return 0
|
||||
print("", file=sys.stderr)
|
||||
print("未配置 3 月 token(可用 set-march-token <token> 写入)", file=sys.stderr)
|
||||
return 1
|
||||
|
||||
|
||||
def main():
|
||||
if len(sys.argv) < 2:
|
||||
print(__doc__.strip(), file=sys.stderr)
|
||||
print("用法: get-access-token | set-march-token <token> | get-march-token", file=sys.stderr)
|
||||
return 1
|
||||
cmd = sys.argv[1].lower()
|
||||
cmd = sys.argv[1].strip().lower()
|
||||
if cmd == "get-access-token":
|
||||
return cmd_get_access_token()
|
||||
if cmd == "set-march-token":
|
||||
return cmd_set_march_token(sys.argv[2] if len(sys.argv) > 2 else None)
|
||||
if len(sys.argv) < 3:
|
||||
print("用法: set-march-token <token>", file=sys.stderr)
|
||||
return 1
|
||||
return cmd_set_march_token(sys.argv[2])
|
||||
if cmd == "get-march-token":
|
||||
return cmd_get_march_token()
|
||||
print(f"未知命令: {cmd}", file=sys.stderr)
|
||||
|
||||
@@ -1,17 +1,105 @@
|
||||
---
|
||||
name: Soul派对运营报表
|
||||
description: Soul 派对运营数据全自动写入飞书表格(按月份选 2月/3月 标签)→ 会议纪要图片入表 → 发飞书群(数据+纪要图);与智能纪要联动,一站式可执行。含 Token 自动刷新、写入校验、小程序数据。
|
||||
description: Soul 派对运营数据全自动写入飞书表格(按月份选 2月/3月 标签)→ 会议纪要图片入表 → 发飞书群(数据+纪要图);与智能纪要联动,一站式可执行。含 Token 自动刷新、写入校验、小程序数据、派对录屏链接。完整流程可复制执行,支持基因胶囊打包。
|
||||
triggers: 运营报表、派对填表、派对截图填表发群、会议纪要上传、本月运营数据、全部月份统计、派对纪要、智能纪要、106场、107场、113场、114场、115场
|
||||
parent: 飞书管理
|
||||
owner: 水桥
|
||||
group: 水
|
||||
version: "2.3"
|
||||
version: "3.0"
|
||||
updated: "2026-03-04"
|
||||
---
|
||||
|
||||
# Soul 派对运营报表 · 基因胶囊
|
||||
|
||||
> **一句话**:派对截图 + TXT → 飞书运营报表(按月份选表)→ 填数据 + 填纪要图 + 发群(文字 + 图片),与**会议纪要**联动,一站式可执行。
|
||||
> **一句话**:派对截图 + TXT → 飞书运营报表(按月份选表)→ 填数据 + 填纪要图 + 派对录屏链接 + 发群(文字 + 图片),与**会议纪要**联动,完整流程可复制执行,可打包为基因胶囊。
|
||||
|
||||
---
|
||||
|
||||
## 零、完整流程提取(可复制执行)
|
||||
|
||||
以下为从「派对结束」到「报表+群消息+纪要图」全链路的**逐步清单**与**一键命令**,便于 AI 或人工按序执行。
|
||||
|
||||
### 0.1 流程图
|
||||
|
||||
```mermaid
|
||||
flowchart LR
|
||||
subgraph 输入
|
||||
A1[关闭页截图] --> A2[小助手弹窗]
|
||||
A2 --> A3[派对 TXT]
|
||||
A3 --> A4[飞书妙记链接]
|
||||
end
|
||||
subgraph 步骤
|
||||
B1[1. 注册场次+填数据] --> B2[2. 发群文字]
|
||||
B2 --> B3[3. 生成纪要图]
|
||||
B3 --> B4[4. 纪要图入表]
|
||||
B4 --> B5[5. 纪要图发群]
|
||||
end
|
||||
subgraph 输出
|
||||
C1[飞书运营报表]
|
||||
C2[飞书群消息]
|
||||
end
|
||||
A1 --> B1
|
||||
B1 --> C1
|
||||
B2 --> C2
|
||||
B4 --> C1
|
||||
B5 --> C2
|
||||
```
|
||||
|
||||
### 0.2 前置条件
|
||||
|
||||
| 项 | 说明 |
|
||||
|:---|:---|
|
||||
| Python 3 + requests | `pip3 install requests` |
|
||||
| 飞书 Token | 脚本目录下 `.feishu_tokens.json`,过期时运行 `python3 auto_log.py` |
|
||||
| 场次已注册 | 在 `soul_party_to_feishu_sheet.py` 中已添加 ROWS、SESSION_DATE_COLUMN、SESSION_MONTH、PARTY_VIDEO_LINKS(可选)、MINIPROGRAM_EXTRA / MINIPROGRAM_EXTRA_3(可选) |
|
||||
| 派对 TXT | 如 `soul 派对 115场 20260304.txt`,用于纪要文本/纪要图 |
|
||||
|
||||
### 0.3 逐步命令(以 115 场为例)
|
||||
|
||||
| 步 | 动作 | 输入 | 命令 | 输出/校验 |
|
||||
|:---|:---|:---|:---|:---|
|
||||
| 1 | 填效果数据+小程序+派对录屏+发群 | 场次号 115 | `cd 飞书管理/脚本 && python3 soul_party_to_feishu_sheet.py 115` | 控制台见「已写入」「已同步推送到飞书群」「已写入派对录屏链接」 |
|
||||
| 2 | 纪要文本入表(可选) | TXT 路径、日期列 4 | `python3 write_party_minutes_from_txt.py "/path/to/soul 派对 115场 20260304.txt" 4` | 控制台见「已写入派对智能纪要到今日总结」 |
|
||||
| 3 | 生成纪要图 | 见智能纪要 Skill | JSON→HTML→截图,输出到 `卡若Ai的文件夹/报告/soul_115场_智能纪要_20260304.png` | 得到 PNG 文件 |
|
||||
| 4 | 纪要图入表 | PNG 路径、sheet-id、date-col | `python3 feishu_write_minutes_to_sheet.py --party-image "卡若Ai的文件夹/报告/soul_115场_智能纪要_20260304.png" --sheet-id bJR5sA --date-col 4` | 控制台见「已上传派对智能纪要图片」 |
|
||||
| 5 | 纪要图发群 | PNG 路径 | `cd 智能纪要/脚本 && python3 send_to_feishu.py --image "卡若Ai的文件夹/报告/soul_115场_智能纪要_20260304.png"` | 飞书群收到长图 |
|
||||
|
||||
**路径约定**:飞书管理脚本目录 = `02_卡人(水)/水桥_平台对接/飞书管理/脚本/`;智能纪要脚本 = `02_卡人(水)/水桥_平台对接/智能纪要/脚本/`;报告输出 = `卡若Ai的文件夹/报告/`。
|
||||
|
||||
### 0.4 一键顺序命令块(复制即用)
|
||||
|
||||
```bash
|
||||
# 假设已配置 115 场且 TXT 与报告路径如下,按顺序执行
|
||||
FEISHU_SCRIPT="/Users/karuo/Documents/个人/卡若AI/02_卡人(水)/水桥_平台对接/飞书管理/脚本"
|
||||
JIYAO_SCRIPT="/Users/karuo/Documents/个人/卡若AI/02_卡人(水)/水桥_平台对接/智能纪要/脚本"
|
||||
REPORT="/Users/karuo/Documents/卡若Ai的文件夹/报告"
|
||||
TXT="/Users/karuo/Documents/聊天记录/soul/soul 派对 115场 20260304.txt"
|
||||
|
||||
cd "$FEISHU_SCRIPT"
|
||||
python3 auto_log.py
|
||||
python3 soul_party_to_feishu_sheet.py 115
|
||||
python3 write_party_minutes_from_txt.py "$TXT" 4
|
||||
|
||||
# 纪要图需先按智能纪要 Skill 生成 HTML 再截图得到 PNG,再执行:
|
||||
# python3 feishu_write_minutes_to_sheet.py --party-image "$REPORT/soul_115场_智能纪要_20260304.png" --sheet-id bJR5sA --date-col 4
|
||||
# cd "$JIYAO_SCRIPT" && python3 send_to_feishu.py --image "$REPORT/soul_115场_智能纪要_20260304.png"
|
||||
```
|
||||
|
||||
### 0.5 新场次从零到完成清单
|
||||
|
||||
1. **在 `soul_party_to_feishu_sheet.py` 中**:添加 `ROWS['116']`、`SESSION_DATE_COLUMN['116']`、`SESSION_MONTH['116']`,以及在 `_maybe_send_group` 的 `date_label`、`src_date` 中加 `'116'`;若需派对录屏则填 `PARTY_VIDEO_LINKS['116']`;若需小程序则填 `MINIPROGRAM_EXTRA_3['5']`(3 月 5 日)。
|
||||
2. **执行填表**:`python3 soul_party_to_feishu_sheet.py 116`。
|
||||
3. **可选**:纪要文本 `write_party_minutes_from_txt.py "<txt>" 5`;纪要图按智能纪要生成后 `feishu_write_minutes_to_sheet.py --party-image <png> --sheet-id bJR5sA --date-col 5`,再 `send_to_feishu.py --image <png>`。
|
||||
|
||||
### 0.6 故障排查速查
|
||||
|
||||
| 现象 | 处理 |
|
||||
|:---|:---|
|
||||
| 未找到日期列 | 先 `python3 auto_log.py` 再重试;确认 SESSION_DATE_COLUMN、SESSION_MONTH 与表头一致 |
|
||||
| 90202 wrong range | 单格写入时 range 写成 `E29:E29` 形式 |
|
||||
| 派对录屏未写入 | 检查 PARTY_VIDEO_LINKS 是否非空且格式为完整 URL |
|
||||
| 小程序数据未写入 | 3 月用 MINIPROGRAM_EXTRA_3,键为当月「日期号」如 '4' |
|
||||
| 飞书群未收到 | 检查 Webhook、机器人是否启用 |
|
||||
|
||||
---
|
||||
|
||||
@@ -407,6 +495,21 @@ SESSION_MONTH = {..., '116': 3}
|
||||
|
||||
---
|
||||
|
||||
## 十一、基因胶囊打包入口
|
||||
|
||||
本 Skill 支持打包为基因胶囊,便于继承与分发。打包后产出位于 `卡若Ai的文件夹/导出/基因胶囊/`。
|
||||
|
||||
```bash
|
||||
cd /Users/karuo/Documents/个人/卡若AI
|
||||
python3 "05_卡土(土)/土砖_技能复制/基因胶囊/脚本/gene_capsule.py" pack "02_卡人(水)/水桥_平台对接/飞书管理/运营报表_SKILL.md"
|
||||
# 或按技能名(在 SKILL_REGISTRY 中匹配)
|
||||
python3 "05_卡土(土)/土砖_技能复制/基因胶囊/脚本/gene_capsule.py" pack "Soul派对运营报表"
|
||||
```
|
||||
|
||||
打包后将生成:胶囊 JSON、基因胶囊功能流程图.md、说明文档.md(含解包命令与引用)。
|
||||
|
||||
---
|
||||
|
||||
## 版本记录
|
||||
|
||||
| 版本 | 日期 | 说明 |
|
||||
@@ -416,3 +519,4 @@ SESSION_MONTH = {..., '116': 3}
|
||||
| 2.1 | 2026-03-04 | 月份路由:2月/3月 工作表分离(7A3Cy9 / bJR5sA),SESSION_MONTH 防串月;支持 113~115 场;小程序批量 write_miniprogram_batch;运营报表 SKILL 与当前流程同步 |
|
||||
| 2.2 | 2026-03-04 | **智能纪要上传到报表**:§3.2 十步清单(txt→JSON→HTML→PNG→feishu_write_minutes_to_sheet);与智能纪要 Skill 联动;3 月用 --party-image --sheet-id bJR5sA --date-col |
|
||||
| 2.3 | 2026-03-04 | **会议纪要 + 运营报表 + 发群一站式**:文首新增「一站式完整流程」四步(①填数据发群 ②生成纪要图 ③填图片到报表 ④纪要图发群);飞书群统一:数据推送与纪要图发群同 Webhook,纪要图发群用智能纪要 `send_to_feishu.py --image`;§3.2 增加「发群」步骤与说明 |
|
||||
| 3.0 | 2026-03-04 | **完整流程提取 + 基因胶囊**:新增「零、完整流程提取」:流程图、前置条件、逐步命令表、一键命令块、新场次清单、故障排查;派对录屏链接写入(E29:E29 范围);§十一 基因胶囊打包入口与 pack 命令 |
|
||||
|
||||
@@ -232,3 +232,4 @@
|
||||
| 2026-03-05 05:45:06 | 🔄 卡若AI 同步 2026-03-05 05:45 | 更新:水桥平台对接、运营中枢工作台 | 排除 >20MB: 11 个 |
|
||||
| 2026-03-05 05:46:16 | 🔄 卡若AI 同步 2026-03-05 05:46 | 更新:运营中枢参考资料、运营中枢工作台 | 排除 >20MB: 11 个 |
|
||||
| 2026-03-05 05:47:24 | 🔄 卡若AI 同步 2026-03-05 05:47 | 更新:Cursor规则、水桥平台对接、运营中枢工作台 | 排除 >20MB: 11 个 |
|
||||
| 2026-03-05 05:50:30 | 🔄 卡若AI 同步 2026-03-05 05:50 | 更新:总索引与入口、水桥平台对接、运营中枢工作台 | 排除 >20MB: 11 个 |
|
||||
|
||||
@@ -235,3 +235,4 @@
|
||||
| 2026-03-05 05:45:06 | 成功 | 成功 | 🔄 卡若AI 同步 2026-03-05 05:45 | 更新:水桥平台对接、运营中枢工作台 | 排除 >20MB: 11 个 | [仓库](http://open.quwanzhi.com:3000/fnvtk/karuo-ai) [百科](http://open.quwanzhi.com:3000/fnvtk/karuo-ai/wiki) |
|
||||
| 2026-03-05 05:46:16 | 成功 | 成功 | 🔄 卡若AI 同步 2026-03-05 05:46 | 更新:运营中枢参考资料、运营中枢工作台 | 排除 >20MB: 11 个 | [仓库](http://open.quwanzhi.com:3000/fnvtk/karuo-ai) [百科](http://open.quwanzhi.com:3000/fnvtk/karuo-ai/wiki) |
|
||||
| 2026-03-05 05:47:24 | 成功 | 成功 | 🔄 卡若AI 同步 2026-03-05 05:47 | 更新:Cursor规则、水桥平台对接、运营中枢工作台 | 排除 >20MB: 11 个 | [仓库](http://open.quwanzhi.com:3000/fnvtk/karuo-ai) [百科](http://open.quwanzhi.com:3000/fnvtk/karuo-ai/wiki) |
|
||||
| 2026-03-05 05:50:30 | 成功 | 成功 | 🔄 卡若AI 同步 2026-03-05 05:50 | 更新:总索引与入口、水桥平台对接、运营中枢工作台 | 排除 >20MB: 11 个 | [仓库](http://open.quwanzhi.com:3000/fnvtk/karuo-ai) [百科](http://open.quwanzhi.com:3000/fnvtk/karuo-ai/wiki) |
|
||||
|
||||
Reference in New Issue
Block a user