yui_for_Cris/check_employee_change.sh
2026-03-30 08:00:10 +08:00

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