Skip to content

Commit b982ed5

Browse files
authored
Merge pull request #3 from millylee/feature/notify
支持多个平台的机器人通知
2 parents 594b745 + a17b2f8 commit b982ed5

File tree

7 files changed

+441
-112
lines changed

7 files changed

+441
-112
lines changed

.github/workflows/checkin.yml

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,8 @@ name: AnyRouter 自动签到
22

33
on:
44
schedule:
5-
# 每天 UTC 时间 0:00 执行 (北京时间 8:00)
65
- cron: '0 0 * * *'
7-
workflow_dispatch: # 允许手动触发
6+
workflow_dispatch:
87

98
jobs:
109
checkin:
@@ -28,6 +27,14 @@ jobs:
2827
- name: 执行签到
2928
env:
3029
ANYROUTER_ACCOUNTS: ${{ secrets.ANYROUTER_ACCOUNTS }}
30+
DINGDING_WEBHOOK: ${{ secrets.DINGDING_WEBHOOK }}
31+
EMAIL_USER: ${{ secrets.EMAIL_USER }}
32+
EMAIL_PASS: ${{ secrets.EMAIL_PASS }}
33+
EMAIL_TO: ${{ secrets.EMAIL_TO }}
34+
PUSHPLUS_TOKEN: ${{ secrets.PUSHPLUS_TOKEN }}
35+
SERVERPUSHKEY: ${{ secrets.SERVERPUSHKEY }}
36+
FEISHU_WEBHOOK: ${{ secrets.FEISHU_WEBHOOK }}
37+
WEIXIN_WEBHOOK: ${{ secrets.WEIXIN_WEBHOOK }}
3138
run: |
3239
python checkin.py
3340

.gitignore

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,5 @@
1-
.claude
1+
.claude
2+
.env*
3+
.venv
4+
__pycache__
5+
.pytest_cache

README.md

Lines changed: 40 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,8 @@
4545

4646
### 4. 多账号配置格式
4747

48-
支持以下几种格式:
48+
支持单个与多个
4949

50-
#### 格式一:JSON 数组格式 (推荐)
5150
```json
5251
[
5352
{
@@ -65,27 +64,6 @@
6564
]
6665
```
6766

68-
#### 格式二:JSON 对象格式 (单账号)
69-
```json
70-
{
71-
"cookies": {
72-
"session": "session_value"
73-
},
74-
"api_user": "api_user_id"
75-
}
76-
```
77-
78-
#### 格式三:简化格式(没测试)
79-
```
80-
session=value1|api_user1;session=value4|api_user2
81-
```
82-
83-
格式说明:
84-
- 使用 `;` 分隔不同账号
85-
- 使用 `|` 分隔 cookies 和 api_user
86-
- 使用 `,` 分隔不同的 cookie 键值对
87-
- 使用 `=` 分隔 cookie 的 key 和 value
88-
8967
通过 F12 工具可获取 cookies 与 api_user 的值。
9068

9169
![获取签到](./assets/request-header.png)
@@ -140,6 +118,35 @@ session=value1|api_user1;session=value4|api_user2
140118
]
141119
```
142120

121+
## 开启通知
122+
123+
脚本支持多种通知方式,可以通过配置以下环境变量开启,如果 `webhook` 有要求安全设置,例如钉钉,可以在新建机器人时选择自定义关键词,填写 `AnyRouter`
124+
125+
### 邮箱通知
126+
- `EMAIL_USER`: 发件人邮箱地址
127+
- `EMAIL_PASS`: 发件人邮箱密码/授权码
128+
- `EMAIL_TO`: 收件人邮箱地址
129+
130+
### 钉钉机器人
131+
- `DINGDING_WEBHOOK`: 钉钉机器人的 Webhook 地址
132+
133+
### 飞书机器人
134+
- `FEISHU_WEBHOOK`: 飞书机器人的 Webhook 地址
135+
136+
### 企业微信机器人
137+
- `WEIXIN_WEBHOOK`: 企业微信机器人的 Webhook 地址
138+
139+
### PushPlus 推送
140+
- `PUSHPLUS_TOKEN`: PushPlus 的 Token
141+
142+
### Server酱
143+
- `SERVERPUSHKEY`: Server酱的 SendKey
144+
145+
配置步骤:
146+
1. 在仓库的 Settings -> Environments -> production -> Environment secrets 中添加上述环境变量
147+
2. 每个通知方式都是独立的,可以只配置你需要的推送方式
148+
3. 如果某个通知方式配置不正确或未配置,脚本会自动跳过该通知方式
149+
143150
## 故障排除
144151

145152
如果签到失败,请检查:
@@ -150,6 +157,15 @@ session=value1|api_user1;session=value4|api_user2
150157
4. 网站是否更改了签到接口
151158
5. 查看 Actions 运行日志获取详细错误信息
152159

160+
## 测试
161+
162+
```python
163+
uv venv
164+
.venv\Scripts\activate
165+
pip install -r requirements-dev.txt
166+
pytest tests/
167+
```
168+
153169
## 免责声明
154170

155-
本脚本仅用于学习和研究目的,使用前请确保遵守相关网站的使用条款
171+
本脚本仅用于学习和研究目的,使用前请确保遵守相关网站的使用条款.

0 commit comments

Comments
 (0)