#!/bin/bash # 备忘录管理 — 存储 .data/memos.json MEMO_FILE=".data/memos.json" mkdir -p "$(dirname "$MEMO_FILE")" [ ! -f "$MEMO_FILE" ] && echo '[]' > "$MEMO_FILE" read -r INPUT export MEMO_INPUT="$INPUT" python3 - "$MEMO_FILE" << 'PYEOF' import sys, json, os, datetime path = sys.argv[1] input_raw = os.environ.get('MEMO_INPUT', '{}') try: req = json.loads(input_raw) except: print('无效的 JSON 输入') sys.exit(1) action = req.get('action', 'list') content = req.get('content', '') memo_id = req.get('id', '') data = json.load(open(path)) if os.path.exists(path) and os.path.getsize(path) > 0 else [] if action == 'add': if not content: print('请提供 content 参数') sys.exit(1) next_id = max([m.get('id', 0) for m in data], default=0) + 1 data.append({'id': next_id, 'content': content, 'created_at': datetime.datetime.now().isoformat()}) json.dump(data, open(path, 'w'), ensure_ascii=False, indent=2) print(f'已添加备忘录 #{next_id}') elif action == 'list': if not data: print('暂无备忘录') else: for m in data: ts = m.get('created_at', '?')[:16] print(f"#{m['id']} [{ts}] {m['content']}") elif action == 'delete': if not memo_id: print('请提供 id 参数') sys.exit(1) new = [m for m in data if str(m.get('id', '')) != str(memo_id)] if len(new) == len(data): print(f'未找到备忘 #{memo_id}') else: json.dump(new, open(path, 'w'), ensure_ascii=False, indent=2) print(f'已删除备忘 #{memo_id}') else: print(f'未知操作: {action}(支持: add, list, delete)') sys.exit(1) PYEOF