Skip to content

chore: 新增 ptd-site-definition skill;站点定义头注释补充上游关联链接 - #1521

Merged
Rhilip merged 2 commits into
pt-plugins:masterfrom
Rhilip:chore/site-definition-skill
Sep 15, 2026
Merged

Rhilip merged 2 commits into
pt-plugins:masterfrom
Rhilip:chore/site-definition-skill

Conversation

@Rhilip

@Rhilip Rhilip commented Sep 15, 2026

Copy link
Copy Markdown
Collaborator

背景

把站点定义(src/packages/site/definitions/*.ts)编写时依赖的约定沉淀成一份项目级 skill:新增站点、选引擎、写 selectors、覆写引擎方法时可直接按文档走,并附带一个静态校验器兜住常见字段错误。

本次改动只新增 .dsh/skills/ptd-site-definition/,不改动任何源码(16 files / +2894)。

内容

  • SKILL.md:加载与实例化机制(import.meta.glob 免注册、default class > schema > 按 type 三级回落、SchemaMetadata 不会自动合并timezoneOffset 缺省规则)、新增/修改定义的工作流、硬性规则(id/version/urls/legacyUrls/favicon/isDead)、按需读取索引、交付前检查清单
  • references/workflow.mdmetadata-fields.mdselectors-and-filters.mddebugging.md
  • references/engines/:NexusPHP、Unit3D、Gazelle、GazelleJSONAPI、AvistazNetwork、Luminance、Rartracker、TCG、AbstractPrivateSite、AbstractBittorrentSite 共 10 篇,每篇结构一致——判定特征 → SchemaMetadata 默认值表(逐项带源码行号)→ 最小可用骨架 → 搜索要点 → userInfo 要点 → 可覆写类方法 → 范例定义 → 常见坑
  • scripts/check-site-definition.mjs:无第三方依赖的静态校验器,支持单文件检查与全量扫描;检查文件名与 id 一致性、必填字段、typeurls(含 rot13 还原)、timezoneOffset 格式、category key 重复、levelRequirements id 重复与非递增等

验证

  • 校验器在 definitions/ 下全部定义上跑通;除下述三处既有问题外无其他 error
  • 文档内 698 处「文件:行号」引用已用脚本逐条核对,全部落在对应文件行数范围内;SKILL.md 的 15 个内部链接全部可达
  • SKILL.md 骨架生成的探针定义通过 pnpm check(全仓零 TS 错误),验证后已删除,未留在提交中

顺带发现(本 PR 未改动源码)

校验器扫出三处既有的字段冲突,供参考:

  • definitions/beyondhd.tsdefinitions/ptskit.tscategory 存在重复 keytypes/search.ts:208-217 明确要求同一站点内 key 不重复)
  • definitions/ultrahd.tslevelRequirements 有两个 id: 7

需要的话可以另开 PR 修。


更新 58c561a:站点定义头注释补充上游关联链接(236 files / +846 -2,全为注释行)

src/packages/site/definitions/*.ts 的文件头注释统一补充四类来源标注(顺序固定):

标签 来源 链接形式
@JackettDefinitions Jackett/Jackett blob/master/src/Jackett.Common/Definitions/<slug>.yml.../Indexers/Definitions/<Name>.cs
@JackettIssue 同上 既有的人工 issue 链接全部保留
@PTPPDefinitions pt-plugins/PT-Plugin-Plus blob/dev/resource/sites/<host>/config.json(精确到子目录层级)
@PDSDefinitions mantou568/pre-dessert-sites blob/main/site_config/sites/<id>.json
@PTMDefinitions JustLookAtNow/pt_mate blob/master/assets/sites/<id>.json

覆盖 252/302 个定义文件(Jackett 190、PTPP 113、PDS 144、PTM 40);50 个在上游均无对应站点的文件保持不变。匹配依据:克隆四个上游仓库,按「域名精确(含 additional_domain/baseUrls/legacyUrls)> id slug > 保守前缀(≥4 字符,兼容 aither→aither-api、1ptba→1ptbar 等)」建立映射,全部链接均指向实际存在的上游文件。对 urls 使用 rot13 混淆的站点(如 hdcity)已先解码再匹配;@JackettIssue 只增不删;被替换标签原有的自由文本(如 hdroute 的「完全自定义采集配置」)降级为普通注释行保留。

验证:pnpm check(vue-tsc)零错误;skill 校验器全量扫描与改动前基线一致(0 新增错误);prettier 无回归;git diff 确认全部 hunk 均为注释行。

- SKILL.md:站点加载与实例化机制、新增/修改定义的工作流、硬性规则、按需读取索引、交付前检查清单
- references/:workflow、metadata-fields、selectors-and-filters、debugging 四篇通用文档
- references/engines/:NexusPHP、Unit3D、Gazelle、GazelleJSONAPI、AvistazNetwork、Luminance、Rartracker、TCG、私有站模板、BT 基类共 10 篇引擎文档
- scripts/check-site-definition.mjs:站点定义静态校验器(无第三方依赖,支持单文件检查与全量扫描)

文档结论均以本仓库源码为准并标注「文件:行号」;校验器已在 definitions/ 下全部定义上跑通,除本 skill 自身内容外未改动任何源码。
- @JackettDefinitions/@JackettIssue:按首选匹配补全 Jackett 定义/索引器文件链接,保留既有 issue 链接
- @PTPPDefinitions:链接 pt-plugins/PT-Plugin-Plus 的 resource/sites/<host>/config.json
- @PDSDefinitions:链接 mantou568/pre-dessert-sites 的 site_config/sites/<id>.json
- @PTMDefinitions:链接 JustLookAtNow/pt_mate 的 assets/sites/<id>.json
- 仅改动文件头注释,无逻辑变更;vue-tsc 通过
@Rhilip
Rhilip merged commit 607222d into pt-plugins:master Sep 15, 2026
1 check passed
@Rhilip
Rhilip deleted the chore/site-definition-skill branch September 15, 2026 15:17
@Rhilip Rhilip changed the title chore(skills): 新增 ptd-site-definition 站点定义生成 skill chore: 新增 ptd-site-definition skill;站点定义头注释补充上游关联链接 Sep 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant