51 lines
1.5 KiB
Bash
Executable File
51 lines
1.5 KiB
Bash
Executable File
#!/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
|