每日备份 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,185 @@
#!/bin/bash
# ============================================================================
# 小说进度追踪模块 v1.0
# ============================================================================
# 功能:自动追踪章节发表、字数统计、评分趋势
# ============================================================================
NOVEL_DIR="/root/.openclaw/workspace/平安书"
TRACK_DIR="/root/.openclaw/workspace/平安书/进度追踪"
TIMESTAMP=$(date '+%Y-%m-%d %H:%M')
DATE=$(date '+%Y-%m-%d')
mkdir -p "$TRACK_DIR"
# ============================================================================
# 1. 统计章节发表
# ============================================================================
stats_chapters() {
echo "📊 统计章节发表..."
local total=$(ls -1 "$NOVEL_DIR"/*第*章*.txt 2>/dev/null | wc -l)
local published=$(ls -1 "$NOVEL_DIR"/*第*章*.txt 2>/dev/null | wc -l)
local draft=$(ls -1 "$NOVEL_DIR"/*.txt 2>/dev/null | grep -v "第" | wc -l)
echo " 总章节: $total"
echo " 已发表: $published"
echo " 草稿: $draft"
}
# ============================================================================
# 2. 统计总字数
# ============================================================================
stats_words() {
echo ""
echo "📝 统计总字数..."
local total=0
local count=0
for file in "$NOVEL_DIR"/*.txt; do
if [ -f "$file" ]; then
local chars=$(wc -c < "$file" 2>/dev/null || echo "0")
total=$((total + chars))
count=$((count + 1))
fi
done
echo " 总章节数: $count"
echo " 总字数: $total"
echo " 平均每章: $((total / count))"
}
# ============================================================================
# 3. 分析评分趋势
# ============================================================================
stats_scores() {
echo ""
echo "📈 分析评分趋势..."
local scores=""
local count=0
for file in "$NOVEL_DIR"/*反思.md; do
if [ -f "$file" ]; then
local score=$(grep -oE "[0-9]+\.[0-9]" "$file" | head -1)
if [ -n "$score" ]; then
scores="${scores}${score}\n"
count=$((count + 1))
fi
fi
done
echo " 反思记录: $count"
if [ $count -ge 2 ]; then
local avg=$(echo "$scores" | awk '{sum+=$1; count++} END {if(count>0) printf "%.1f", sum/count}')
echo " 平均得分: $avg"
fi
}
# ============================================================================
# 4. 生成进度报告
# ============================================================================
generate_report() {
local report_file="$TRACK_DIR/进度报告-$DATE.md"
# 统计
local total_chapters=$(ls -1 "$NOVEL_DIR"/*第*章*.txt 2>/dev/null | wc -l)
local total_chars=0
local chapter_count=0
for file in "$NOVEL_DIR"/*.txt; do
if [ -f "$file" ]; then
local chars=$(wc -c < "$file" 2>/dev/null || echo "0")
total_chars=$((total_chars + chars))
chapter_count=$((chapter_count + 1))
fi
done
local avg_chars=$([ $chapter_count -gt 0 ] && echo $((total_chars / chapter_count)) || echo "0")
# 章节列表
local chapter_list=$(ls -t "$NOVEL_DIR"/*第*章*.txt 2>/dev/null | head -10 | xargs -I{} basename "{}" | head -10)
cat > "$report_file" << MD
# 平安书进度报告
**时间**: $TIMESTAMP
## 统计摘要
| 项目 | 数值 |
|------|------|
| 总章节数 | $total_chapters |
| 总字数 | $total_chars |
| 平均每章 | $avg_chars |
| 反思记录 | $(ls -1 "$NOVEL_DIR"/*反思.md 2>/dev/null | wc -l) |
## 最新章节
$(for chap in $chapter_list; do
echo "- $chap"
done)
## 进度时间线
$(ls -t "$NOVEL_DIR"/*第*章*.txt 2>/dev/null | head -5 | while read f; do
local mtime=$(stat -c %Y "$f" 2>/dev/null || echo "0")
local date=$(date -d "@$mtime" '+%Y-%m-%d' 2>/dev/null || echo "未知")
echo "- $(basename $f) - $date"
done)
## 目标进度
- 计划章节: 23章
- 已完成: $total_chapters
- 进度: $(echo "scale=1; $total_chapters * 100 / 23" | bc)%
---
*自动生成于 $TIMESTAMP*
MD
echo ""
echo "📁 报告: $report_file"
}
# ============================================================================
# 5. 生成趋势图
# ============================================================================
generate_trend() {
local trend_file="$TRACK_DIR/trend-$DATE.csv"
# 生成CSV
echo "日期,章节数,字数" > "$trend_file"
# 简化版:只输出当前数据
local total=$(ls -1 "$NOVEL_DIR"/*第*章*.txt 2>/dev/null | wc -l)
local chars=$(find "$NOVEL_DIR" -name "*.txt" -exec cat {} \; 2>/dev/null | wc -c)
echo "$DATE,$total,$chars" >> "$trend_file"
echo ""
echo "📈 趋势数据: $trend_file"
}
# ============================================================================
# 主程序
# ============================================================================
main() {
echo "╔════════════════════════════════════════════════════╗"
echo "║ 小说进度追踪模块 v1.0 ║"
echo "╚════════════════════════════════════════════════════╝"
echo ""
stats_chapters
stats_words
stats_scores
generate_report
generate_trend
echo ""
echo "✅ 进度追踪完成"
}
main "$@"