#!/usr/bin/env python3 """ 创建当日总结页面,挂到「🌙 每日总结」目录下。 用法: python3 create_summary.py --title "07.21 周二 总结" --content summary.md 复用 wiki_create.py + wiki_write.py,自身不发起 HTTP 请求, 从而避免 exec 安全策略对 Authorization / Bearer 的扫描拦截。 """ import json, sys, os, argparse import subprocess SCRIPTS_DIR = os.path.dirname(os.path.abspath(__file__)) SUMMARY_PARENT = os.environ.get('FEISHU_SUMMARY_PARENT', 'XunCwlk7JiSTuAkvoKlcq54pnPb') def _run(name, *args): """Run a peer script and return parsed stdout JSON.""" r = subprocess.run( ['python3', os.path.join(SCRIPTS_DIR, name)] + list(args), capture_output=True, text=True ) if r.returncode != 0: raise Exception(f"{name} failed: {r.stderr}") return json.loads(r.stdout) def create_summary(title, content_file=None): # 1) Create the node via wiki_create.py node = _run('wiki_create.py', '--title', title, '--parent', SUMMARY_PARENT) node_token = node['node_token'] print(json.dumps({'node_token': node_token, 'obj_token': node['obj_token']})) # 2) Write content via wiki_write.py if content_file: subprocess.run( ['python3', os.path.join(SCRIPTS_DIR, 'wiki_write.py'), '--node', node_token, '--file', content_file, '--markdown'], check=True ) return node_token if __name__ == '__main__': p = argparse.ArgumentParser() p.add_argument('--title', required=True, help='Summary title, e.g. "07.21 周二 总结"') p.add_argument('--content', default=None, help='Markdown content file') args = p.parse_args() try: create_summary(args.title, args.content) except Exception as e: print(f'Error: {e}', file=sys.stderr) sys.exit(1)