# ZakaTV 纯福利本地包 · Cloudflare Pages 部署说明

这份 zip 是**部署件**:顶层直接是站点文件,拖进 Cloudflare 就是整包在线托管。
包内容与原本地包**逐字节一致**(7 个 jar 的 MD5 与 `使用说明.txt` 里声明的一模一样,一个字节没动),
只是多了一层增强件 + 三个说明页。

---

## 一、包里多了什么

| 文件 | 干嘛的 |
|---|---|
| `_worker.js` | 增强层:补跨域头、纠正 `.jar/.py/.zip/.json` 的类型、提供 `/abs/` 绝对路径版配置、`/healthz` 探活 |
| `_headers` | 没有增强层(纯静态模式)时的跨域兜底 |
| `index.html` | 打开域名就能看到**可直接复制的配置地址**(自动带上你的域名) |
| `check.html` | 部署后自检页:挨个取一遍 jar / py / 配置,逐项打勾 |
| `404.html` | 找不到路径时的提示页 |
| `py-plugins.json` / `py-manifest.json` | `py配置/` 里那两份的**根目录副本**(名字纯英文,方便在壳里手打地址) |

原始文件(`ZakaTV.json`、`ztv2.json`、`jar/`、`py/`、`py配置/`、`配置存档/`、`使用说明.txt`、启动脚本)**全部原样保留**。

---

## 二、部署(挑一种)

### 方式 1 · 控制台拖 zip(最快)

1. 打开 `dash.cloudflare.com` → 左侧 **Workers & Pages** → **Create** → **Pages** → **Upload assets**
2. 项目名随便起(比如 `zakatv`),**不要**解压这个 zip
3. 把 zip 直接拖进去 → **Deploy site**
4. 十几秒后拿到 `https://<项目名>.pages.dev`

> 注意:zip 顶层就是文件,**不要**再套一层文件夹,也别把 zip 解压后连同文件夹一起拖(拖文件夹也行,但进去的第一层必须直接是 `ZakaTV.json` 这些)。

### 方式 2 · 命令行

```bash
unzip ZakaTV-纯福利-Pages部署包.zip -d zakatv && cd zakatv
npx wrangler pages deploy . --project-name=zakatv
```

### 方式 3 · 接 Git(以后推送自动更新)

仓库根目录 = 这个包的内容,构建命令**留空**,输出目录填 `/`。

### 自定义域名

Pages 项目 → **Custom domains** → 绑你自己的域名即可。绑完相对路径照样生效,什么都不用改。

---

## 三、部署完填哪条地址

假设你的域名是 `https://zakatv.pages.dev`:

| 用途 | 地址 | 说明 |
|---|---|---|
| **主配置 · 113 站** | `https://zakatv.pages.dev/ZakaTV.json` | 首选。`./jar/`、`./py/` 相对路径跟着这个地址走 |
| 测试线 · 80 站 | `https://zakatv.pages.dev/ztv2.json` | 走 `jar/ztv2.jar` |
| PY 插件 · 428 站 | `https://zakatv.pages.dev/py-plugins.json` | 需要壳自带 Python 内核 |
| **主配置(绝对路径版)** | `https://zakatv.pages.dev/abs/ZakaTV.json` | 壳不认相对路径、站点点开报找不到 jar 时,换这条 |
| 绝对路径版 · 另两份 | `/abs/ztv2.json`、`/abs/py-plugins.json` | 同上 |

打开 `https://<你的域名>/` 首页,这三条地址带复制按钮,不用手打。

---

## 四、部署后 5 秒验收

打开 `https://<你的域名>/check.html`,它会:

- 取一遍 7 个 jar,并**核对字节数**(跟本地包声明值逐项比,能查出上传截断)
- 解析 3 份配置,数站点条数(应为 113 / 80 / 428)
- 抽查 py 插件源码可读
- 验 `/abs/` 绝对路径是否真的换了域名
- 顺带把跨域头打出来

全绿就说明这包在云上活了。哪项不过,点「复制结果」把内容发回来。

---

## 五、排障

| 现象 | 原因 / 处理 |
|---|---|
| 站点点开是空的 | 主包没加载上。浏览器直接开 `https://<域名>/jar/ai-zhineng.jar`,能下下来就说明文件在;在就换 `/abs/` 那条地址 |
| 壳报「配置解析失败」 | 先用浏览器开一次配置地址,能看到 JSON 就没问题;看不到就看自检页 |
| `check.html` 里 jar 全红 | 上传时被截断,重传一次这个 zip |
| 网页版壳取配置报跨域 | 打开 `/healthz`,有 JSON 说明增强层在,跨域头已带;没有就说明 `_worker.js` 没上传成功,换纯静态也行(跨域靠 `_headers`,但个别壳仍需增强层) |
| py 站全部打不开 | py 源要壳自带 Python 内核(OK影视那类),并给壳存储权限 |
| 想更新包内容 | 同项目名重新上传新 zip,或在项目里 `wrangler pages deploy`,线上即时替换 |
| 不想被人随便翻到 | Pages 默认公开。可以换更随机的项目名,或给项目加 Cloudflare Access 访问策略,或绑自定义域名后上 WAF |

---

## 六、两件跟托管无关、但得知道的事

1. **包内 6 条站仍走原作者的线上**(MissAV 取页中继/过盾、成人资源中心、八色套图、JAV排行榜、TG 取页、SupJav/AirAV 中继)。这是原包设计,不是托管能改的;想断掉这几条,进 `ZakaTV.json` 找对应站点的 `ext`,把 `base / relay / relays / site` 改掉或删掉。
2. `wallpaper` / `danmaku` 指向 `127.0.0.1:9978` 和 `127.0.0.1:2525`,那是**壳本机**的服务,跟配置挂在哪无关,不用动。

---

## 七、包内文件指纹(想核就核)

```
jar/ZakaTV-ext.jar             f7c0ce646694d7e7254829b5bde9228c  1056242 字节
jar/ai-zhineng.jar             e5df9399c403bfed77586595d2a21271  1131951 字节
jar/aowu-main-loader.jar       88cbe52257755e0025bc9e226a524309   22531 字节
jar/aowu-main-payload.zip      510980f1dd9015d3f0e735341416a1d0  3974639 字节
jar/fty-xxooo.jar              9236f4f13c78758c61cee22ee396bbab  1113508 字节
jar/wsn-ext.jar                7a2cb30dc4937d27e57288b5c381e19c   641203 字节
jar/ztv2.jar                   6da99a83c78cd2655cd2b0c2260871e7   819529 字节
```

云上核:`check.html` 会拿字节数逐项对;下到本地核:`md5sum jar/*`。
