#!/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 "$@"