整体UI修改
This commit is contained in:
+4
-11
@@ -1,6 +1,6 @@
|
||||
# 91av 页面接口对照
|
||||
|
||||
核对日期:2026-10-21。来源:[当前 Swagger](https://91av-wz.80sygtm.com/swagger/index.html)。上游地址通过 `API_BASE_URL` 配置,默认 `https://91av-wz.80sygtm.com`;下表省略 `/api/app/` 前缀。
|
||||
核对日期:2026-10-21。来源:[当前 Swagger](https://91av-wz.80sygtm.com/swagger/index.html)。上游地址通过 `UPSTREAM_API_URL` 配置,默认 `https://webhgcgapi.mfcg.me`;下表省略 `/api/app/` 前缀。
|
||||
|
||||
| 页面 | 接口及关键参数 |
|
||||
| --- | --- |
|
||||
@@ -18,23 +18,16 @@
|
||||
| 短剧详情 | `playlet/detail` 传 `slug` 或 `id`;`playlet/chapter/list` 传 `playletSlug` 或 `playletId` |
|
||||
| 详情推荐 | `playlet/guess-like/list`;必须传当前 `playletId`,不依赖详情中未定义的推荐字段 |
|
||||
| 章节播放 | `playlet/chapter/detail`;`chapterId` 加 `playletSlug` 或 `playletId`,使用实时观看权限、费用、余额及视频地址。章节 SEO 优先于整剧 SEO |
|
||||
| 评论 | `comment/list`;`objectId,objectType,pageNum,pageSize,sortOrder`;整剧类型 10、章节类型 11 |
|
||||
| 收藏、历史、已购 | `playlet/collect/list`、`playlet/history/list`、`playlet/bought/list`;`pageNum,pageSize`;服务端使用 `auth/getInfo` 恢复当前账号,直接输出列表 |
|
||||
| 账号设置 | `auth/profile`;头像上传 `upload/image`,使用返回的 `sourceNameFs` |
|
||||
| 充值、VIP | `recharge/package/list`;读取真实套餐金额(分)、金币及支付渠道;余额明细 `coin/trans/list` 使用 `page,pageSize,type` |
|
||||
| 福利应用 | `applist/list?categoryId=…`;保留分类锚点及空分类隐藏逻辑 |
|
||||
| 回家的路、独立导航 | `config/info` 的永久地址、备用线路、TG、App 链接;没有 App 地址时隐藏下载入口 |
|
||||
| 关于等六个信息页 | 按既有要求保留 HTML 静态正文;联系我们使用配置中的商务 TG 与 TG 群,服务时间可取 `config/footer/info` |
|
||||
| 回家的路、独立导航 | 站点地址固定 `https://huangguocg.com/`,联系方式固定官方 TG `@jbd125`;`config/info` 只提供导航介绍和 App 链接,没有 App 地址时隐藏下载入口 |
|
||||
| 关于等六个信息页 | 按既有要求保留 HTML 静态正文;联系我们与 DMCA 只展示官方 TG `@jbd125` |
|
||||
|
||||
## 写接口
|
||||
|
||||
2026-10-22 本项目(`JHA-1047`)调整内容地址:链接优先使用非空 slug,缺少时使用 ID,保留尾斜杠和独立分页。专题详情接口仍必填 ID,slug 路由先分页查询专题目录解析 ID,再读取详情;目录故障返回服务错误,不伪装成专题不存在。详情评论和推荐等只支持数字 ID 的接口在详情返回后使用真实 ID;支持 slug 的章节请求继续并行。canonical、面包屑、选集和 ItemList 使用对应主地址,旧 ID 地址不新增转向 slug 的重定向。
|
||||
|
||||
登录、绑定和找回密码使用 `auth/login`、`auth/register`、`auth/resetPassword`;凭证保存在 HttpOnly Cookie。整剧点赞/收藏传 `id` 和布尔状态,章节点赞/收藏只传 `chapterId` 和布尔状态。解锁传 `playletId,chapterId`,仍在用户确认后提交。评论发送、点赞、观看报告的字段按各自请求模型发送。
|
||||
只使用游客会话 `auth/guest`,凭证保存在 HttpOnly Cookie;登录、注册、找回密码、资料修改、充值/VIP 下单和章节解锁已删除,代理不再放行。整剧点赞/收藏传 `id` 和布尔状态,章节点赞/收藏只传 `chapterId` 和布尔状态。评论发送、点赞、观看报告的字段按各自请求模型发送。
|
||||
|
||||
金币下单 `coin/buy`、VIP 下单 `vip/pay` 均使用 `packageId,payMode`,支付渠道只取套餐配置。没有在真实服务上创建订单、付费解锁、注册账号、发送评论或提交反馈。
|
||||
|
||||
反馈按 `proto.FeedbackReq` 模型:1 建议、2 Bug、3 体验、4 账号、5 其他;操作描述仍写旧的四类,与模型不一致,本次以请求模型为准。问题正文与附加环境信息合计最多 500 字,优先完整保留用户正文。
|
||||
|
||||
## 已移除的旧接口依赖
|
||||
|
||||
|
||||
@@ -15,22 +15,21 @@
|
||||
| 范围 | 设置 |
|
||||
| --- | --- |
|
||||
| 内部搜索、导航入口、回家的路、福利应用 | `noindex,follow` |
|
||||
| 个人中心、收藏、历史、已购、设置、充值/VIP、反馈 | `noindex,nofollow` |
|
||||
| 非默认有效排序变体、非默认评论排序 | `noindex,follow`,沿用原有例外规则 |
|
||||
| 详情和播放页的评论分页,页码大于 1 | `noindex,follow` |
|
||||
| 个人中心、充值/VIP 等已删除页面 | 返回 404 |
|
||||
| 非默认有效排序变体 | `noindex,follow`,沿用原有例外规则 |
|
||||
| 接口成功确认 `totalCount=0` 的公开列表第一页 | `noindex,follow`,继续返回 200 |
|
||||
| 缺少独立栏目信息的更多列表、纯解锁或无有效正片的播放页 | `noindex,follow`,继续提供原页面 |
|
||||
|
||||
noindex 页面不输出 canonical、head 中的 prev/next 或内容 JSON-LD;正文的选集、评论、分页链接继续提供。作品详情没有评论时仍可索引,评论数为 0 不等于作品为空。
|
||||
noindex 页面不输出 canonical、head 中的 prev/next 或内容 JSON-LD;正文的选集、推荐、分页链接继续提供。作品详情没有评论时仍可索引,评论数为 0 不等于作品为空。
|
||||
|
||||
## 去重和结构化数据
|
||||
|
||||
- 同 ID 的 `/theme/{id}/` 与 `/topics/{id}/` 当前读取相同资源,以 `/topics/{id}/` 为 canonical。两条路由都可直接访问,不新增重定向。
|
||||
- 自动生成的专题卡片与 ItemList 链接使用 `/topics/{id}/`;后台明确配置的 `moreUrl` 保留原值。
|
||||
- 数字资源 ID 的前导零在 canonical 与播放实体 URL 中归一;普通分页仍保留自己的页码。搜索关键词不进行数字归一。
|
||||
- canonical 仍仅取配置的永久域名,去除跟踪参数;`/rank/`、`/page/1/` 继续使用既有主地址。
|
||||
- canonical 固定使用 `https://huangguocg.com`,去除跟踪参数;`/rank/`、`/page/1/` 继续使用既有主地址。
|
||||
- 2026-10-22 起内容主地址优先使用接口的非空 slug,缺少时使用 ID。ID 地址仍直接提供内容,其 canonical 与结构化数据指向该内容的 slug 主地址;评论与操作请求继续使用真实数字 ID。
|
||||
- 可索引的付费播放页标记 `isAccessibleForFree:false` 与 `hasPart.cssSelector:.play-paywalled-content`,选择器对应真实播放器容器,不改变样式。
|
||||
- 全部内容免费:有正片地址的播放页即可索引,TVEpisode/VideoObject 标记 `isAccessibleForFree:true`,不再输出付费区域标记。
|
||||
- VideoObject 只在真实媒体源、有效日期与封面均存在时输出。无权观看的媒体地址不进入 SEO 数据;不编造视频日期或媒体源。
|
||||
|
||||
## 状态码与验证
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
## 1. 域名与通用约定
|
||||
|
||||
- `D` 表示正式站点的 origin,即协议、域名和可选端口,不带末尾 `/`。
|
||||
- 域名优先取 `config.config.foreverUrlAddr`;无有效值时取 `config.newAddressInfo.foreverUrlAddr`。移除配置中的路径、查询参数和锚点,与前端 canonical 保持一致。
|
||||
- 域名固定为 `https://huangguocg.com`,与前端 canonical(`src/lib/site.ts` 的 `SITE_ORIGIN`)保持一致,不读取 `foreverUrlAddr`。
|
||||
- 不使用 API 域名、CDN 域名、请求 Host、临时访问域名或本地地址作为页面域名。
|
||||
- 生成任务没有有效正式域名时,不猜测域名;暂停本次发布并保留上一份成功结果。
|
||||
- 页面 URL 以 `/` 结尾;sitemap 中使用绝对地址 `D + 规范路径`。
|
||||
@@ -93,8 +93,8 @@ sitemap 提交页面 URL,不写入用户凭证或受限媒体源。
|
||||
- 更多栏目当前使用有限首页栏目快照:类型 `1` 取实际作品列表,类型 `3` 取实际专题列表,以实际条目数为 `totalCount`。SEO 层取 `pageSize = max(24, totalCount)`,因此当前只发布栏目基础地址,不生成 `/config/{key}/page/2/` 等额外分页。
|
||||
- 第一页只提交基础地址,不额外提交 `/page/1/`。
|
||||
- 第 2 页及以后保留自己的 canonical,例如 `/shorts/page/2/`,不统一归并到第一页。
|
||||
- 作品详情和播放页的 `/page/{n}/` 是评论分页;`n > 1` 时不进入 sitemap。
|
||||
- 搜索、收藏、历史、已购和充值即使有分页,也不进入 sitemap。
|
||||
- 作品详情和播放页没有分页(评论已删除),`/page/{n}/` 返回 404,不进入 sitemap。
|
||||
- 搜索即使有分页,也不进入 sitemap;个人中心和充值页已删除。
|
||||
|
||||
## 4. Canonical 规则
|
||||
|
||||
@@ -152,13 +152,6 @@ sitemap 提交页面 URL,不写入用户凭证或受限媒体源。
|
||||
| 独立入口 | `/navigation/` | `noindex,follow` |
|
||||
| 回家的路 | `/home-road/` | `noindex,follow` |
|
||||
| 福利应用 | `/apps/` | `noindex,follow` |
|
||||
| 个人中心 | `/member/center/`、`/info/user-center/` | `noindex,nofollow` |
|
||||
| 收藏 | `/member/favorites/`,包括分页 | `noindex,nofollow` |
|
||||
| 历史 | `/member/history/`,包括分页 | `noindex,nofollow` |
|
||||
| 已购 | `/member/purchased/`,包括分页 | `noindex,nofollow` |
|
||||
| 账号设置 | `/member/settings/`、`/info/settings/` | `noindex,nofollow` |
|
||||
| 充值及 VIP | `/info/deposit/`、`/info/deposit/vip/`,包括支持的分页 | `noindex,nofollow` |
|
||||
| 意见反馈 | `/info/feedback/` | `noindex,nofollow` |
|
||||
|
||||
以上页面及其参数变体均不进入 sitemap。
|
||||
|
||||
@@ -176,13 +169,11 @@ sitemap 提交页面 URL,不写入用户凭证或受限媒体源。
|
||||
| 情况 | 当前前端行为 | 后端生成处理 |
|
||||
| --- | --- | --- |
|
||||
| 空公开列表 | 接口成功确认 `totalCount=0` 时,第一页 `noindex,follow`,仍返回 200 | 不提交 |
|
||||
| 详情或播放页评论分页 | `/detail/{key}/page/{n}/`、`/play/{key}/{chapterId}/page/{n}/`,`n>1` 时 `noindex,follow` | 不提交 |
|
||||
| 非默认列表排序 | 除榜单和更多栏目外,公开列表 `sort != 1` 时 noindex | 只生成无参数的默认地址 |
|
||||
| 非法列表排序 | 公开列表的 `sort` 不属于 `1、2、3` 时 noindex;未传时默认 `1` | 不生成非法变体 |
|
||||
| 非默认评论排序 | 存在 `commentSort` 且值不等于字符串 `2` 时 noindex | 不生成参数变体 |
|
||||
| 更多栏目内容不足或无效 | 已存在栏目缺少自己的标题、正文简介或有效卡片时 `noindex,follow`;找不到启用的类型 `1/3` 栏目时按资源缺失处理 | 不提交 |
|
||||
| 播放页条件不足 | 预告、纯解锁提示、无有效正片或无观看权限时 `noindex,follow` | 不提交 |
|
||||
| 明确禁止索引或需要登录 | `indexable=false` 或 `loginRequired=true` 时 noindex | 不提交 |
|
||||
| 明确禁止索引 | `indexable=false` 时 noindex | 不提交 |
|
||||
| 无效路由或不存在的资源 | 返回 404,且无 canonical | 不提交 |
|
||||
| 已确认越界的分页 | 返回 404,且无 canonical | 不提交 |
|
||||
| 临时取数故障 | `failed` 或 `unavailable` 时返回 500,且无 canonical | 不将故障误判为删除;保留上次成功结果,稍后重试 |
|
||||
@@ -190,7 +181,7 @@ sitemap 提交页面 URL,不写入用户凭证或受限媒体源。
|
||||
补充约定:
|
||||
|
||||
- 榜单和更多栏目可以接受 `sort=2/3`,但 canonical 仍不含参数;sitemap 不重复提交这些参数地址。
|
||||
- 作品详情的评论数为 0,不等于作品内容为空,不能按空列表规则排除作品详情。
|
||||
- 推荐视频为空不等于作品内容为空,不能按空列表规则排除作品详情。
|
||||
- 不存在的内容与临时故障必须区分;无法可靠判断一批内容时,不发布因取数失败而缺项的新结果。
|
||||
|
||||
## 7. 建议的生成与发布约定
|
||||
|
||||
@@ -171,3 +171,21 @@ H.264/H.265 兼容测试另覆盖 MSE/原生 HLS 编码错误回退、签名与
|
||||
浏览器使用真实页面及未修改的官方 SDK,测试专用包装通过 SDK 支持的单次事件地址参数把请求送入本机接收端,避开官方域名解析器对配置地址的 HTTPS 要求。已验证大图广告展示/点击、宫格展示/点击、页面访问、内容曝光,以及原生页面跳转前的内容点击均实际发出带 `event_sig` 的网络记录。UI 点击和弹窗滚动经浏览器执行,未向正式统计后台发测试事件。未验证正式部署的反向代理和统计后台入库结果。
|
||||
|
||||
最终验证:测试环境构建(含 TypeScript)及全部 323 项回归测试通过。最后一轮本机浏览器验证收到 78 条带签名的 SDK 事件,其中 `advertising` 为 show 21、click 2、close 21;大图广告的三种行为均到达,宫格关闭只覆盖实际曝光的广告,关闭未增加 `ad_click`。另外一轮已确认原生页面跳转前的 `app_pageitem_click` 实际到达,内容父级字段为字符串 `0`。所有网络验证仅使用本地模拟业务数据和本地测试签名配置。
|
||||
|
||||
## 2026-10-27 移除埋点与客服、切换接口域名
|
||||
|
||||
删除 Web SDK 及埋点适配层、`X-SDK-Common`/`X-Tracker-*` 请求头透传、内容与广告的追踪属性和相关环境变量;删除意见反馈页(`/info/feedback/` 返回 404)、`feedback/add` 代理白名单、页脚/侧栏/播放页/充值页的反馈与客服入口及样式。上游接口统一为 `https://webhgcgapi.mfcg.me`;配置和快照都没有永久域名时,canonical 使用 `https://huangguocg.com`。类型检查、生产构建通过;除部署脚本测试因中文目录名被 URL 编码导致找不到 `node_modules` 外,其余测试全部通过。
|
||||
|
||||
## 2026-10-27 删除充值、用户中心、登录与付费解锁;品牌与联系方式
|
||||
|
||||
删除充值/VIP(`/info/deposit/*`)、个人中心(`/member/*`、`/info/user-center/`、`/info/settings/`)、登录注册/找回密码/退出、头像与资料修改以及付费章节解锁;对应页面返回 404,代理白名单只保留游客会话与浏览、点赞、收藏、评论所需接口。旧版本遗留的已登录 Cookie 失效后自动换成游客,不再提示登录。付费集保留锁定标记和免费预告,播放区提示“本集为付费内容,暂不可观看”。
|
||||
|
||||
站点地址(canonical、sitemap、导航页线路与永久入口、回家的路、详情页官方地址)固定为 `https://huangguocg.com`;导航站名固定为“黄果吃瓜”,页面上写死的“91短剧”改为“黄果吃瓜”;logo、favicon、touch icon、App 图标与分享图换成黄果图标。联系方式与其他黄果站点一致,只保留官方 TG `@jbd125`。类型检查、生产构建通过,307 项测试中除部署脚本测试(中文目录名被 URL 编码,环境问题,改动前同样失败)外全部通过。
|
||||
|
||||
## 2026-10-27 详情页、播放页、卡片与首页 banner 改版;评论改为推荐视频
|
||||
|
||||
为收录及与其他黄果站点区分,短剧卡片、推荐视频条目、首页 banner、详情页和播放页改用独立的 `hg-*` 结构和样式:全部内容由服务端输出,使用 `article`、`h1/h2/h3`、`dl` 信息表、描述性链接 title 与“《剧名》海报”类 alt;首页 banner 以 `<ol>` 输出全部推荐的真实详情链接;详情/播放页增加“剧情简介”“全集列表”“推荐视频”小标题。评论读取、发表、点赞及评论分页全部删除,`/detail|play/.../page/N/` 返回 404,代理不再放行 `comment/*`;评论区换成 `playlet/guess-like/list` 的 12 部推荐。桌面与 390px 手机宽度截图核对;类型检查、生产构建通过,除部署脚本环境问题外测试全部通过。
|
||||
|
||||
## 2026-10-27 全部短剧和视频免费观看
|
||||
|
||||
前端去掉付费判断:`chapterAccess` 只看接口是否返回有效视频地址,`needUnlock`/`needVip`/`payType`/`canWatch` 不再影响播放、选集链接、SSR 正片地址和索引;选集付费角标、`play-paywalled-content` 及 `isAccessibleForFree:false` 结构化数据删除,帮助中心常见问题改为“全部免费观看”。真实接口核对:付费章节(如 14193 第 2 集起)`chapter/detail` 返回 `videoUrl: ''`,地址由后端签名下发,需后台将章节设为免费后前端即可播放。
|
||||
|
||||
Reference in New Issue
Block a user