🔄 卡若AI 同步 2026-03-03 10:20 | 更新:水桥平台对接、运营中枢工作台 | 排除 >20MB: 14 个
This commit is contained in:
6
02_卡人(水)/水桥_平台对接/飞书管理/脚本/.feishu_tokens.json
Normal file
6
02_卡人(水)/水桥_平台对接/飞书管理/脚本/.feishu_tokens.json
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"access_token": "u-dTB8Oq8l5cwFnz.Mm7oowQlh3cbxghihiMGaJQg027gZ",
|
||||
"refresh_token": "ur-eYivb2AhNfRozQiZ3WhpoGlh14b1ghoXPgGaUA0022hV",
|
||||
"name": "飞书用户",
|
||||
"auth_time": "2026-03-03T10:19:28.119191"
|
||||
}
|
||||
@@ -239,6 +239,24 @@ def token_status():
|
||||
'auth_time': USER_TOKENS.get('auth_time', '')
|
||||
})
|
||||
|
||||
|
||||
@app.route('/api/token/sync', methods=['POST', 'GET'])
|
||||
def token_sync():
|
||||
"""将当前内存中的 Token 写入 .feishu_tokens.json,供 feishu_wiki_create_doc 等脚本使用"""
|
||||
if not USER_TOKENS.get('access_token') and not USER_TOKENS.get('refresh_token'):
|
||||
return jsonify({'status': 'fail', 'msg': '无可用 Token,请先完成授权'}), 400
|
||||
save_tokens()
|
||||
return jsonify({'status': 'ok', 'msg': '已同步到 .feishu_tokens.json'})
|
||||
|
||||
|
||||
@app.route('/api/token/export')
|
||||
def token_export():
|
||||
"""供本地脚本使用:导出当前 Token 到同一目录 .feishu_tokens.json(仅 localhost)"""
|
||||
if not USER_TOKENS.get('access_token') and not USER_TOKENS.get('refresh_token'):
|
||||
return jsonify({'status': 'fail', 'msg': '无可用 Token'}), 404
|
||||
save_tokens()
|
||||
return jsonify({k: v for k, v in USER_TOKENS.items() if k in ('access_token', 'refresh_token', 'name', 'auth_time')})
|
||||
|
||||
# ============== 云盘 ==============
|
||||
|
||||
@app.route('/api/drive/files')
|
||||
|
||||
@@ -77,8 +77,26 @@ def check_token_valid(token, parent_token):
|
||||
return False
|
||||
|
||||
|
||||
def _fetch_token_from_local_api():
|
||||
"""当本地无 Token 文件时,尝试从已运行的 feishu_api (localhost:5050) 拉取并落盘"""
|
||||
try:
|
||||
r = requests.get("http://127.0.0.1:5050/api/token/export", timeout=2)
|
||||
if r.status_code != 200:
|
||||
return {}
|
||||
data = r.json()
|
||||
if not data.get("access_token") and not data.get("refresh_token"):
|
||||
return {}
|
||||
with open(CONFIG['TOKEN_FILE'], 'w', encoding='utf-8') as f:
|
||||
json.dump(data, f, ensure_ascii=False, indent=2)
|
||||
return data
|
||||
except Exception:
|
||||
return {}
|
||||
|
||||
|
||||
def get_token(parent_token):
|
||||
tokens = load_tokens()
|
||||
if not tokens and os.path.exists(CONFIG['TOKEN_FILE']) is False:
|
||||
tokens = _fetch_token_from_local_api()
|
||||
if tokens.get('access_token') and check_token_valid(tokens['access_token'], parent_token):
|
||||
return tokens['access_token']
|
||||
print("🔄 静默刷新 Token...")
|
||||
|
||||
56
02_卡人(水)/水桥_平台对接/飞书管理/脚本/读书笔记_上传到飞书.sh
Executable file
56
02_卡人(水)/水桥_平台对接/飞书管理/脚本/读书笔记_上传到飞书.sh
Executable file
@@ -0,0 +1,56 @@
|
||||
#!/bin/bash
|
||||
# 读书笔记上传到飞书:无 Token 时打开授权页,等待落盘后自动执行 5 篇上传
|
||||
# 用法: bash 读书笔记_上传到飞书.sh
|
||||
|
||||
set -e
|
||||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
cd "$SCRIPT_DIR"
|
||||
TOKEN_FILE="$SCRIPT_DIR/.feishu_tokens.json"
|
||||
NOTE_DIR="/Users/karuo/Documents/个人/2、我写的日记/读书笔记"
|
||||
JSON_DIR="/Users/karuo/Documents/卡若Ai的文件夹/导出/读书笔记_feishu_json"
|
||||
PARENT="KNf7wA8Rki1NSdkkSIqcdFtTnWb"
|
||||
PUBLISH="python3 $SCRIPT_DIR/feishu_article_unified_publish.py"
|
||||
|
||||
# 若本地无 token,尝试从本地 API 拉取
|
||||
if [ ! -f "$TOKEN_FILE" ]; then
|
||||
echo "📡 本地无 Token,尝试从 127.0.0.1:5050 拉取..."
|
||||
PAYLOAD=$(curl -s -m 3 "http://127.0.0.1:5050/api/token/export" 2>/dev/null || true)
|
||||
if echo "$PAYLOAD" | grep -q '"access_token"'; then
|
||||
echo "$PAYLOAD" > "$TOKEN_FILE"
|
||||
echo "✅ 已从本地 API 同步 Token 到 $TOKEN_FILE"
|
||||
else
|
||||
echo "⚠️ 需要先完成飞书授权。正在打开授权页..."
|
||||
AUTH_URL=$(curl -s -m 3 "http://127.0.0.1:5050/api/auth/url" 2>/dev/null | python3 -c "import sys,json; print(json.load(sys.stdin).get('auth_url',''))")
|
||||
if [ -n "$AUTH_URL" ]; then
|
||||
open "$AUTH_URL"
|
||||
echo "请在浏览器中完成授权,授权成功后本脚本将自动继续(等待最多 90 秒)..."
|
||||
else
|
||||
echo "请先启动飞书 API 服务: cd $SCRIPT_DIR && python3 feishu_api.py &"
|
||||
echo "然后运行: python3 auto_log.py"
|
||||
exit 1
|
||||
fi
|
||||
for i in $(seq 1 90); do
|
||||
sleep 1
|
||||
if [ -f "$TOKEN_FILE" ]; then
|
||||
echo "✅ Token 已落盘,继续上传"
|
||||
break
|
||||
fi
|
||||
if [ "$i" -eq 90 ]; then
|
||||
echo "❌ 等待超时,未检测到 Token 文件。请完成授权后重新运行本脚本。"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
fi
|
||||
fi
|
||||
|
||||
mkdir -p "$JSON_DIR"
|
||||
|
||||
echo "📤 开始上传 5 篇读书笔记到飞书节点 $PARENT ..."
|
||||
|
||||
$PUBLISH --parent "$PARENT" --title "卡若读书笔记:Dan Koe 如何在一天内彻底改造你的人生" --md "$NOTE_DIR/Dan_Koe_如何在一天内彻底改造你的人生_读书笔记.md" --json "$JSON_DIR/Dan_Koe.json" && echo " ✅ Dan Koe"
|
||||
$PUBLISH --parent "$PARENT" --title "卡若读书笔记:纳瓦尔访谈|五行结构化" --md "$NOTE_DIR/纳瓦尔访谈_读书笔记.md" --json "$JSON_DIR/纳瓦尔.json" && echo " ✅ 纳瓦尔"
|
||||
$PUBLISH --parent "$PARENT" --title "卡若读书笔记:曾仕强《易经》" --md "$NOTE_DIR/曾仕强_易经_读书笔记.md" --json "$JSON_DIR/曾仕强易经.json" && echo " ✅ 曾仕强易经"
|
||||
$PUBLISH --parent "$PARENT" --title "卡若读书笔记:5000天后的世界 - 凯文凯利" --md "$NOTE_DIR/卡若读书笔记:5000天后的世界 - 凯文凯利.md" --json "$JSON_DIR/凯文凯利.json" && echo " ✅ 凯文凯利"
|
||||
$PUBLISH --parent "$PARENT" --title "卡若读书笔记:盐铁之辩与AI之道" --md "$NOTE_DIR/卡若读书笔记:盐铁之辩与AI之道.md" --json "$JSON_DIR/盐铁之辩.json" && echo " ✅ 盐铁之辩"
|
||||
|
||||
echo "📌 全部上传完成。飞书节点: https://cunkebao.feishu.cn/wiki/$PARENT"
|
||||
@@ -213,3 +213,4 @@
|
||||
| 2026-03-03 04:51:53 | 🔄 卡若AI 同步 2026-03-03 04:51 | 更新:金盾、运营中枢工作台 | 排除 >20MB: 14 个 |
|
||||
| 2026-03-03 04:58:10 | 🔄 卡若AI 同步 2026-03-03 04:58 | 更新:Cursor规则、总索引与入口、运营中枢工作台 | 排除 >20MB: 14 个 |
|
||||
| 2026-03-03 05:02:46 | 🔄 卡若AI 同步 2026-03-03 05:02 | 更新:水桥平台对接、运营中枢工作台 | 排除 >20MB: 14 个 |
|
||||
| 2026-03-03 10:15:48 | 🔄 卡若AI 同步 2026-03-03 10:15 | 更新:水桥平台对接、卡木、火炬、运营中枢参考资料、运营中枢工作台 | 排除 >20MB: 14 个 |
|
||||
|
||||
@@ -216,3 +216,4 @@
|
||||
| 2026-03-03 04:51:53 | 成功 | 成功 | 🔄 卡若AI 同步 2026-03-03 04:51 | 更新:金盾、运营中枢工作台 | 排除 >20MB: 14 个 | [仓库](http://open.quwanzhi.com:3000/fnvtk/karuo-ai) [百科](http://open.quwanzhi.com:3000/fnvtk/karuo-ai/wiki) |
|
||||
| 2026-03-03 04:58:10 | 成功 | 成功 | 🔄 卡若AI 同步 2026-03-03 04:58 | 更新:Cursor规则、总索引与入口、运营中枢工作台 | 排除 >20MB: 14 个 | [仓库](http://open.quwanzhi.com:3000/fnvtk/karuo-ai) [百科](http://open.quwanzhi.com:3000/fnvtk/karuo-ai/wiki) |
|
||||
| 2026-03-03 05:02:46 | 成功 | 成功 | 🔄 卡若AI 同步 2026-03-03 05:02 | 更新:水桥平台对接、运营中枢工作台 | 排除 >20MB: 14 个 | [仓库](http://open.quwanzhi.com:3000/fnvtk/karuo-ai) [百科](http://open.quwanzhi.com:3000/fnvtk/karuo-ai/wiki) |
|
||||
| 2026-03-03 10:15:48 | 成功 | 成功 | 🔄 卡若AI 同步 2026-03-03 10:15 | 更新:水桥平台对接、卡木、火炬、运营中枢参考资料、运营中枢工作台 | 排除 >20MB: 14 个 | [仓库](http://open.quwanzhi.com:3000/fnvtk/karuo-ai) [百科](http://open.quwanzhi.com:3000/fnvtk/karuo-ai/wiki) |
|
||||
|
||||
Reference in New Issue
Block a user