以Apex为例,监听Steam游戏更新
编辑
58
2024-10-17
通过记录分支更新时间并对比,监听游戏是否更新,并发送通知到邮件/discord
这是shell脚本,同理可以使用python或其他语言编程(ai一丢转换即可)
#!/bin/bash
# 邮箱配置
EMAIL="收件"
SUBJECT="Apex Legends 更新通知"
SMTP_SERVER="smtp.gmail.com"
SMTP_PORT=587
GMAIL_USER="发"
GMAIL_PASS="发"
# Discord Webhook URL
DISCORD_WEBHOOK_URL="#"
# 获取 Apex Legends 游戏信息的函数
get_game_info() {
curl -s "https://api.steamcmd.net/v1/info/1172470" || echo "null" # 如果请求失败,返回 "null"
}
# 将时间戳转换为可读时间的函数
convert_timestamp() {
date -u -d @$1 +"%Y-%m-%d %H:%M:%S"
}
# 检查 public 分支的更新
check_for_public_update() {
game_data=$(get_game_info)
# 验证 JSON 中的 status 是否是 success
if echo "$game_data" | jq -e '.status' > /dev/null && [ "$(echo "$game_data" | jq -r '.status')" == "success" ]; then
# 获取 depots 中的 branches 中的 public 信息
public_branch=$(echo "$game_data" | jq -r '.data."1172470".depots.branches.public')
if [ "$public_branch" != "null" ]; then
# 提取并转换 public 分支的更新时间戳
public_update_time=$(convert_timestamp $(echo "$public_branch" | jq -r '.timeupdated'))
public_build_id=$(echo "$public_branch" | jq -r '.buildid')
echo "公开分支最新更新时间: $public_update_time (Build ID: $public_build_id)"
# 检查是否有更新(假设你保存了上次的 Build ID)
LAST_BUILD_ID_FILE="last_build_id.txt"
if [ -f "$LAST_BUILD_ID_FILE" ]; then
last_build_id=$(cat "$LAST_BUILD_ID_FILE")
if [ "$public_build_id" != "$last_build_id" ]; then
echo "检测到更新,发送邮件和 Discord 通知..."
# 更新消息内容
update_message="Apex Legends 已更新!\n最新 Build ID: $public_build_id\n更新时间: $public_update_time\n提醒:游戏更新,已邮件通知开发。如您正在游戏,请勿退出,否则在软件更新前,您将无法继续使用 HOOZI。"
send_email "$update_message"
send_discord_notification "$update_message"
echo "$public_build_id" > "$LAST_BUILD_ID_FILE" # 更新保存的 Build ID
else
echo "没有检测到更新。"
fi
else
echo "未找到上次的 Build ID,保存当前 Build ID。"
echo "$public_build_id" > "$LAST_BUILD_ID_FILE"
fi
else
echo "未找到 public 分支的信息。"
fi
else
echo "获取游戏信息失败或 status 不是 success。"
fi
}
# 发送邮件的函数
send_email() {
local body_message=$1 # 从参数获取邮件内容
# 使用 ssmtp 发送邮件
{
echo "To: $EMAIL"
echo "From: $GMAIL_USER" # 添加发件人地址
echo "Subject: $SUBJECT"
echo
echo "$body_message"
} | ssmtp -v "$EMAIL" # 将收件人放在 ssmtp 命令行参数中
}
# 发送 Discord 通知的函数
send_discord_notification() {
local discord_message=$1
curl -H "Content-Type: application/json" \
-X POST \
-d "{\"content\": \"$discord_message\"}" \
"$DISCORD_WEBHOOK_URL"
}
# 调用检查更新的函数
check_for_public_update
- 0
- 0
-
赞助
支付宝微信 -
分享