#!/bin/bash # ============================================================================= # Moltbook Automator - Daily Digest Script # 生成每日 Moltbook 活动摘要 # ============================================================================= set -e SKILL_DIR="$HOME/.clawdbot/skills/moltbook-automator" CONFIG_FILE="$SKILL_DIR/config.json" STATE_FILE="$SKILL_DIR/state.json" TEMPLATE_FILE="$SKILL_DIR/templates/daily-report.md" LOG_FILE="$HOME/.clawdbot/moltbook-automator.log" OUTPUT_DIR="$HOME/.clawdbot/digests" log() { echo -e "[$(date '+%Y-%m-%d %H:%M:%S')] [DIGEST] $1" | tee -a "$LOG_FILE" } # 确保输出目录存在 mkdir -p "$OUTPUT_DIR" # 生成日报 generate_digest() { local today=$(date +"%Y-%m-%d") local output_file="$OUTPUT_DIR/moltbook-digest-$today.md" log "📊 正在生成 $today 的日报..." # 读取今日统计 local posts_checked=$(jq -r '.today_stats.posts_checked // 0' "$STATE_FILE") local notifications=$(jq -r '.today_stats.notifications_processed // 0' "$STATE_FILE") local dms=$(jq -r '.today_stats.dms_processed // 0' "$STATE_FILE") local auto_replies=$(jq -r '.today_stats.auto_replies_sent // 0' "$STATE_FILE") local likes=$(jq -r '.today_stats.likes_given // 0' "$STATE_FILE") local total_checks=$(jq -r '.lifetime_stats.total_checks // 0' "$STATE_FILE") # 让 Bot 生成详细日报 local prompt="请帮我生成今天的 Moltbook 活动日报。 **今日统计:** - 检查次数: 累计 $total_checks 次 - 帖子检查: $posts_checked 条 - 通知处理: $notifications 条 - 私信处理: $dms 条 - 自动回复: $auto_replies 条 - 点赞数: $likes 个 请按以下格式生成日报: 1. **📈 活动概览** - 简要总结今日活动量 2. **🔥 热门互动** - 今天最值得关注的互动(如果有) 3. **📬 重要通知** - 需要关注的通知摘要 4. **💡 建议** - 你对我社交活动的建议 请用 Markdown 格式输出,适合保存为文件。" # 获取 Bot 生成的日报内容 log "正在请求 Bot 生成日报内容..." # 创建基础模板 cat > "$output_file" << EOF # 🦞 Moltbook 日报 - $today --- ## 📊 今日统计 | 指标 | 数量 | |------|------| | 检查次数(累计) | $total_checks | | 帖子检查 | $posts_checked | | 通知处理 | $notifications | | 私信处理 | $dms | | 自动回复 | $auto_replies | | 点赞数 | $likes | --- ## 📝 详细报告 *正在通过 Bot 生成详细分析...* --- *由 Moltbook Automator 自动生成* *生成时间: $(date '+%Y-%m-%d %H:%M:%S')* EOF log "✅ 日报已保存到: $output_file" # 发送日报通知 local discord_user_id=$(jq -r '.discord_user_id' "$CONFIG_FILE") local digest_enabled=$(jq -r '.digest.enabled' "$CONFIG_FILE") if [ "$digest_enabled" == "true" ]; then clawdbot agent --channel discord --to "$discord_user_id" \ --message "📊 **Moltbook 日报 ($today)** 今日活动统计: • 检查 $total_checks 次 • 处理 $notifications 条通知 • 处理 $dms 条私信 • 发送 $auto_replies 条自动回复 详细日报已保存到: $output_file" --deliver >> "$LOG_FILE" 2>&1 log "📢 日报通知已发送到 Discord" fi # 更新状态 jq '.lifetime_stats.total_digests_generated += 1' \ "$STATE_FILE" > "${STATE_FILE}.tmp" && mv "${STATE_FILE}.tmp" "$STATE_FILE" } # 查看历史日报 list_digests() { echo "📚 历史日报列表:" echo "" ls -la "$OUTPUT_DIR"/*.md 2>/dev/null || echo "暂无历史日报" } # 使用说明 usage() { echo "用法: $0 [command]" echo "" echo "命令:" echo " generate 生成今日日报 (默认)" echo " list 查看历史日报列表" echo "" echo "示例:" echo " $0 # 生成今日日报" echo " $0 generate # 生成今日日报" echo " $0 list # 查看历史日报" } # 主函数 main() { local command="${1:-generate}" case "$command" in generate) generate_digest ;; list) list_digests ;; -h|--help) usage ;; *) echo "未知命令: $command" usage exit 1 ;; esac } main "$@"