每日备份 2026-06-10 12:57:13

This commit is contained in:
root-backup committed 2026-06-10 12:57:14 +08:00
1 parent fda2ccb8c2
commit 3d2e638c6a
244 files changed
+58890 -3

No files matched your search

@@ -0,0 +1,148 @@
#!/bin/bash
# ============================================================================
# 平安书反思生成模块 v1.0.5 (Python修复版)
# ============================================================================
NOVEL_DIR="/root/.openclaw/workspace/平安书"
REFLECTION_DIR="$NOVEL_DIR/反思记录"
TIMESTAMP=$(date '+%Y-%m-%d %H:%M')
mkdir -p "$REFLECTION_DIR"
echo "╔════════════════════════════════════════════════════╗"
echo "║ 平安书反思生成模块 v1.0.5 ║"
echo "╚════════════════════════════════════════════════════╝"
echo ""
# 检测最新章节
latest=$(ls -t "$NOVEL_DIR"/第*章*.txt 2>/dev/null | head -1)
if [ -z "$latest" ]; then
echo "ℹ️ 未发现章节文件"
exit 0
fi
chapter_name=$(basename "$latest" .txt)
reflection_file="$REFLECTION_DIR/${chapter_name}-反思.md"
if [ -f "$reflection_file" ]; then
echo "⚠️ 已有反思记录: $chapter_name"
exit 0
fi
echo "📖 章节: ${chapter_name}.txt"
echo ""
# Python统计分析
stats=$(python3 -c "
import sys
import re
with open('$latest', 'r', encoding='utf-8') as f:
content = f.read()
# 字数
char_count = sum(1 for c in content if '\u4e00' <= c <= '\u9fff')
# 内心独白
inner = len(re.findall(r'想道|心中|暗自|默念|忖道', content))
# 动作描写
action = len(re.findall(r'身形|身形一|伸手|抬手|迈步|纵身|疾驰|飞奔', content))
# 对话 (引号数量/2)
dialogue = content.count('「') + content.count('”')
dialogue = dialogue // 2
# 环境描写
env = len(re.findall(r'天空|山林|月光|风声|树叶|流水', content))
# 评分
inner_score = 25 if inner >= 3 else inner * 8
action_score = 25 if action >= 3 else action * 8
dialogue_score = 25 if dialogue >= 4 else dialogue * 6
env_score = 25 if env >= 5 else env * 5
total = inner_score + action_score + dialogue_score + env_score
print(f'{char_count}|{inner}|{action}|{dialogue}|{env}|{inner_score}|{action_score}|{dialogue_score}|{env_score}|{total}')
" 2>/dev/null)
if [ -z "$stats" ]; then
echo "❌ 统计分析失败"
exit 1
fi
IFS='|' read -r char_count inner action dialogue env inner_score action_score dialogue_score env_score total <<< "$stats"
echo " 📊 字数: $char_count 字"
echo " 💭 内心独白: $inner 处"
echo " ⚡ 动作描写: $action 处"
echo " 💬 对话: $dialogue 段"
echo " 🌲 环境描写: $env 处"
echo ""
echo "📊 牧神记风格评分: $total/100"
# 评估
if [ "$char_count" -ge 5000 ] && [ "$char_count" -le 8000 ] && [ "$inner" -ge 3 ] && [ "$action" -ge 3 ] && [ "$dialogue" -ge 4 ] && [ "$env" -ge 5 ]; then
eval_status="✅ **章节评估: 合格**"
eval_detail="本章达到牧神记风格标准,可进入发表流程。"
issues=""
else
eval_status="⚠️ **章节评估: 需要改进**"
eval_detail="未达标项:"
issues=1
fi
[ "$inner" -lt 3 ] && eval_detail="${eval_detail}\n- 内心独白不足 ($inner/3)"
[ "$action" -lt 3 ] && eval_detail="${eval_detail}\n- 动作描写不足 ($action/3)"
[ "$dialogue" -lt 4 ] && eval_detail="${eval_detail}\n- 对话不足 ($dialogue/4)"
[ "$env" -lt 5 ] && eval_detail="${eval_detail}\n- 环境描写不足 ($env/5)"
[ "$char_count" -lt 5000 ] && eval_detail="${eval_detail}\n- 字数不足 ($char_count/5000)"
[ "$char_count" -gt 8000 ] && eval_detail="${eval_detail}\n- 字数超标 ($char_count/8000)"
# 生成报告
cat > "$reflection_file" << EOF
# ${chapter_name} - 反思报告
**时间**: $TIMESTAMP
**章节**: ${chapter_name}.txt
## 基本信息
| 项目 | 数值 |
|------|------|
| 字数 | $char_count 字 |
| 内心独白 | $inner 处 |
| 动作描写 | $action 处 |
| 对话 | $dialogue 段 |
| 环境描写 | $env 处 |
## 评分
| 维度 | 得分 | 说明 |
|------|------|------|
| 内心独白 | $inner_score/25 | $([ "$inner" -ge 3 ] && echo "✅" || echo "⚠️") |
| 动作描写 | $action_score/25 | $([ "$action" -ge 3 ] && echo "✅" || echo "⚠️") |
| 对话 | $dialogue_score/25 | $([ "$dialogue" -ge 4 ] && echo "✅" || echo "⚠️") |
| 环境描写 | $env_score/25 | $([ "$env" -ge 5 ] && echo "✅" || echo "⚠️") |
**总分**: $total/100
## 评估
$eval_status
$eval_detail
## 改进建议
- 根据评分针对性优化
- 参考牧神记原文提升描写技巧
---
*自动生成于 $TIMESTAMP*
EOF
echo ""
echo "✅ 反思报告已生成: $(basename "$reflection_file")"
ls -la "$reflection_file"