#!/bin/bash
# 全员群ID
CHAT_ID="oc_d7a8edc423d05f2fa6a5f4c0d8eb4e86"
# 成员列表保存路径
SAVE_DIR="/root/.openclaw/workspace/member_records"
mkdir -p $SAVE_DIR

# 获取当前日期和昨天日期
TODAY=$(date +%Y-%m-%d)
YESTERDAY=$(date -d "yesterday" +%Y-%m-%d)

# 今天的成员列表文件
TODAY_FILE="$SAVE_DIR/members_$TODAY.txt"
# 昨天的成员列表文件
YESTERDAY_FILE="$SAVE_DIR/members_$YESTERDAY.txt"

# 获取当前群成员列表
openclaw tool run feishu_chat_members --chat_id $CHAT_ID --page_size 100 | jq -r '.items[] | "\(.name)|\(.member_id)"' > $TODAY_FILE

# 如果昨天的文件不存在，首次运行，不对比
if [ ! -f $YESTERDAY_FILE ]; then
    echo "首次运行，已保存今日成员列表，明天开始对比"
    exit 0
fi

# 对比找出新增和减少的人员
ADDED=$(comm -23 <(sort $TODAY_FILE) <(sort $YESTERDAY_FILE) | awk -F '|' '{print $1"(" $2 ")"}')
REMOVED=$(comm -13 <(sort $TODAY_FILE) <(sort $YESTERDAY_FILE) | awk -F '|' '{print $1"(" $2 ")"}')

# 构建通知消息
MESSAGE="📊 每日全员群成员变动通知 ($TODAY):\n"
HAS_CHANGE=0

if [ -n "$ADDED" ]; then
    HAS_CHANGE=1
    MESSAGE="$MESSAGE\n✅ 新增成员:\n$ADDED\n"
fi

if [ -n "$REMOVED" ]; then
    HAS_CHANGE=1
    MESSAGE="$MESSAGE\n❌ 移除成员:\n$REMOVED\n"
fi

# 如果有变动，发送通知
if [ $HAS_CHANGE -eq 1 ]; then
    # 发送飞书消息
    openclaw tool run message --action send --channel feishu --target "user:ou_7c623036b45fe81f372b032da664a4fe" --message "$MESSAGE"
else
    echo "今日无成员变动"
fi
