每日备份 2026-06-10 12:57:13
This commit is contained in:
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 "$@"
|
||||
Reference in new issue
Block a user