160 lines
4.3 KiB
Bash
Executable File
160 lines
4.3 KiB
Bash
Executable File
#!/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 "$@"
|