From 2ac7f274a5918422d50829f35d63e9c7bd40d93b Mon Sep 17 00:00:00 2001 From: laincat-bot Date: Wed, 28 Oct 2026 16:52:35 +0800 Subject: [PATCH] fix(surge): complete standalone HongGuo DSP and telemetry coverage --- Surge/Advertising/HongGuo.sgmodule | 8 +++++++- Surge/Readme.md | 25 +++++++++++++++++++++++++ tools/tests/test_surge_rules.py | 13 +++++++++++++ 3 files changed, 45 insertions(+), 1 deletion(-) diff --git a/Surge/Advertising/HongGuo.sgmodule b/Surge/Advertising/HongGuo.sgmodule index 00467b2..bf7baa9 100644 --- a/Surge/Advertising/HongGuo.sgmodule +++ b/Surge/Advertising/HongGuo.sgmodule @@ -6,7 +6,8 @@ # 域名来源:https://github.com/bluee1111/egern-hongguo-adblock/blob/main/hongguo-adblock.yaml(MIT) # 埋点与广告 API 条目来源:https://github.com/k6nfmm7dbr-commits/hongguo-lite(MIT) -# 核对日期:2026-10-16。上游为 Egern 格式,此处改写为 Surge [Rule] 语法,域名集保持一致。 +# 核对日期:2026-10-28。按上游逐项核对并收窄为 Surge [Rule],保留正片、图片与 API 例外。 +# 其他来源、最后提交日期与取舍:../Readme.md「红果模块与来源核对」。 # # 保留上游的必要例外,必须写在本模块的 REJECT 之前: # 正片 v*-reading-video*.qznovelvod.com / v*-reading-videocdn*.qznovelvod.com @@ -52,6 +53,9 @@ DOMAIN-SUFFIX,pangolin-sdk-toutiao1.com,REJECT DOMAIN-SUFFIX,pglstatp-toutiao.com,REJECT DOMAIN-SUFFIX,pglstatp-toutiao-b.com,REJECT DOMAIN-SUFFIX,pangolin-sdk-toutiao-b.com,REJECT +# hongguo-lite 的 pangolin 关键词覆盖这两个 DSP 域;使用后缀限定匹配边界。 +DOMAIN-SUFFIX,pangolin-dsp-toutiao.com,REJECT +DOMAIN-SUFFIX,pangolin-dsp-toutiao-b.com,REJECT DOMAIN-SUFFIX,pangle.io,REJECT DOMAIN-WILDCARD,api-access.pangolin-sdk-toutiao*.com,REJECT DOMAIN-WILDCARD,log-api.pangolin-sdk-toutiao*.com,REJECT @@ -66,6 +70,8 @@ DOMAIN,is-lq.snssdk.com,REJECT DOMAIN-WILDCARD,mon*-misc-lq.fqnovel.com,REJECT DOMAIN-WILDCARD,mon*-misc.fqnovel.com,REJECT DOMAIN-WILDCARD,rtlog*-applog-lq.fqnovel.com,REJECT +# 收窄上游 applog.fqnovel.com 关键词;README 交叉核对了 log3 / log5。 +DOMAIN-WILDCARD,log*-applog.fqnovel.com,REJECT # ── 红果 / 番茄系广告投放接口 ──────────────────────────────────────────────── # 只匹配 ads*-normal,不扩大到 ads*.zijieapi.com,避免误杀正常接口。 diff --git a/Surge/Readme.md b/Surge/Readme.md index 5f4ac50..fe65f9f 100644 --- a/Surge/Readme.md +++ b/Surge/Readme.md @@ -46,3 +46,28 @@ FINAL,Proxy > ⚠️ `DOMAIN-SET` 与 `RULE-SET` 文件格式不同,不能互换。AI / Ozon 的 `.Extra.list` 补集仍使用 `RULE-SET`。完整订阅示例见 [`Ruleset/readme.md`](Ruleset/readme.md),格式定义以 [Surge 官方手册](https://manual.nssurge.com/)为准。 +## 红果模块与来源核对 + +[`HongGuo.sgmodule`](Advertising/HongGuo.sgmodule) 可单独启用,无需 MITM 或证书。 +2026-10-28 补入 `pangolin-dsp-toutiao.com`、`pangolin-dsp-toutiao-b.com` 两个域名后缀, +以及 `log*-applog.fqnovel.com` 上报规则。依据是 +[hongguo-lite 的拦截清单及交叉核对说明](https://github.com/k6nfmm7dbr-commits/hongguo-lite/blob/main/README.md); +将其宽泛关键词收窄,补齐独立使用时的缺口。既有正片、图片、登录与评论例外保持原样。 + +以下日期为关键规则文件最后提交的香港日期,核对时间为 2026-10-28,不代表设备实测结果: + +| 来源 | 文件最后提交 | 许可核对 | 可参考的增量与限制 | +|---|---|---|---| +| [egern-hongguo-adblock](https://github.com/bluee1111/egern-hongguo-adblock/blob/main/hongguo-adblock.yaml) | 2026-10-09 | 仓库 MIT | 现有主来源,保留 reading-ad 与正片 CDN 的区分。 | +| [hongguo-lite](https://github.com/k6nfmm7dbr-commits/hongguo-lite/blob/main/surge/hongguo-lite.sgmodule) | 2026-10-06 | 仓库 MIT | 本次三条规则的依据;Plus 版路径拦截需要 MITM。 | +| [LoonKissSurge 番茄规则](https://github.com/QingRex/LoonKissSurge/blob/main/Surge/番茄小说去广告.sgmodule) | 2025-11-14 | 未发现模块统一许可证;README 要求遵循原作者许可 | 可交叉核对 log3/5、rtlog3/5 上报;含风控、登录与直播相关拦截,不宜整份合入。 | +| [HongGuo-Surge-Native](https://github.com/doovvip/sublink-worker2/blob/main/surge-modules/HongGuo-Surge-Native.sgmodule) | 2026-09-05 | 仓库 MIT | 纯域名部分已有覆盖;额外路径拦截、下载/画质响应脚本需要 MITM,后两者上游仍标为实验。 | +| [zqzess FanQieNovel](https://github.com/zqzess/rule_for_quantumultX/blob/master/Surge/Module/FanQieNovel.sgmodule) | 2024-03-06 | 未发现仓库许可证 | 可作历史交叉核对;含 zijieapi 关键词、bytedance.com 整域及视频域拦截,不建议直接导入。 | +| [fanqienovel-adguardhome-rules](https://github.com/gitlawyercan/fanqienovel-adguardhome-rules/blob/main/fanqienovel.txt) | 2026-10-05 | 文件头及 README 声明 MIT,未发现所链接的 LICENSE 文件 | 重点参考正片、登录、评论白名单;额外统计/素材域和直播、风控拦截需请求记录验证,不自动搬入。 | + +本次仅补入上述三条域名规则;其余来源用于交叉核对,不引入远程脚本、VIP 改写或证书固定绕过。 +离线测试验证新规则、非目标域名边界、既有 DIRECT 和 reading-ad 首条命中;不能替代 Surge 内核或真机播放测试。 +域名规则可能影响共用这些域名的其他字节系应用;拦截广告和上报也可能影响金币/奖励入口。 +设备上应复测冷启动、连续播放、切集、封面、登录和评论,并查看实际命中记录。 +与通用 Advertising 模块组合时,仍需留意其 pre-matching 规则;普通 DIRECT 无法覆盖提前命中的 REJECT。 + diff --git a/tools/tests/test_surge_rules.py b/tools/tests/test_surge_rules.py index d96f94e..c5bd7fa 100644 --- a/tools/tests/test_surge_rules.py +++ b/tools/tests/test_surge_rules.py @@ -31,6 +31,19 @@ def hongguo_policy(host): class SurgeArtifactTests(unittest.TestCase): + def test_hongguo_standalone_dsp_and_applog(self): + for host in ("pangolin-dsp-toutiao.com", "pangolin-dsp-toutiao-b.com", + "api.pangolin-dsp-toutiao.com", "api.pangolin-dsp-toutiao-b.com", + "log0-applog.fqnovel.com", "log3-applog.fqnovel.com", + "log5-applog.fqnovel.com", "log99-applog.fqnovel.com"): + with self.subTest(host=host): + self.assertEqual(hongguo_policy(host), "REJECT") + for host in ("pangolin-dsp-toutiao.com.example.org", "notpangolin-dsp-toutiao.com", + "pangolin.example.com", "api3-applog.fqnovel.com", + "log3-applog.fqnovel.com.example.org", "login.fqnovel.com"): + with self.subTest(host=host): + self.assertIsNone(hongguo_policy(host)) + def test_hongguo_ads_reject_before_cdn_fallback(self): for part in ("reading-ad", "bd-daily-reading-ad", "se-daily-reading-ad", "se-sjy-daily-reading-ad"): for prefix in ("v1", "v6", "v99"):