- refresh_token.py:启动即刷新,random 30~60min 循环,失败 5min 重试 - 每次保存新 access_token+refresh_token(Pixiv 会轮换),chmod 600 - pixiv-token-refresh.service:常驻守护,Restart=always - README 同步服务清单与部署说明
36 lines
2.0 KiB
Markdown
36 lines
2.0 KiB
Markdown
# OpenAPI
|
||
|
||
统一接口服务。线上入口:`https://openapi.rrrosmontis.icu`
|
||
|
||
## 结构
|
||
|
||
```
|
||
source/
|
||
├── openapi/main.py # 聚合层 (127.0.0.1:9888) /pixiv/get_image /bilibili/get_video
|
||
├── pixiv/
|
||
│ ├── pixiv.py # Pixiv 图片服务 (9088)
|
||
│ ├── refresh_token.py # Pixiv OAuth token 刷新守护
|
||
│ └── tokens.template.json # Pixiv token 模板
|
||
└── bilibili/
|
||
├── bilibili.py # bilibili 视频服务 (19990)
|
||
├── refresh_cookie.py # cookie 定时刷新守护
|
||
├── qr_login.py # 扫码登录获取 cookie
|
||
└── qr_login_fast.py
|
||
nginx/
|
||
└── openapi.rrrosmontis.icu.conf # nginx 统一入口(/pixiv/ /bilibili/ /img-master/ /img-original/ 图片反代)
|
||
systemd/
|
||
├── openapi.service # 聚合层
|
||
├── pixiv.service # Pixiv 图片服务
|
||
├── bilibili.service # bilibili 视频服务
|
||
├── bilibili-refresh.service # cookie 刷新守护(每 50–70 分钟随机刷新)
|
||
└── pixiv-token-refresh.service # Pixiv token 刷新守护(每 30–60 分钟随机刷新)
|
||
```
|
||
|
||
## 部署
|
||
|
||
1. token:复制 `source/pixiv/tokens.template.json` 为 `source/pixiv/tokens.json`,填入实际 pixiv token
|
||
2. bilibili cookie:放置 `source/bilibili/cookies.txt`(`name=value` 格式),或运行 `qr_login.py` 扫码生成
|
||
3. 服务:将 `systemd/*.service` 安装到 `/etc/systemd/system/`,启用并启动 openapi / pixiv / bilibili / bilibili-refresh / pixiv-token-refresh(`systemctl enable --now`)
|
||
4. nginx:将 `nginx/openapi.rrrosmontis.icu.conf` 放入 `/etc/nginx/conf.d/`,`nginx -t && systemctl reload nginx`
|
||
5. 定时任务:无 cron/timer——bilibili-refresh(每 50–70 分钟刷 cookie)与 pixiv-token-refresh(每 30–60 分钟刷 Pixiv OAuth token,轮换后的 refresh_token 原子落盘)均为常驻守护,内部循环随机间隔,systemd `Restart=always` 兜底
|