feat: 迁移到Cloudflare Workers并重构API请求处理

refactor: 使用fetch替换axios并优化请求处理逻辑

docs: 添加DEPLOYMENT.md部署指南

build: 更新package.json依赖和脚本配置

style: 更新组件类型定义和注释

perf: 优化图片代理和用户数据初始化逻辑
This commit is contained in:
2025-10-08 15:53:36 +08:00
parent 8b93d6f42f
commit 1147cd270b
78 changed files with 11389 additions and 2119 deletions

121
DEPLOYMENT.md Normal file
View File

@@ -0,0 +1,121 @@
# PixivNow Worker 部署指南
## 快速部署(零配置)
PixivNow Worker 支持零配置部署,无需设置任何环境变量即可正常运行:
```bash
# 1. 安装依赖
pnpm install
# 2. 登录 Cloudflare
pnpm wrangler login
# 3. 部署到 Cloudflare Workers
pnpm deploy
```
## 本地开发
```bash
# 启动本地开发服务器
pnpm serve
# 服务器将在 http://127.0.0.1:8787 启动
```
## API 端点
- `GET /` - 健康检查
- `GET /api/illust/random` - 随机插画 API
- `GET /api/user?id={user_id}` - 用户信息 API
- `GET /-/{image_path}` - i.pximg.net 图片代理
- `GET /~/{image_path}` - s.pximg.net 图片代理
- `GET /{pixiv_path}` - 通用 Pixiv 代理
## 反代配置
### 通过 wrangler.toml 配置
编辑 `wrangler.toml` 文件中的 `[vars]` 部分:
```toml
[vars]
# 图片反代配置
VITE_PXIMG_BASEURL_I = "https://i.pixiv.re/" # i.pximg.net 反代
VITE_PXIMG_BASEURL_S = "https://s.pixiv.re/" # s.pximg.net 反代
# 其他可选配置
USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"
UA_BLACKLIST = "[]"
```
### 通过 Cloudflare Dashboard 配置
1. 登录 [Cloudflare Dashboard](https://dash.cloudflare.com/)
2. 进入 Workers & Pages
3. 选择你的 Worker
4. 进入 Settings > Variables
5. 添加环境变量:
- `VITE_PXIMG_BASEURL_I`: i.pximg.net 的反代 URL
- `VITE_PXIMG_BASEURL_S`: s.pximg.net 的反代 URL
- `USER_AGENT`: 自定义 User-Agent可选
### 常用反代服务
```toml
# pixiv.re (推荐)
VITE_PXIMG_BASEURL_I = "https://i.pixiv.re/"
VITE_PXIMG_BASEURL_S = "https://s.pixiv.re/"
# pixiv.cat
VITE_PXIMG_BASEURL_I = "https://i.pixiv.cat/"
VITE_PXIMG_BASEURL_S = "https://s.pixiv.cat/"
# 自定义反代
VITE_PXIMG_BASEURL_I = "https://your-proxy-domain.com/"
VITE_PXIMG_BASEURL_S = "https://your-s-proxy-domain.com/"
```
## 默认配置
如果不设置环境变量Worker 将使用以下默认值:
- **图片代理**: 直接访问 Pixiv 原始 URL (`i.pximg.net`, `s.pximg.net`)
- **User-Agent**: `Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 Edg/122.0.0.0`
- **UA 黑名单**: 空数组 `[]`
- **CORS**: 完全开放,支持所有域名
## 测试反代配置
部署后,可以通过以下方式测试反代是否生效:
```bash
# 测试 i.pximg.net 反代
curl -I "https://your-worker.your-subdomain.workers.dev/-/img-master/img/2024/01/01/00/00/00/123456_p0_master1200.jpg"
# 测试 s.pximg.net 反代
curl -I "https://your-worker.your-subdomain.workers.dev/~/c/250x250_80_a2_g5/img-master/img/2024/01/01/00/00/00/123456_p0_square1200.jpg"
```
如果配置了反代,响应头中应该包含反代服务的标识(如 `x-proxied-by`)。
## 故障排除
### 1. 图片无法加载
- 检查反代 URL 是否正确
- 确认反代服务是否可用
- 验证环境变量是否正确设置
### 2. CORS 错误
- Worker 默认启用 CORS支持所有域名
- 如果仍有问题,检查请求头是否正确
### 3. 部署失败
- 确认已登录 Cloudflare: `pnpm wrangler login`
- 检查 `wrangler.toml` 配置是否正确
- 验证 Worker 名称是否唯一
## 许可证
MIT License