feat(monitor): 关掉链接校验 —— 认不出来的目标原样收下
Deploy VitePress site to Pages / build (push) Waiting to run
Deploy VitePress site to Pages / Deploy (push) Blocked by required conditions

以前新建任务粘目标时是白名单校验:链接形状不匹配平台的规则就拒收(「无法从链接中
解析出博主主页 ID」/「无法识别的目标」),而 v.douyin.com 那种分享短链是**明确**
拒绝的。平台一改链接形状,用户粘一个完全正确的链接也只能干瞪眼。

现在认不出来的一律原样存下(截到 128 字符,external_id 是 varchar(128),而带参数的
完整链接常常 130+)。只留两件不能省的事:

* 空值仍然拒收 —— 空目标连库都写不进去;
* **不许跨平台误抠** —— 小红书的正则不会从抖音链接里抠出一个 id。那是「看起来正常
  但完全错误」的目标,比原样存更糟。这条有测试钉着。

代价(已知并接受):认不出的值会变成永远抓不到东西的目标。好在不静默 —— 跑完一轮
ingest 会发现「一条都没抓到」并报出来,而且会先排除登录问题。

顺带删掉 short_link_hosts:现在没人读它了,留着会让下一个人以为短链还是被拒的。
This commit is contained in:
2026-10-12 16:54:31 +08:00
parent 736ba9b12d
commit 6aba3a73c1
3 changed files with 92 additions and 46 deletions
-5
View File
@@ -82,9 +82,6 @@ class PlatformAdapter:
# 也允许直接粘贴裸 id —— 但两边的 id 形状不同,所以分开。
creator_bare_re: Pattern
note_bare_re: Pattern
# 短链(v.douyin.com 这种)无法在不发请求的情况下还原出 id,解析时单独报错,
# 好过存一个聚不出目标的值进去。
short_link_hosts: Tuple[str, ...]
note_fields: Mapping[str, str]
comment_fields: Mapping[str, str]
@@ -155,7 +152,6 @@ XHS = PlatformAdapter(
),
creator_bare_re=_XHS_BARE_RE,
note_bare_re=_XHS_BARE_RE,
short_link_hosts=(),
note_fields={
"note_id": "note_id",
"title": "title",
@@ -204,7 +200,6 @@ DY = PlatformAdapter(
# 又不会把 19 位的作品号误当成博主。
creator_bare_re=re.compile(r"^[A-Za-z0-9_-]{20,128}$"),
note_bare_re=re.compile(r"^\d{8,25}$"),
short_link_hosts=("v.douyin.com",),
note_fields={
"note_id": "aweme_id",
"title": "title",