Rename to hkt.sh
This commit is contained in:
79
scripts/nodeseek-checkin.sh
Executable file
79
scripts/nodeseek-checkin.sh
Executable file
@@ -0,0 +1,79 @@
|
||||
#!/bin/bash
|
||||
# NodeSeek 自动签到脚本 v2.0
|
||||
# 支持多账号、CDP 控制、状态记录
|
||||
|
||||
set -e
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
STATE_FILE="$SCRIPT_DIR/nodeseek-checkin-state.json"
|
||||
CDP_URL="http://127.0.0.1:18800"
|
||||
|
||||
# 账号配置
|
||||
declare -A ACCOUNTS=(
|
||||
["menglong"]="dc4d1551406351a93c09082ea08e2d2e"
|
||||
["vp404"]="3cfeb30b562daec31ba63bf64fdb3838"
|
||||
)
|
||||
declare -A ACCOUNT_NAMES=(
|
||||
["menglong"]="朦胧"
|
||||
["vp404"]="VP404"
|
||||
)
|
||||
|
||||
# 初始化状态文件
|
||||
if [ ! -f "$STATE_FILE" ]; then
|
||||
echo '{"lastCheckin": null, "accounts": {}}' > "$STATE_FILE"
|
||||
fi
|
||||
|
||||
TODAY=$(date '+%Y-%m-%d')
|
||||
LAST_CHECKIN=$(jq -r '.lastCheckin // "never"' "$STATE_FILE")
|
||||
|
||||
if [ "$LAST_CHECKIN" = "$TODAY" ]; then
|
||||
echo "今天已经签到过了 ($TODAY)"
|
||||
jq -r '.accounts | to_entries[] | " \(.key): \(.value.status) (\(.value.reward // "N/A"))"' "$STATE_FILE"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "开始签到 NodeSeek ($TODAY)..."
|
||||
|
||||
# 签到函数
|
||||
checkin_account() {
|
||||
local key=$1
|
||||
local cookie=$2
|
||||
local name=${ACCOUNT_NAMES[$key]}
|
||||
|
||||
echo "[$name] 签到中..."
|
||||
|
||||
# 使用 curl 签到
|
||||
response=$(curl -s -X POST "https://www.nodeseek.com/api/attendance?random=false" \
|
||||
-H "Cookie: _nk=$cookie" \
|
||||
-H "User-Agent: Mozilla/5.0" \
|
||||
-H "Accept: application/json")
|
||||
|
||||
success=$(echo "$response" | jq -r '.success // false')
|
||||
message=$(echo "$response" | jq -r '.message // "未知错误"')
|
||||
|
||||
if [ "$success" = "true" ]; then
|
||||
reward=$(echo "$response" | jq -r '.data // "未知"')
|
||||
echo "[$name] ✅ 签到成功!奖励: $reward"
|
||||
jq --arg name "$name" --arg reward "$reward" \
|
||||
'.accounts[$name] = {status: "success", reward: $reward, time: now|todate}' \
|
||||
"$STATE_FILE" > "$STATE_FILE.tmp" && mv "$STATE_FILE.tmp" "$STATE_FILE"
|
||||
else
|
||||
echo "[$name] ❌ 签到失败: $message"
|
||||
jq --arg name "$name" --arg msg "$message" \
|
||||
'.accounts[$name] = {status: "failed", error: $msg, time: now|todate}' \
|
||||
"$STATE_FILE" > "$STATE_FILE.tmp" && mv "$STATE_FILE.tmp" "$STATE_FILE"
|
||||
fi
|
||||
}
|
||||
|
||||
# 遍历所有账号签到
|
||||
for key in "${!ACCOUNTS[@]}"; do
|
||||
checkin_account "$key" "${ACCOUNTS[$key]}"
|
||||
sleep 2
|
||||
done
|
||||
|
||||
# 更新最后签到日期
|
||||
jq --arg today "$TODAY" '.lastCheckin = $today' "$STATE_FILE" > "$STATE_FILE.tmp" && mv "$STATE_FILE.tmp" "$STATE_FILE"
|
||||
|
||||
echo ""
|
||||
echo "签到完成!"
|
||||
jq -r '.accounts | to_entries[] | " \(.key): \(.value.status) (\(.value.reward // .value.error))"' "$STATE_FILE"
|
||||
Reference in New Issue
Block a user