From a141d5debce61b5e0e9ba0c28a43a62216d11d73 Mon Sep 17 00:00:00 2001
From: MB-X Bilibili Pipeline <mbx-bili-pipeline@localhost>
Date: Sat, 05 Sep 2026 22:31:14 +0800
Subject: [PATCH] chore(project-info): archive Bilibili dynamic acb922edb4e9
---
dev/project-dev/bili_dynamic_collector.py | 30 +++++++++++++++++++++++-------
1 files changed, 23 insertions(+), 7 deletions(-)
diff --git a/dev/project-dev/bili_dynamic_collector.py b/dev/project-dev/bili_dynamic_collector.py
index 003f4b2..fd96e5e 100644
--- a/dev/project-dev/bili_dynamic_collector.py
+++ b/dev/project-dev/bili_dynamic_collector.py
@@ -593,12 +593,17 @@
if refresh_raw is not None:
if not isinstance(refresh_raw, Mapping):
raise CollectorError("E_CONFIG", "config.refresh must be an object.")
+ if creator_uid is None:
+ raise CollectorError("E_CONFIG", "refresh requires creator.uid.", safety=True)
+ refresh_page = urlsplit(dynamic_url)
if (
- creator_name.strip() != "青枫浦上Q"
- or creator_uid != "1420210197"
- or dynamic_url != "https://space.bilibili.com/1420210197/dynamic"
+ refresh_page.scheme != "https"
+ or refresh_page.hostname != "space.bilibili.com"
+ or refresh_page.query
+ or refresh_page.fragment
+ or refresh_page.path.rstrip("/") != f"/{creator_uid}/dynamic"
):
- raise CollectorError("E_CONFIG", "refresh supports only the registered creator identity.", safety=True)
+ raise CollectorError("E_CONFIG", "refresh page URL must bind creator.uid.", safety=True)
def bounded_int(field: str, default: int, lower: int, upper: int) -> int:
raw = refresh_raw.get(field, default)
@@ -1617,7 +1622,14 @@
handoff = subparsers.add_parser("handoff", help="Generate an unsent canonical Codex-native video handoff")
handoff.add_argument("--output", type=Path, help="Optional no-overwrite Markdown output path")
handoff.add_argument("--now", help="Optional offset-aware ISO-8601 clock for deterministic runs")
- begin = subparsers.add_parser("refresh-begin", help="Create one durable hourly browser-refresh run")
+ run_refresh = subparsers.add_parser(
+ "refresh-run",
+ help="Fail closed: trusted local-unpacked extension/Host is required",
+ )
+ run_refresh.add_argument("--now", help="Optional offset-aware ISO-8601 clock for deterministic runs")
+ begin = subparsers.add_parser(
+ "refresh-begin", help="Recover an existing refresh run (new schema3 runs require refresh-run)"
+ )
begin.add_argument("--now", help="Optional offset-aware ISO-8601 clock for deterministic runs")
commit = subparsers.add_parser("refresh-commit", help="Validate and commit one local browser evidence file")
commit.add_argument("--input", required=True, type=Path, help="Final browser evidence JSON from refresh-begin")
@@ -1641,12 +1653,16 @@
if args.output:
output = args.output if args.output.is_absolute() else Path.cwd() / args.output
result = generate_handoff(config, output, now)
- elif args.command in {"refresh-begin", "refresh-commit"}:
+ elif args.command in {"refresh-run", "refresh-begin", "refresh-commit"}:
from bili_dynamic_refresh import refresh_begin, refresh_commit
if config.refresh is None:
raise CollectorError("E_CONFIG", "config.refresh is required for refresh commands.")
- if args.command == "refresh-begin":
+ if args.command == "refresh-run":
+ from bili_dynamic_refresh_controller import run_product
+
+ result = run_product(config, config_path_value, now)
+ elif args.command == "refresh-begin":
result = refresh_begin(config, config_path_value, now)
else:
result = refresh_commit(config, config_path_value, absolute_lexical(args.input), now)
--
Gitblit v1.9.3