-
Notifications
You must be signed in to change notification settings - Fork 0
89 lines (73 loc) · 3.09 KB
/
Checkin.yml
File metadata and controls
89 lines (73 loc) · 3.09 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
name: Daily Checkin with PushPlus
on:
schedule:
- cron: '0 0 * * *' # 每日 00:00 执行(北京时间8点)
workflow_dispatch:
jobs:
checkin:
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install jq
run: |
sudo apt-get update -qq && sudo apt-get install -y jq
- name: Check Secrets
run: |
echo "CHECKIN_TOKEN: ${{ secrets.CHECKIN_TOKEN != '' && '已设置' || '未设置' }}"
echo "PUSHPLUS_TOKEN: ${{ secrets.PUSHPLUS_TOKEN != '' && '已设置' || '未设置' }}"
- name: Send Checkin Request
id: checkin
run: |
RESPONSE=$(curl -s -w "\n%{http_code}" -X POST \
--max-time 30 \
-H "User-Agent: Mozilla/5.0" \
-H "Accept: application/json" \
-H "Referer: https://www.viewturbo.com/" \
"https://api.viewturbo.com/appuser/checkin?platform=web&cur_version=0.0.0&token=${{ secrets.CHECKIN_TOKEN }}&lang=hk&code=Others&deviceinfo=")
HTTP_CODE=$(echo "$RESPONSE" | tail -n1)
BODY=$(echo "$RESPONSE" | sed '$d')
MSG=$(echo "$BODY" | jq -r '.msg // "无msg"' 2>/dev/null || echo "解析失败")
CODE=$(echo "$BODY" | jq -r '.code // "无code"' 2>/dev/null || echo "解析失败")
echo "http_code=$HTTP_CODE" >> $GITHUB_OUTPUT
echo "body=$BODY" >> $GITHUB_OUTPUT
echo "msg=$MSG" >> $GITHUB_OUTPUT
if [ "$HTTP_CODE" != "200" ]; then
echo "result=失败: HTTP $HTTP_CODE" >> $GITHUB_OUTPUT
echo "checkin_status=failure" >> $GITHUB_ENV
elif [ "$CODE" = "0" ]; then
echo "result=成功" >> $GITHUB_OUTPUT
echo "checkin_status=success" >> $GITHUB_ENV
else
echo "result=$MSG (code=$CODE)" >> $GITHUB_OUTPUT
echo "checkin_status=success" >> $GITHUB_ENV
fi
- name: Send Notification via PushPlus
if: always()
run: |
TITLE="签到结果 - $(date +%m月%d日) ${{ steps.checkin.outputs.result }}"
CONTENT=$(cat <<EOF
执行时间: ${{ github.run_started_at }}
签到状态: ${{ steps.checkin.outputs.result }}
详细消息: ${{ steps.checkin.outputs.msg }}
HTTP 状态码: ${{ steps.checkin.outputs.http_code }}
响应体: ${{ steps.checkin.outputs.body }}
日志: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
EOF
)
RESPONSE=$(curl -s -X POST "http://www.pushplus.plus/send" \
-d token="${{ secrets.PUSHPLUS_TOKEN }}" \
-d title="$TITLE" \
-d content="$CONTENT" \
-d template=txt)
echo "PushPlus 响应: $RESPONSE"
if echo "$RESPONSE" | grep -q '"code":200'; then
echo "推送成功"
else
echo "推送失败: $RESPONSE"
fi
- name: Final Status
if: always()
run: |
if [ "${{ env.checkin_status }}" = "failure" ]; then exit 1; fi