diff --git a/code/app/api/middleware/SeoCollectorTokenAuth.php b/code/app/api/middleware/SeoCollectorTokenAuth.php new file mode 100644 index 0000000..4f1aab2 --- /dev/null +++ b/code/app/api/middleware/SeoCollectorTokenAuth.php @@ -0,0 +1,71 @@ +resolveExpectedToken(); + if ($expectedToken === '') { + return $this->jsonError('9999', 'SEO_COLLECTOR_TOKEN 未配置'); + } + + $providedToken = $this->resolveProvidedToken($request); + if ($providedToken === '' || !hash_equals($expectedToken, $providedToken)) { + return $this->jsonError('9995', '采集 token 无效'); + } + + return $next($request); + } + + protected function resolveExpectedToken(): string + { + $candidates = [ + trim((string)getenv('SEO_COLLECTOR_TOKEN')), + trim((string)env('SEO_COLLECTOR_TOKEN', '')), + trim((string)($_SERVER['SEO_COLLECTOR_TOKEN'] ?? '')), + trim((string)($_ENV['SEO_COLLECTOR_TOKEN'] ?? '')), + ]; + foreach ($candidates as $value) { + if ($value !== '') { + return $value; + } + } + + return ''; + } + + protected function resolveProvidedToken(Request $request): string + { + $headerToken = trim((string)$request->header('x-seo-collector-token', '')); + if ($headerToken !== '') { + return $headerToken; + } + + $bearer = trim((string)$request->header('authorization', '')); + if (preg_match('/^Bearer\s+(.+)$/i', $bearer, $matches)) { + return trim((string)($matches[1] ?? '')); + } + + $queryToken = trim((string)$request->get('token', '')); + if ($queryToken !== '') { + return $queryToken; + } + + return trim((string)$request->post('token', '')); + } + + protected function jsonError(string $code, string $message) + { + return json([ + 'code' => $code, + 'msg' => $message, + 'data' => [], + ], 200, [], [JSON_UNESCAPED_UNICODE]); + } +} diff --git a/code/app/public/_admin_templates/domain-import-health-workbench/20260412/141532_scheduler_5fb0d6/import-health-workbench.summary.html b/code/app/public/_admin_templates/domain-import-health-workbench/20260412/141532_scheduler_5fb0d6/import-health-workbench.summary.html new file mode 100644 index 0000000..322af0c --- /dev/null +++ b/code/app/public/_admin_templates/domain-import-health-workbench/20260412/141532_scheduler_5fb0d6/import-health-workbench.summary.html @@ -0,0 +1 @@ +Domain Import Health Workbench

Domain Import Health Workbench

generated_at: 2026-04-12T14:15:32+08:00

health_label: worsening / stage: idle

hero_summary: 当前还没有导入记录,先从批量导入建立健康主线。

Priority Actions

Top Failed Stages

Recovery Mix

primary_path: none

resolved_total: 0 / rerun: 0 / remediation: 0

\ No newline at end of file diff --git a/code/app/public/_admin_templates/domain-import-health-workbench/20260412/141532_scheduler_5fb0d6/import-health-workbench.summary.json b/code/app/public/_admin_templates/domain-import-health-workbench/20260412/141532_scheduler_5fb0d6/import-health-workbench.summary.json new file mode 100644 index 0000000..959e608 --- /dev/null +++ b/code/app/public/_admin_templates/domain-import-health-workbench/20260412/141532_scheduler_5fb0d6/import-health-workbench.summary.json @@ -0,0 +1,96 @@ +{ + "generated_at": "2026-04-12T14:15:32+08:00", + "health_label": "worsening", + "workbench_stage": "idle", + "import_runs_count": 0, + "queue_count": 0, + "active_count": 0, + "resolved_count": 0, + "resolved_by_rerun_count": 0, + "resolved_by_remediation_count": 0, + "rerun_runs_count": 1, + "remediation_runs_count": 0, + "self_healing_runs_count": 0, + "manual_attention_count": 0, + "manual_handle_runs_count": 0, + "latest_import_run": [], + "latest_failed_item": [], + "latest_rerun_run": { + "run_id": "141325_failed_queue_57b4d0", + "run_root_public": "/www/wwwroot/diff-maccms/SEONexus/code/app/public/_admin_templates/domain-import-reruns/20260412/141325_failed_queue_57b4d0", + "processed_count": 0, + "passed_count": 0, + "failed_count": 0, + "hosts": [], + "summary_json_path": "/www/wwwroot/diff-maccms/SEONexus/code/app/public/_admin_templates/domain-import-reruns/20260412/141325_failed_queue_57b4d0/import-rerun.summary.json", + "summary_html_path": "/www/wwwroot/diff-maccms/SEONexus/code/app/public/_admin_templates/domain-import-reruns/20260412/141325_failed_queue_57b4d0/import-rerun.summary.html", + "updated_at": "2026-04-12T14:13:25+08:00" + }, + "latest_remediation_run": [], + "latest_self_healing_run": [], + "latest_manual_attention_item": [], + "latest_manual_handle_run": [], + "failure_trend": { + "latest_failed_count": 0, + "previous_failed_count": 0, + "direction": 0, + "label": "flat" + }, + "resolved_hosts_preview": [], + "recent_import_runs": [], + "recent_rerun_runs": [ + { + "run_id": "141325_failed_queue_57b4d0", + "run_root_public": "/www/wwwroot/diff-maccms/SEONexus/code/app/public/_admin_templates/domain-import-reruns/20260412/141325_failed_queue_57b4d0", + "processed_count": 0, + "passed_count": 0, + "failed_count": 0, + "hosts": [], + "summary_json_path": "/www/wwwroot/diff-maccms/SEONexus/code/app/public/_admin_templates/domain-import-reruns/20260412/141325_failed_queue_57b4d0/import-rerun.summary.json", + "summary_html_path": "/www/wwwroot/diff-maccms/SEONexus/code/app/public/_admin_templates/domain-import-reruns/20260412/141325_failed_queue_57b4d0/import-rerun.summary.html", + "updated_at": "2026-04-12T14:13:25+08:00" + } + ], + "recent_remediation_runs": [], + "recent_self_healing_runs": [], + "recent_manual_attention_items": [], + "recent_manual_handle_runs": [], + "manual_attention_buckets": { + "high": 0, + "medium": 0, + "low": 0 + }, + "top_failed_stages": [], + "recovery_mix": { + "resolved_total": 0, + "resolved_by_rerun_count": 0, + "resolved_by_remediation_count": 0, + "self_healing_runs_count": 0, + "primary_path": "none" + }, + "priority_actions": [ + { + "key": "import_runs", + "label": "先导入一批站点", + "summary": "当前还没有导入记录,先从批量导入开始建立主线数据。", + "action_key": "open_import_runs", + "action_label": "看最近导入记录", + "tag_type": "info" + }, + { + "key": "rerun_runs", + "label": "回看最近重跑", + "summary": "最近已有 1 笔重跑记录,可以先判断恢复主要靠重跑还是继续卡住。", + "action_key": "open_rerun_runs", + "action_label": "看重跑记录", + "tag_type": "info" + } + ], + "hero_summary": "当前还没有导入记录,先从批量导入建立健康主线。", + "meta": { + "trigger": "async_job", + "self_healing_root": "/www/wwwroot/diff-maccms/SEONexus/code/app/public/_admin_templates/domain-import-self-healing" + }, + "summary_json_path": "/www/wwwroot/diff-maccms/SEONexus/code/app/public/_admin_templates/domain-import-health-workbench/20260412/141532_scheduler_5fb0d6/import-health-workbench.summary.json", + "summary_html_path": "/www/wwwroot/diff-maccms/SEONexus/code/app/public/_admin_templates/domain-import-health-workbench/20260412/141532_scheduler_5fb0d6/import-health-workbench.summary.html" +} diff --git a/code/app/public/_admin_templates/domain-import-reruns/20260412/141325_failed_queue_57b4d0/hosts.txt b/code/app/public/_admin_templates/domain-import-reruns/20260412/141325_failed_queue_57b4d0/hosts.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/code/app/public/_admin_templates/domain-import-reruns/20260412/141325_failed_queue_57b4d0/hosts.txt @@ -0,0 +1 @@ + diff --git a/code/app/public/_admin_templates/domain-import-reruns/20260412/141325_failed_queue_57b4d0/import-rerun.summary.html b/code/app/public/_admin_templates/domain-import-reruns/20260412/141325_failed_queue_57b4d0/import-rerun.summary.html new file mode 100644 index 0000000..f843157 --- /dev/null +++ b/code/app/public/_admin_templates/domain-import-reruns/20260412/141325_failed_queue_57b4d0/import-rerun.summary.html @@ -0,0 +1 @@ +Domain Import Rerun Summary

Domain Import Rerun Summary

generated_at: 2026-04-12T14:13:25+08:00

processed: 0 / passed: 0 / failed: 0

hoststatusfailed_stagemessage
\ No newline at end of file diff --git a/code/app/public/_admin_templates/domain-import-reruns/20260412/141325_failed_queue_57b4d0/import-rerun.summary.json b/code/app/public/_admin_templates/domain-import-reruns/20260412/141325_failed_queue_57b4d0/import-rerun.summary.json new file mode 100644 index 0000000..ba3cb80 --- /dev/null +++ b/code/app/public/_admin_templates/domain-import-reruns/20260412/141325_failed_queue_57b4d0/import-rerun.summary.json @@ -0,0 +1,15 @@ +{ + "processed_count": 0, + "passed_count": 0, + "failed_count": 0, + "items": [], + "queue_count": 0, + "generated_at": "2026-04-12T14:13:25+08:00", + "meta": { + "queue_count": 0, + "selected_host": "cnzhenbang.com", + "run_root": "/www/wwwroot/diff-maccms/SEONexus/code/app/public/_admin_templates/domain-import-runs" + }, + "summary_json_path": "/www/wwwroot/diff-maccms/SEONexus/code/app/public/_admin_templates/domain-import-reruns/20260412/141325_failed_queue_57b4d0/import-rerun.summary.json", + "summary_html_path": "/www/wwwroot/diff-maccms/SEONexus/code/app/public/_admin_templates/domain-import-reruns/20260412/141325_failed_queue_57b4d0/import-rerun.summary.html" +} diff --git a/code/app/public/_admin_templates/domain-import-reruns/20260412/141544_failed_queue_ad717a/hosts.txt b/code/app/public/_admin_templates/domain-import-reruns/20260412/141544_failed_queue_ad717a/hosts.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/code/app/public/_admin_templates/domain-import-reruns/20260412/141544_failed_queue_ad717a/hosts.txt @@ -0,0 +1 @@ + diff --git a/code/app/public/_admin_templates/domain-import-reruns/20260412/141544_failed_queue_ad717a/import-rerun.summary.html b/code/app/public/_admin_templates/domain-import-reruns/20260412/141544_failed_queue_ad717a/import-rerun.summary.html new file mode 100644 index 0000000..b1f1cff --- /dev/null +++ b/code/app/public/_admin_templates/domain-import-reruns/20260412/141544_failed_queue_ad717a/import-rerun.summary.html @@ -0,0 +1 @@ +Domain Import Rerun Summary

Domain Import Rerun Summary

generated_at: 2026-04-12T14:15:44+08:00

processed: 0 / passed: 0 / failed: 0

hoststatusfailed_stagemessage
\ No newline at end of file diff --git a/code/app/public/_admin_templates/domain-import-reruns/20260412/141544_failed_queue_ad717a/import-rerun.summary.json b/code/app/public/_admin_templates/domain-import-reruns/20260412/141544_failed_queue_ad717a/import-rerun.summary.json new file mode 100644 index 0000000..1a8daea --- /dev/null +++ b/code/app/public/_admin_templates/domain-import-reruns/20260412/141544_failed_queue_ad717a/import-rerun.summary.json @@ -0,0 +1,15 @@ +{ + "processed_count": 0, + "passed_count": 0, + "failed_count": 0, + "items": [], + "queue_count": 0, + "generated_at": "2026-04-12T14:15:44+08:00", + "meta": { + "queue_count": 0, + "selected_host": "cnzhenbang.com", + "run_root": "/www/wwwroot/diff-maccms/SEONexus/code/app/public/_admin_templates/domain-import-runs" + }, + "summary_json_path": "/www/wwwroot/diff-maccms/SEONexus/code/app/public/_admin_templates/domain-import-reruns/20260412/141544_failed_queue_ad717a/import-rerun.summary.json", + "summary_html_path": "/www/wwwroot/diff-maccms/SEONexus/code/app/public/_admin_templates/domain-import-reruns/20260412/141544_failed_queue_ad717a/import-rerun.summary.html" +} diff --git a/code/data/seo_copy_published/caosheninan-com/category_index/index.json b/code/data/seo_copy_published/caosheninan-com/category_index/index.json new file mode 100644 index 0000000..7320624 --- /dev/null +++ b/code/data/seo_copy_published/caosheninan-com/category_index/index.json @@ -0,0 +1,22 @@ +{ + "title": "{parent_category_name}热门分类入口 - {site_name}", + "keywords": "{parent_category_name},{parent_category_name}分类,{parent_category_name}推荐,{site_name}", + "description": "{site_name}汇总{parent_category_name}分类下的热门内容与细分方向,方便先按类型浏览,再继续进入更细的列表页或详情页。", + "intro_text": "如果你准备按题材找内容,这一页更适合先看{parent_category_name}分类入口,再决定下一步进入哪类列表。", + "category_intro": "{site_name}把{parent_category_name}的一级分类和细分方向集中到这里,适合先判断题材,再继续点进详情页。", + "intro_meta": "分类入口以浏览和分流为主,帮助用户先选方向,再进入内容列表、详情页和播放页。", + "guide_cards": [ + { + "title": "先选大类", + "text": "从电视剧、电影和专题分类开始,减少无效查找。" + }, + { + "title": "再按条件筛选", + "text": "结合地区、年份或热度,继续缩小目标范围。" + }, + { + "title": "最后进详情页", + "text": "确认标题和基础信息后,再进入播放页观看。" + } + ] +} diff --git a/code/data/seo_copy_published/caosheninan-com/category_list/default.json b/code/data/seo_copy_published/caosheninan-com/category_list/default.json new file mode 100644 index 0000000..c9a7bfd --- /dev/null +++ b/code/data/seo_copy_published/caosheninan-com/category_list/default.json @@ -0,0 +1,23 @@ +{ + "title": "最新资源内容列表 - 秉象影院-{category_name}在线观看", + "keywords": "{category_name}在线观看,最新资源,内容列表,推荐,热播,秉象影院", + "description": "这里是{category_name}的内容列表页,适合先浏览最新资源与推荐内容,再按年份、地区或更新情况继续筛选,最后进入详情页或播放页查看完整资料与在线播放入口。页面重点承接搜索与分类流量,帮助用户更快找到{category_name}相关作品。", + "intro_text": "先浏览{category_name}最新资源,再根据标题、年份和更新信息继续筛选,找到目标后进入详情页或播放页。", + "category_intro": "{category_name}在线观看页面聚合了可继续点击的内容列表,适合先看推荐、再看更新、再进入深层页面。", + "intro_meta": "先浏览列表,再筛选详情,适合承接{category_name}在线观看与最新资源需求。", + "guide_cards": [ + { + "title": "先看列表", + "text": "优先浏览{category_name}相关条目,先判断首屏命中是否符合需求。" + }, + { + "title": "继续筛选", + "text": "结合更新进度、热度和类型继续缩小范围。" + }, + { + "title": "进入详情页", + "text": "确认目标后进入详情页或播放页继续查看。" + } + ], + "provider": "openai" +} diff --git a/code/data/seo_copy_published/caosheninan-com/detail/default.json b/code/data/seo_copy_published/caosheninan-com/detail/default.json new file mode 100644 index 0000000..34437c5 --- /dev/null +++ b/code/data/seo_copy_published/caosheninan-com/detail/default.json @@ -0,0 +1,25 @@ +{ + "title_template": "{video_name}{video_alias}详情_{year}_{site_name}", + "keywords_template": "{video_name},{video_alias},{actor_names},{director_names},{area_name},{lang_name},{remarks},{site_name}", + "description_template": "这里是{video_name}的资料详情页,先帮助你快速确认片名、别名、年份、地区、演员和导演等基础信息,再判断是否继续进入播放页观看。若你在寻找{video_name}相关内容,可先浏览本页摘要与备注,再通过线路或播放入口继续查看。", + "detail_body_lead": "{video_name}({video_alias})是{site_name}中的资料详情页,当前页面优先展示年份{year}、地区{area_name}、语言{lang_name}、演员{actor_names}、导演{director_names}与备注{remarks}等基础线索,方便你先判断是否是想看的内容。", + "detail_play_link_lead": "如果你已确认片名与基础信息,可继续进入播放页查看{play_line}线路与在线播放入口。", + "detail_body_tail": "本页适合先看资料,再决定是否进入播放页;如需更快定位,可结合别名{video_alias}、年份{year}和备注{remarks}继续筛选。", + "detail_faq": "Q:这页能看什么?A:先看基础资料与线索,再决定是否进入播放页。Q:如果片名相近怎么办?A:优先核对别名、年份、地区和演员信息。", + "guide_cards": [ + { + "title": "先核对资料", + "text": "查看年份、地区、演员和导演等基础线索。" + }, + { + "title": "再看别名备注", + "text": "用别名和备注判断是否命中目标作品。" + }, + { + "title": "确认后进播放", + "text": "找到对应条目后,再进入播放页查看线路。" + } + ], + "topic_hint": "精品久久久久中文字幕电视剧免费播放", + "provider": "openai" +} diff --git a/code/data/seo_copy_published/caosheninan-com/home/index.json b/code/data/seo_copy_published/caosheninan-com/home/index.json new file mode 100644 index 0000000..25f1e9b --- /dev/null +++ b/code/data/seo_copy_published/caosheninan-com/home/index.json @@ -0,0 +1,21 @@ +{ + "title": "秉象影院-精品久久久久中文字幕电视剧免费播放_最新手机在线电影大全免费全集观看", + "keywords": "秉象影院,精品久久久久中文字幕电视剧免费播放,最新手机在线电影大全免费全集观看,最近热播电视剧,最新大陆电视剧,好看电视剧推荐,高清免费电视剧", + "description": "秉象影院提供最近热播电视剧、最新大陆电视剧和好看电视剧推荐的在线观看,支持精品久久久久中文字幕电视剧免费播放与最新手机在线电影大全免费全集观看。站内持续更新当下最新电影、热播电视剧以及日剧、韩剧、美剧等影视资源,方便影迷快速找到想看的内容。", + "intro_text": "欢迎来到秉象影院,先看热播电视剧与最新电影,再按分类和搜索结果筛选,快速进入详情页或播放页,查找精品久久久久中文字幕电视剧免费播放和高清免费影视资源。", + "intro_meta": "优先收录最近热播电视剧、最新大陆电视剧、日剧韩剧美剧等内容,适合先浏览、再筛选、再观看。", + "guide_cards": [ + { + "title": "先看首页热播", + "text": "优先浏览当前更新与热门推荐,快速锁定想看的剧集。" + }, + { + "title": "按分类继续找", + "text": "进入分类入口或列表页,缩小范围后再看详情页。" + }, + { + "title": "直接搜索片名", + "text": "用关键词搜索结果页,定位更快,减少反复翻找。" + } + ] +} diff --git a/code/data/seo_copy_published/caosheninan-com/play/default.json b/code/data/seo_copy_published/caosheninan-com/play/default.json new file mode 100644 index 0000000..e44a9bc --- /dev/null +++ b/code/data/seo_copy_published/caosheninan-com/play/default.json @@ -0,0 +1,24 @@ +{ + "title_template": "{video_name}{episode_name}_{play_line}播放_{site_name}", + "keywords_template": "{video_name},{episode_name},{play_line},{video_alias},{year},{area_name},{lang_name},{site_name}", + "description_template": "这里是{video_name}{episode_name}的播放页,先回到详情页确认片名、别名、年份、地区、演员与导演等信息,再根据{play_line}线路判断是否适合继续观看。当前页面聚合在线播放入口,适合在确认资料后直接进入播放。", + "play_intro": "{video_name}{episode_name}在线播放入口已整理在本页,建议先核对详情页信息,再选择{play_line}线路继续观看。", + "play_meta_note": "播放前可回看详情页,重点确认{video_name}、{video_alias}、{year}、{area_name}与{remarks}。", + "play_body_lead": "当前页面提供{video_name}{episode_name}的播放入口,若你正在寻找对应内容,可先确认详情页中的基础资料,再选择合适的{play_line}线路开始播放。", + "play_body_next": "如果当前线路不合适,可返回详情页继续查看别名、年份、地区和备注,再切换其他播放入口。", + "guide_cards": [ + { + "title": "先确认资料", + "text": "回看详情页,核对片名与基础线索。" + }, + { + "title": "再选播放线路", + "text": "根据线路名称判断后再点击播放。" + }, + { + "title": "不合适就返回", + "text": "可回到详情页继续筛选别名或备注。" + } + ], + "provider": "openai" +} diff --git a/code/data/seo_copy_published/caosheninan-com/search/landing.json b/code/data/seo_copy_published/caosheninan-com/search/landing.json new file mode 100644 index 0000000..e48502d --- /dev/null +++ b/code/data/seo_copy_published/caosheninan-com/search/landing.json @@ -0,0 +1,23 @@ +{ + "title": "{keyword}搜索结果 - 秉象影院-站内搜索", + "keywords": "{keyword},搜索结果,站内搜索,相关结果,秉象影院", + "description": "这是{keyword}的站内搜索结果页,适合先浏览相关结果,再按标题、年份、地区或备注继续筛选,随后进入详情页或播放页查看完整信息。页面用于承接关键词流量,帮助用户快速定位{keyword}相关的影视内容。", + "intro_text": "围绕{keyword}先看相关结果,再继续筛选到具体条目,减少跳转成本,尽快找到对应详情页或播放页。", + "search_landing": "{keyword}相关结果已汇总在当前页面,建议先浏览匹配标题与基础信息,再进入详情页确认是否符合需求。", + "intro_meta": "搜索页优先展示相关结果,支持先浏览、再筛选、再进入详情页或播放页。", + "faq_content": "如果“{keyword}”结果不够准,建议继续补充演员名、年份、地区或题材词;如果结果太少,可以换简称、别名或近义词再搜。", + "guide_cards": [ + { + "title": "先看相关结果", + "text": "优先判断标题是否匹配,再继续点开查看。" + }, + { + "title": "用条件再筛选", + "text": "结合年份、地区和备注,提升命中效率。" + }, + { + "title": "进入详情确认", + "text": "核对基础信息后,再转到播放页。" + } + ] +} diff --git a/code/data/seo_copy_published/chuanjiafeng-net/category_index/index.json b/code/data/seo_copy_published/chuanjiafeng-net/category_index/index.json new file mode 100644 index 0000000..b609d75 --- /dev/null +++ b/code/data/seo_copy_published/chuanjiafeng-net/category_index/index.json @@ -0,0 +1,22 @@ +{ + "title": "{parent_category_name}热门分类入口 - {site_name}", + "keywords": "{parent_category_name},{parent_category_name}分类,{parent_category_name}推荐,{site_name}", + "description": "{site_name}会优先整理{parent_category_name}常看分类入口,便于快速判断方向并继续筛选内容,再进入详情页查看播放线索。", + "intro_text": "当前页会先把{parent_category_name}方向的常看分类入口整理出来,便于先定方向,再继续筛选列表与详情页。", + "category_intro": "当前频道会优先承接{parent_category_name}相关分类路径,方便先看入口,再逐步进入更细列表。", + "intro_meta": "分类先看、再筛选、后进入详情与播放路径。", + "guide_cards": [ + { + "title": "按分类先浏览", + "text": "从入口页快速找到对应的电影、电视剧或专题方向。" + }, + { + "title": "再缩小范围", + "text": "结合地区、年份和更新节奏继续筛选合适内容。" + }, + { + "title": "进入深页查看", + "text": "跳转到详情页或播放页,获取更完整的信息线索。" + } + ] +} diff --git a/code/data/seo_copy_published/chuanjiafeng-net/category_list/default.json b/code/data/seo_copy_published/chuanjiafeng-net/category_list/default.json new file mode 100644 index 0000000..d24b3fd --- /dev/null +++ b/code/data/seo_copy_published/chuanjiafeng-net/category_list/default.json @@ -0,0 +1,23 @@ +{ + "title": "{category_name}最新资源与在线观看 - {site_name}", + "keywords": "{category_name},{category_name}免费在线观看,{category_name}最新资源,{category_name}推荐,{site_name}", + "description": "{site_name}持续整理{category_name}相关影视资源,适合先看同类内容,再决定是否进入详情页、播放页或继续翻页。", + "intro_text": "当前页会优先露出{category_name}相关条目,适合先看首屏命中,再继续翻页或进入详情页。", + "category_intro": "{site_name}把{category_name}相关条目集中到这一页,方便先看同类内容,再继续缩小范围。", + "intro_meta": "围绕{category_name}相关条目做集中露出,适合先看列表,再继续筛选目标内容。", + "guide_cards": [ + { + "title": "先看列表", + "text": "优先浏览{category_name}相关条目,先判断首屏命中是否符合需求。" + }, + { + "title": "继续筛选", + "text": "结合更新进度、热度和类型继续缩小范围。" + }, + { + "title": "进入详情页", + "text": "确认目标后进入详情页或播放页继续查看。" + } + ], + "provider": "openai" +} diff --git a/code/data/seo_copy_published/chuanjiafeng-net/detail/default.json b/code/data/seo_copy_published/chuanjiafeng-net/detail/default.json new file mode 100644 index 0000000..96c3c5d --- /dev/null +++ b/code/data/seo_copy_published/chuanjiafeng-net/detail/default.json @@ -0,0 +1,25 @@ +{ + "title_template": "{video_name}{video_alias}剧情介绍_{year}{area_name}影视资料_{site_name}", + "keywords_template": "{video_name},{video_alias},{year},{area_name},{lang_name},{actor_names},{director_names},{category_name},{site_name}", + "description_template": "{site_name}提供《{video_name}》{episode_name}的资料页整理,帮助你先了解剧情主线、别名与基础信息,再继续查看演员、导演、地区、语言和备注等线索,方便进入播放页前完成筛选。", + "detail_body_lead": "本页整理《{video_name}》的剧情主线与基础资料,适合先确认这部作品是否符合你的观看需求。", + "detail_play_link_lead": "如果你已经确认作品,可继续查看播放线路页,结合{play_line}与备注判断合适入口。", + "detail_body_tail": "页面还会补充{year}、{area_name}、{lang_name}、{actor_names}、{director_names}等资料线索,帮助你更快完成作品判断。", + "detail_faq": "Q:这里能看到什么?\nA:你可以先了解《{video_name}》的剧情概况、别名和基础资料,再决定是否进入播放页。\nQ:信息不全怎么办?\nA:可优先参考年份、地区、演员、导演和备注等已知线索。\nQ:下一步去哪?\nA:建议先看详情页,再进入对应播放页或线路页。", + "guide_cards": [ + { + "title": "先看剧情主线", + "text": "快速判断《{video_name}》是否符合你的预期。" + }, + { + "title": "核对基础资料", + "text": "查看{year}、{area_name}、{lang_name}等线索后再继续。" + }, + { + "title": "再进播放页", + "text": "结合{play_line}和备注,选择更合适的观看入口。" + } + ], + "topic_hint": "日韩欧美综合精品电影", + "provider": "openai" +} diff --git a/code/data/seo_copy_published/chuanjiafeng-net/home/index.json b/code/data/seo_copy_published/chuanjiafeng-net/home/index.json new file mode 100644 index 0000000..95fe238 --- /dev/null +++ b/code/data/seo_copy_published/chuanjiafeng-net/home/index.json @@ -0,0 +1,21 @@ +{ + "title": "日韩欧美综合精品电影电视剧剧情_午夜日韩精品影视内容推荐平台_叙学影视网", + "keywords": "叙学影视网,日韩欧美综合精品电影剧情,日韩欧美综合精品电视剧介绍,午夜日韩精品影视内容,午夜日韩精品影视专题", + "description": "叙学影视网专注于日韩欧美综合精品电影、电视剧等午夜日韩精品影视内容的剧情整理,提供影视介绍、演员资料、播出信息与专题推荐,帮助用户快速了解作品信息并持续跟进更新。", + "intro_text": "叙学影视网汇集日韩欧美综合精品电影与电视剧的剧情介绍、演员资料和播出信息,适合先了解作品,再继续查看详情与播放相关内容。", + "intro_meta": "先看简介,再进详情,持续更新日韩欧美综合精品电影电视剧相关资料。", + "guide_cards": [ + { + "title": "先看首页推荐", + "text": "从热门与更新中快速找到想看的日韩欧美综合精品影视内容。" + }, + { + "title": "继续进入详情页", + "text": "查看剧情梗概、演员信息和基础资料,筛选更合适的作品。" + }, + { + "title": "再到播放页确认", + "text": "根据线路与备注判断观看路径,减少来回跳转。" + } + ] +} diff --git a/code/data/seo_copy_published/chuanjiafeng-net/play/default.json b/code/data/seo_copy_published/chuanjiafeng-net/play/default.json new file mode 100644 index 0000000..e0fc4cf --- /dev/null +++ b/code/data/seo_copy_published/chuanjiafeng-net/play/default.json @@ -0,0 +1,24 @@ +{ + "title_template": "{video_name}{episode_name}在线观看_{play_line}_{site_name}", + "keywords_template": "{video_name}在线观看,{video_alias},{play_line},{year},{area_name},{lang_name},{actor_names},{director_names},{site_name}", + "description_template": "{site_name}提供《{video_name}》{episode_name}的播放页整理,建议先返回详情页确认剧情主线、年份、地区、演员和备注,再结合{play_line}判断线路是否适合观看。", + "play_intro": "这里是《{video_name}》{episode_name}的播放入口,先确认作品资料,再选择合适线路进入。", + "play_meta_note": "播放前可先查看详情页,核对{year}、{area_name}、{lang_name}、{actor_names}、{director_names}与{remarks}等信息。", + "play_body_lead": "若你已经了解《{video_name}》的基本资料,可直接根据{play_line}进入播放;若还未确认,建议先回到详情页查看剧情与线索。", + "play_body_next": "播放页适合用来判断线路可用性与观看入口,结合别名、备注和基础资料能更快找到目标内容。", + "guide_cards": [ + { + "title": "先回看详情", + "text": "确认剧情主线和基础资料后再选择线路。" + }, + { + "title": "判断播放线路", + "text": "结合{play_line}、备注和地区语言信息再进入。" + }, + { + "title": "需要时换入口", + "text": "若当前线路不合适,可返回继续筛选其他播放路径。" + } + ], + "provider": "openai" +} diff --git a/code/data/seo_copy_published/chuanjiafeng-net/search/landing.json b/code/data/seo_copy_published/chuanjiafeng-net/search/landing.json new file mode 100644 index 0000000..e179821 --- /dev/null +++ b/code/data/seo_copy_published/chuanjiafeng-net/search/landing.json @@ -0,0 +1,23 @@ +{ + "title": "{keyword} 搜索结果 - 站内搜索 - 叙学影视网", + "keywords": "{keyword},搜索结果,站内搜索,相关结果,叙学影视网", + "description": "这里展示与“{keyword}”相关的站内搜索结果,建议先浏览匹配条目,再根据年份、地区、演员、别名或备注继续筛选,随后进入详情页或播放页查看完整资料。", + "intro_text": "关于“{keyword}”的相关结果已整理在此,先浏览匹配条目,再继续筛选到更准确的作品。", + "search_landing": "站内搜索会优先展示与“{keyword}”匹配的相关结果,方便你先对比,再进入详情页或播放页。", + "intro_meta": "先浏览搜索结果,再筛选匹配条目,继续进入详情或播放页。", + "faq_content": "搜索不到目标内容时,可以把“{keyword}”和人物、年份、剧情词组合搜索,通常更容易缩小到目标条目。", + "guide_cards": [ + { + "title": "先看相关结果", + "text": "优先浏览与关键词最接近的条目。" + }, + { + "title": "再换词继续搜", + "text": "尝试别名、演员、年份或地区提高匹配度。" + }, + { + "title": "进入详情确认", + "text": "核对基础资料后,再前往播放页查看线路。" + } + ] +} diff --git a/code/data/seo_copy_published/cnzhenbang-com/category_index/index.json b/code/data/seo_copy_published/cnzhenbang-com/category_index/index.json new file mode 100644 index 0000000..5af196e --- /dev/null +++ b/code/data/seo_copy_published/cnzhenbang-com/category_index/index.json @@ -0,0 +1,22 @@ +{ + "title": "{parent_category_name}分类导航与热门入口 - {site_name}", + "keywords": "{parent_category_name},{parent_category_name}分类,{parent_category_name}推荐,{site_name}", + "description": "{site_name}把{parent_category_name}常看分类入口集中到当前页面,适合先判断题材方向,再继续深入列表页和详情页。", + "intro_text": "如果你准备按题材找内容,这一页更适合先看{parent_category_name}分类入口,再决定下一步进入哪类列表。", + "category_intro": "{site_name}把{parent_category_name}的一级分类和细分方向集中到这里,适合先判断题材,再继续点进详情页。", + "intro_meta": "先浏览分类频道,再筛选热度与更新进度,最后进入详情页或播放页。", + "guide_cards": [ + { + "title": "从频道开始找", + "text": "先选电影、电视剧、综艺或短剧频道,再继续查看对应列表。" + }, + { + "title": "按热度和更新筛", + "text": "优先看热门推荐与更新进度,快速找到更值得点开的资源。" + }, + { + "title": "继续进详情页", + "text": "确认目标后进入资料页,再跳转播放页查看可用线路。" + } + ] +} diff --git a/code/data/seo_copy_published/cnzhenbang-com/category_list/default.json b/code/data/seo_copy_published/cnzhenbang-com/category_list/default.json new file mode 100644 index 0000000..e26f708 --- /dev/null +++ b/code/data/seo_copy_published/cnzhenbang-com/category_list/default.json @@ -0,0 +1,23 @@ +{ + "title": "{category_name}最新资源与在线观看 - {site_name}", + "keywords": "{category_name},{category_name}免费在线观看,{category_name}最新资源,{category_name}推荐,{site_name}", + "description": "当前页会优先集中露出{category_name}相关条目,帮助先判断同类内容密度,再继续翻页或进入详情页。", + "intro_text": "当前页会优先露出{category_name}相关条目,适合先看首屏命中,再继续翻页或进入详情页。", + "category_intro": "{site_name}把{category_name}相关条目集中到这一页,方便先看同类内容,再继续缩小范围。", + "intro_meta": "{category_name}在线观看列表页,支持先浏览再筛选并进入详情页或播放页。", + "guide_cards": [ + { + "title": "先看列表", + "text": "优先浏览{category_name}相关条目,先判断首屏命中是否符合需求。" + }, + { + "title": "继续筛选", + "text": "结合更新进度、热度和类型继续缩小范围。" + }, + { + "title": "进入详情页", + "text": "确认目标后进入详情页或播放页继续查看。" + } + ], + "provider": "openai" +} diff --git a/code/data/seo_copy_published/cnzhenbang-com/detail/default.json b/code/data/seo_copy_published/cnzhenbang-com/detail/default.json new file mode 100644 index 0000000..93a85fa --- /dev/null +++ b/code/data/seo_copy_published/cnzhenbang-com/detail/default.json @@ -0,0 +1,25 @@ +{ + "title_template": "{video_name}{video_alias}详情介绍_{year}_{site_name}", + "keywords_template": "{video_name},{video_alias},{year},{area_name},{lang_name},{category_name},{actor_names},{director_names},详情介绍", + "description_template": "{site_name}为您整理{video_name}{video_alias}的详情资料页,先帮助您快速了解这部作品的基本信息、年份、地区、演员、导演与备注,再继续进入播放页查看可用线路。页面适合先浏览资料、再判断是否符合观看需求,便于更快找到目标内容。", + "detail_body_lead": "这里是{video_name}{video_alias}的资料页。您可以先查看年份{year}、地区{area_name}、语言{lang_name}、导演{director_names}、演员{actor_names}与备注{remarks}等线索,再决定是否进入播放页。", + "detail_play_link_lead": "若想继续观看,可从本页进入播放页,优先选择可用的{play_line}线路,减少反复返回查找。", + "detail_body_tail": "如果您正在对比同类资源,可以先通过详情页确认标题别名、地区与备注,再前往播放页查看实际线路表现。", + "detail_faq": "Q:这页主要看什么?\\nA:先看{video_name}{video_alias}的基础资料,再决定是否进入播放页。\\nQ:没有完整剧情怎么办?\\nA:可以优先参考年份、地区、演员、导演和备注等事实线索。\\nQ:下一步去哪?\\nA:直接进入播放页选择线路继续观看。", + "guide_cards": [ + { + "title": "先核对资料", + "text": "查看年份、地区、演员、导演和备注,确认是否是你要找的版本。" + }, + { + "title": "再进播放页", + "text": "从详情页跳转到播放页,直接选择合适线路观看。" + }, + { + "title": "用别名辅助判断", + "text": "如果标题有别名,先比对别名再决定是否继续点开。" + } + ], + "topic_hint": "亚洲精品一区二区三区在线", + "provider": "openai" +} diff --git a/code/data/seo_copy_published/cnzhenbang-com/home/index.json b/code/data/seo_copy_published/cnzhenbang-com/home/index.json new file mode 100644 index 0000000..8ad793f --- /dev/null +++ b/code/data/seo_copy_published/cnzhenbang-com/home/index.json @@ -0,0 +1,21 @@ +{ + "title": "菜鸟臻榜_国产在线观看免费全集电视剧网站|电影推荐·电视剧大全·热门短剧", + "keywords": "菜鸟臻榜,国产在线观看免费全集电视剧网站,电视剧大全,电影推荐,热门短剧,综艺,短剧,电影,电视剧,更新进度,热门推荐", + "description": "菜鸟臻榜(cnzhenbang.com)聚合电影、电视剧、综艺、动漫与短剧资源,支持高清免费在线观看与快速更新浏览。这里适合先看更新进度,再筛选国产、港台、欧美、日韩等分类,继续进入详情页或播放页,查找更符合你口味的电视剧大全、电影推荐和热门短剧内容。", + "intro_text": "想找更新快、分类清楚的影视站,就从菜鸟臻榜开始。先看热门推荐和更新进度,再按电影、电视剧、综艺、短剧筛选,继续进入详情页了解资料,最后到播放页直接观看。", + "intro_meta": "优先浏览更新进度与热门推荐,再进入详情页或播放页,提升查找效率。", + "guide_cards": [ + { + "title": "先看热门更新", + "text": "进入首页先浏览最新上线和热播资源,快速锁定想看的内容。" + }, + { + "title": "按分类继续筛选", + "text": "从电影、电视剧、综艺、短剧中继续缩小范围,减少无效翻找。" + }, + { + "title": "直达详情与播放", + "text": "找到目标后进入详情页查看资料,再跳转播放页选择合适线路。" + } + ] +} diff --git a/code/data/seo_copy_published/cnzhenbang-com/play/default.json b/code/data/seo_copy_published/cnzhenbang-com/play/default.json new file mode 100644 index 0000000..6a25b4f --- /dev/null +++ b/code/data/seo_copy_published/cnzhenbang-com/play/default.json @@ -0,0 +1,24 @@ +{ + "title_template": "{video_name}{episode_name}_在线播放_{site_name}", + "keywords_template": "{video_name},{episode_name},{play_line},在线播放,{year},{area_name},{lang_name},{category_name},播放页", + "description_template": "{site_name}播放页提供{video_name}{episode_name}的在线播放入口,建议先回看详情页确认年份{year}、地区{area_name}、语言{lang_name}、别名{video_alias}、演员{actor_names}与导演{director_names}等信息,再根据{play_line}线路判断是否切换播放。页面适合在确认资料后直接观看。", + "play_intro": "您当前进入的是{video_name}{episode_name}播放页。建议先核对详情页信息,再根据当前线路与播放表现选择更合适的{play_line}入口继续观看。", + "play_meta_note": "播放前可回到详情页确认作品资料,再选择更稳定的线路。", + "play_body_lead": "这里直接提供{video_name}{episode_name}的播放入口。若您想先确认作品信息,可返回详情页查看年份{year}、地区{area_name}、语言{lang_name}、别名{video_alias}、演员{actor_names}与导演{director_names}等事实线索。", + "play_body_next": "如果当前线路加载不理想,建议切换到其他{play_line},或先返回详情页重新判断资源版本。", + "guide_cards": [ + { + "title": "先看线路表现", + "text": "播放时优先判断当前线路是否稳定,再决定是否切换。" + }, + { + "title": "需要时回到详情页", + "text": "回看作品资料后再播放,能减少找错版本的情况。" + }, + { + "title": "换线继续看", + "text": "遇到卡顿或不匹配时,直接尝试其他可用线路。" + } + ], + "provider": "openai" +} diff --git a/code/data/seo_copy_published/cnzhenbang-com/search/landing.json b/code/data/seo_copy_published/cnzhenbang-com/search/landing.json new file mode 100644 index 0000000..b7aaba6 --- /dev/null +++ b/code/data/seo_copy_published/cnzhenbang-com/search/landing.json @@ -0,0 +1,23 @@ +{ + "title": "{keyword}搜索结果 - 菜鸟臻榜 - 站内搜索相关结果", + "keywords": "{keyword},搜索结果,站内搜索,相关结果,电视剧大全,电影推荐,热门短剧,更新进度", + "description": "菜鸟臻榜为关键词 {keyword} 提供站内搜索相关结果,方便先浏览匹配条目,再按热度、更新进度、地区与类型继续筛选,进入详情页或播放页查看更完整信息。搜索结果页适合快速定位目标资源,也方便蜘蛛沿着结果继续抓取深层页面。", + "intro_text": "正在查找 {keyword}?这里会展示站内搜索相关结果。建议先浏览匹配项,再根据更新进度、分类和资料线索继续筛选,找到更合适的详情页或播放页。", + "search_landing": "建议先用“{keyword}”确认结果方向,再逐步叠加更细的搜索词把范围压小。", + "intro_meta": "先看搜索结果,再按更新、分类和地区继续筛选,最终进入详情页或播放页。", + "faq_content": "搜索不到目标内容时,可以把“{keyword}”和人物、年份、剧情词组合搜索,通常更容易缩小到目标条目。", + "guide_cards": [ + { + "title": "先看匹配度高的结果", + "text": "优先选择标题更接近关键词的条目,减少重复浏览。" + }, + { + "title": "再按条件筛选", + "text": "结合热度、更新进度和分类信息继续缩小范围。" + }, + { + "title": "进详情再看播放", + "text": "确认资料后进入播放页,直接选择合适线路。" + } + ] +} diff --git a/code/data/seo_copy_published/codohealth-com/category_index/index.json b/code/data/seo_copy_published/codohealth-com/category_index/index.json new file mode 100644 index 0000000..4ac5d94 --- /dev/null +++ b/code/data/seo_copy_published/codohealth-com/category_index/index.json @@ -0,0 +1,22 @@ +{ + "title": "{parent_category_name}分类频道 - {site_name}", + "keywords": "{parent_category_name},{parent_category_name}分类,{parent_category_name}推荐,{site_name}", + "description": "{site_name}会优先整理{parent_category_name}常看分类入口,便于快速判断方向并继续筛选内容,再进入详情页查看播放线索。", + "intro_text": "当前页会先把{parent_category_name}方向的常看分类入口整理出来,便于先定方向,再继续筛选列表与详情页。", + "category_intro": "当前频道会优先承接{parent_category_name}相关分类路径,方便先看入口,再逐步进入更细列表。", + "intro_meta": "分类入口页,先浏览再筛选,方便继续访问详情页和播放页。", + "guide_cards": [ + { + "title": "先选频道", + "text": "从分类入口进入对应内容频道,缩小查找范围。" + }, + { + "title": "再看详情", + "text": "通过片名、年份和地区信息继续判断是否要观看。" + }, + { + "title": "继续到播放", + "text": "确认目标后,直接进入播放页选择线路。" + } + ] +} diff --git a/code/data/seo_copy_published/codohealth-com/category_list/default.json b/code/data/seo_copy_published/codohealth-com/category_list/default.json new file mode 100644 index 0000000..40c6673 --- /dev/null +++ b/code/data/seo_copy_published/codohealth-com/category_list/default.json @@ -0,0 +1,23 @@ +{ + "title": "{category_name}推荐内容列表 - {site_name}", + "keywords": "{category_name},{category_name}免费在线观看,{category_name}最新资源,{category_name}推荐,{site_name}", + "description": "当前页会优先集中露出{category_name}相关条目,帮助先判断同类内容密度,再继续翻页或进入详情页。", + "intro_text": "当前页会优先露出{category_name}相关条目,适合先看首屏命中,再继续翻页或进入详情页。", + "category_intro": "{site_name}把{category_name}相关条目集中到这一页,方便先看同类内容,再继续缩小范围。", + "intro_meta": "围绕{category_name}相关条目做集中露出,适合先看列表,再继续筛选目标内容。", + "guide_cards": [ + { + "title": "先看列表", + "text": "优先浏览{category_name}相关条目,先判断首屏命中是否符合需求。" + }, + { + "title": "继续筛选", + "text": "结合更新进度、热度和类型继续缩小范围。" + }, + { + "title": "进入详情页", + "text": "确认目标后进入详情页或播放页继续查看。" + } + ], + "provider": "openai" +} diff --git a/code/data/seo_copy_published/codohealth-com/detail/default.json b/code/data/seo_copy_published/codohealth-com/detail/default.json new file mode 100644 index 0000000..43fb120 --- /dev/null +++ b/code/data/seo_copy_published/codohealth-com/detail/default.json @@ -0,0 +1,25 @@ +{ + "title_template": "{video_name}{episode_name}_{year}_{area_name}_{site_name}", + "keywords_template": "{video_name},{video_alias},{year},{area_name},{lang_name},{director_names},{actor_names},{category_name},{site_name}", + "description_template": "{site_name}为你整理{video_name}的资料页,先帮助你快速确认片名、别名、年份、地区、语言、导演、演员与备注,再进入播放页查看可用线路与观看入口。", + "detail_body_lead": "本页用于查看{video_name}的完整资料与观看路径,适合先确认{video_alias}、{year}、{area_name}、{lang_name}、{remarks}等信息,再决定是否进入播放页。", + "detail_play_link_lead": "如果你已确认这是要看的内容,可以继续进入{play_line}播放页,选择合适线路开始观看。", + "detail_body_tail": "页面下方通常可继续查看相关条目、相似资源或播放入口,方便你从详情页顺利跳转到播放页。", + "detail_faq": "Q:这页能看到什么?\nA:优先查看片名、别名、年份、地区、语言、演员、导演与备注等资料。\nQ:下一步怎么看?\nA:确认目标后,进入播放页选择线路继续观看。", + "guide_cards": [ + { + "title": "先核对资料", + "text": "先看片名、别名、年份与地区信息。" + }, + { + "title": "再进播放页", + "text": "确认无误后,点击播放入口继续。" + }, + { + "title": "优先选线路", + "text": "进入播放页后,按可用线路选择观看。" + } + ], + "topic_hint": "中文字幕在线电影网", + "provider": "openai" +} diff --git a/code/data/seo_copy_published/codohealth-com/home/index.json b/code/data/seo_copy_published/codohealth-com/home/index.json new file mode 100644 index 0000000..f851507 --- /dev/null +++ b/code/data/seo_copy_published/codohealth-com/home/index.json @@ -0,0 +1,21 @@ +{ + "title": "东和影视_中文字幕在线看高清电视剧_高清电影_成人影视在线免费观看", + "keywords": "东和影视,中文字幕在线看高清电视剧,中文字幕在线看高清电影,中文字幕在线成人免费看,中文字幕在线电影网,国产人成无码视频在线观看", + "description": "东和影视(www.codohealth.com)提供中文字幕在线看高清电视剧、高清电影与成人影视在线免费观看,支持流畅点播与高清播放,方便快速找到你想看的中文字幕在线电影网资源。", + "intro_text": "东和影视聚合中文字幕在线看高清电视剧、中文字幕在线看高清电影与中文字幕在线成人免费看等内容,页面清晰、打开即看,适合想先浏览再筛选资源的用户快速进入详情页或播放页。", + "intro_meta": "先看分类,再选资源,点进详情页或播放页继续观看。", + "guide_cards": [ + { + "title": "先浏览热门入口", + "text": "从首页快速查看当前可看的分类与推荐资源。" + }, + { + "title": "按需进入详情页", + "text": "先确认片名、年份与备注,再决定是否播放。" + }, + { + "title": "直接进入播放页", + "text": "找到目标内容后,继续选择线路并开始观看。" + } + ] +} diff --git a/code/data/seo_copy_published/codohealth-com/play/default.json b/code/data/seo_copy_published/codohealth-com/play/default.json new file mode 100644 index 0000000..b06df3d --- /dev/null +++ b/code/data/seo_copy_published/codohealth-com/play/default.json @@ -0,0 +1,24 @@ +{ + "title_template": "{video_name}在线播放_{play_line}_{site_name}", + "keywords_template": "{video_name}在线播放,{play_line},{year},{area_name},{lang_name},{category_name},{site_name}", + "description_template": "{site_name}提供{video_name}的在线播放入口,本页可先回看详情资料,再判断{play_line}线路是否可用,结合{year}、{area_name}、{lang_name}与{remarks}快速开始观看。", + "play_intro": "这里是{video_name}的播放页,适合从详情回看资料后直接进入观看,按{play_line}线路选择更合适的播放方式。", + "play_meta_note": "播放前可先确认片名、别名、年份、地区与备注,再选择线路。", + "play_body_lead": "若你已经通过详情页确认{video_name}无误,可在本页直接选择{play_line}进行播放;如需复核信息,也可返回资料页查看{video_alias}、{actor_names}、{director_names}、{area_name}、{lang_name}、{remarks}。", + "play_body_next": "播放页通常支持继续切换线路或返回详情页,方便在观看前完成最后确认。", + "guide_cards": [ + { + "title": "先回看详情", + "text": "不确定时先核对片名、年份和备注。" + }, + { + "title": "再选播放线路", + "text": "根据可用线路选择更顺手的入口。" + }, + { + "title": "开始观看", + "text": "确认无误后直接进入播放。" + } + ], + "provider": "openai" +} diff --git a/code/data/seo_copy_published/codohealth-com/search/landing.json b/code/data/seo_copy_published/codohealth-com/search/landing.json new file mode 100644 index 0000000..39df5e3 --- /dev/null +++ b/code/data/seo_copy_published/codohealth-com/search/landing.json @@ -0,0 +1,23 @@ +{ + "title": "{keyword}搜索结果 - 东和影视 - 站内搜索", + "keywords": "{keyword},搜索结果,站内搜索,相关结果,东和影视,中文字幕在线电影网", + "description": "东和影视站内搜索结果页,围绕{keyword}先浏览相关结果,再筛选片名、年份、地区与备注,继续进入详情页或播放页查看更准确的匹配内容。", + "intro_text": "正在查找{keyword}相关资源时,可以先看搜索结果,再进一步筛选后进入详情页或播放页,减少无效跳转。", + "search_landing": "这里是{keyword}的站内搜索结果入口,适合先浏览相关匹配,再进入更完整的详情页或播放页。", + "intro_meta": "搜索结果页,先浏览相关结果,再筛选并进入详情页或播放页。", + "faq_content": "搜索不到目标内容时,可以把“{keyword}”和人物、年份、剧情词组合搜索,通常更容易缩小到目标条目。", + "guide_cards": [ + { + "title": "先看相关结果", + "text": "先浏览与关键词最接近的条目。" + }, + { + "title": "再做二次筛选", + "text": "结合年份、地区和别名判断是否匹配。" + }, + { + "title": "继续到详情页", + "text": "确认目标后进入详情页或播放页。" + } + ] +} diff --git a/code/data/seo_copy_published/glae-cc/category_index/index.json b/code/data/seo_copy_published/glae-cc/category_index/index.json new file mode 100644 index 0000000..15cee22 --- /dev/null +++ b/code/data/seo_copy_published/glae-cc/category_index/index.json @@ -0,0 +1,22 @@ +{ + "title": "分类频道入口 - 日韩剧在线观看高清版电视剧 - {site_name}", + "keywords": "{parent_category_name},{parent_category_name}分类,{parent_category_name}推荐,{site_name}", + "description": "{site_name}把{parent_category_name}常看分类入口集中到当前页面,适合先判断题材方向,再继续深入列表页和详情页。", + "intro_text": "当前页会先把{parent_category_name}方向的常看分类入口整理出来,便于先定方向,再继续筛选列表与详情页。", + "category_intro": "当前频道会优先承接{parent_category_name}相关分类路径,方便先看入口,再逐步进入更细列表。", + "intro_meta": "分类入口页,先浏览频道,再筛选条件,继续进入详情页或播放页。", + "guide_cards": [ + { + "title": "按频道浏览", + "text": "先选分类,再看同类资源的更新情况。" + }, + { + "title": "按条件筛选", + "text": "结合地区、语言和年份,继续缩小范围。" + }, + { + "title": "进入深页查看", + "text": "确定目标后,直接进入详情页或播放页。" + } + ] +} diff --git a/code/data/seo_copy_published/glae-cc/category_list/default.json b/code/data/seo_copy_published/glae-cc/category_list/default.json new file mode 100644 index 0000000..2751e0f --- /dev/null +++ b/code/data/seo_copy_published/glae-cc/category_list/default.json @@ -0,0 +1,23 @@ +{ + "title": "{category_name}在线观看 - {site_name}最新资源推荐", + "keywords": "{category_name}在线观看,最新资源,推荐,内容列表,{site_name}", + "description": "这里是{category_name}流量承接列表页,建议先浏览当前资源,再按年份、地区、语言或备注筛选,继续进入详情页或播放页查看更新和具体观看入口。", + "intro_text": "{category_name}相关资源已整理到列表中,你可以先浏览当前条目,再按条件筛选,找到更匹配的详情页或播放页。", + "category_intro": "{category_name}在线观看列表页,适合先看资源分布,再继续筛选进入详情页或播放页。", + "intro_meta": "围绕{category_name}相关条目做集中露出,适合先看列表,再继续筛选目标内容。", + "guide_cards": [ + { + "title": "先看列表", + "text": "优先浏览{category_name}相关条目,先判断首屏命中是否符合需求。" + }, + { + "title": "继续筛选", + "text": "结合更新进度、热度和类型继续缩小范围。" + }, + { + "title": "进入详情页", + "text": "确认目标后进入详情页或播放页继续查看。" + } + ], + "provider": "openai" +} diff --git a/code/data/seo_copy_published/glae-cc/detail/default.json b/code/data/seo_copy_published/glae-cc/detail/default.json new file mode 100644 index 0000000..e8f9ce5 --- /dev/null +++ b/code/data/seo_copy_published/glae-cc/detail/default.json @@ -0,0 +1,25 @@ +{ + "title_template": "{video_name}{video_alias}_{year}_{area_name}_{site_name}", + "keywords_template": "{video_name},{video_alias},{actor_names},{director_names},{area_name},{lang_name},{site_name}", + "description_template": "{video_name}详情页为你整理年份、地区、演员、导演、别名与备注等资料线索,方便先确认内容信息,再进入播放页查看{play_line}的观看入口与更新情况。", + "detail_body_lead": "本页用于查看{video_name}的资料信息与观看前提,适合先确认{year}、{area_name}、{lang_name}、{actor_names}、{director_names}等线索,再决定是否继续观看。", + "detail_play_link_lead": "确认条目后,可继续进入播放页查看{play_line}线路与播放入口。", + "detail_body_tail": "如果你在找的是同名或别名内容,也可以结合{video_alias}、{remarks}再次核对,避免跳转到不匹配的条目。", + "detail_faq": "Q:这里能直接找到什么?\nA:你可以先核对{video_name}的事实线索,再进入播放页。\nQ:信息不完整怎么办?\nA:优先通过别名、年份、地区和备注判断是否为目标内容。", + "guide_cards": [ + { + "title": "先核对资料", + "text": "查看年份、地区、别名与备注。" + }, + { + "title": "再进播放页", + "text": "确认目标后继续查看线路入口。" + }, + { + "title": "避免误点", + "text": "用演员、导演与别名再次确认。" + } + ], + "topic_hint": "日韩中文字幕在线", + "provider": "openai" +} diff --git a/code/data/seo_copy_published/glae-cc/home/index.json b/code/data/seo_copy_published/glae-cc/home/index.json new file mode 100644 index 0000000..2e3c550 --- /dev/null +++ b/code/data/seo_copy_published/glae-cc/home/index.json @@ -0,0 +1,21 @@ +{ + "title": "日韩剧在线观看高清版电视剧_日韩中文字幕在线_亚洲中文字幕在线观看_{site_name}", + "keywords": "日韩剧在线观看高清版电视剧,亚洲中文字幕在线观看,日韩剧在线观看免费全集电视剧,日韩中文字幕在线,格拉尔影院", + "description": "格拉尔影院【www.glae.cc】聚合日韩剧在线观看高清版电视剧、亚洲中文字幕在线观看、日韩剧在线观看免费全集电视剧等热门检索需求,支持先浏览再筛选,快速进入详情页或播放页获取更新信息与观看入口。", + "intro_text": "格拉尔影院聚合日韩剧、亚洲视频与中文字幕资源,方便你先看分类与更新,再按片名、别名、年份或地区继续筛选,快速找到合适的详情页和播放页。", + "intro_meta": "先浏览热门分类,再按条件筛选,进入详情页或播放页查看更新与观看入口。", + "guide_cards": [ + { + "title": "先看首页推荐", + "text": "先浏览热门与更新内容,快速锁定想看的剧集。" + }, + { + "title": "再按条件筛选", + "text": "结合片名、年份、地区和备注,继续缩小范围。" + }, + { + "title": "直接进入播放", + "text": "找到目标后,进入详情页或播放页查看线路与入口。" + } + ] +} diff --git a/code/data/seo_copy_published/glae-cc/play/default.json b/code/data/seo_copy_published/glae-cc/play/default.json new file mode 100644 index 0000000..8b646ef --- /dev/null +++ b/code/data/seo_copy_published/glae-cc/play/default.json @@ -0,0 +1,24 @@ +{ + "title_template": "{video_name}在线观看_{play_line}_{site_name}", + "keywords_template": "{video_name}在线观看,{play_line},在线播放,{area_name},{lang_name},{site_name}", + "description_template": "{video_name}播放页已为你整理{play_line}线路与观看入口,建议先回到详情页核对{year}、{area_name}、{lang_name}、{actor_names}、{director_names}等信息,再根据线路情况选择合适的播放方式。", + "play_intro": "当前页面提供{video_name}的在线播放入口,你可以先确认线路名称与页面提示,再结合详情页中的年份、地区、别名和备注判断是否为目标内容。", + "play_meta_note": "播放页建议先看线路,再回详情页核对事实线索,方便继续选择合适入口。", + "play_body_lead": "如果你已经确认{video_name},这里可以直接查看{play_line}播放入口;若需要再次核对,请返回详情页对照{video_alias}、{remarks}与基础资料。", + "play_body_next": "确认无误后即可继续播放;如果当前线路不匹配,也可切换其他线路或返回详情页重新筛选。", + "guide_cards": [ + { + "title": "先看线路", + "text": "确认{play_line}是否符合当前需求。" + }, + { + "title": "回看详情页", + "text": "用年份、地区和别名再次核对。" + }, + { + "title": "继续播放", + "text": "确认后直接进入播放体验。" + } + ], + "provider": "openai" +} diff --git a/code/data/seo_copy_published/glae-cc/search/landing.json b/code/data/seo_copy_published/glae-cc/search/landing.json new file mode 100644 index 0000000..e66f6c4 --- /dev/null +++ b/code/data/seo_copy_published/glae-cc/search/landing.json @@ -0,0 +1,23 @@ +{ + "title": "{keyword}搜索结果 - {site_name}站内搜索", + "keywords": "{keyword},搜索结果,站内搜索,相关结果,{site_name}", + "description": "这是{keyword}的站内搜索结果页,建议先浏览匹配条目,再按片名、别名、年份或地区继续筛选,进入详情页或播放页查看更新、备注与观看入口。", + "intro_text": "围绕{keyword}的相关结果已为你整理好,先浏览命中条目,再继续筛选到更准确的详情页或播放页。", + "search_landing": "建议先用“{keyword}”确认结果方向,再逐步叠加更细的搜索词把范围压小。", + "intro_meta": "搜索结果页先浏览,再筛选,再进入详情页或播放页。", + "faq_content": "搜索不到目标内容时,可以把“{keyword}”和人物、年份、剧情词组合搜索,通常更容易缩小到目标条目。", + "guide_cards": [ + { + "title": "先看命中结果", + "text": "浏览与关键词最接近的条目。" + }, + { + "title": "按线索筛选", + "text": "结合别名、年份和地区继续判断。" + }, + { + "title": "进入详情播放", + "text": "确认目标后打开详情页或播放页。" + } + ] +} diff --git a/code/data/seo_copy_published/gxhongzhuang-com/category_index/index.json b/code/data/seo_copy_published/gxhongzhuang-com/category_index/index.json new file mode 100644 index 0000000..72b2439 --- /dev/null +++ b/code/data/seo_copy_published/gxhongzhuang-com/category_index/index.json @@ -0,0 +1,22 @@ +{ + "title": "{parent_category_name}分类频道 - {site_name}", + "keywords": "{parent_category_name},{parent_category_name}分类,{parent_category_name}推荐,{site_name}", + "description": "{site_name}会优先整理{parent_category_name}常看分类入口,便于快速判断方向并继续筛选内容,再进入详情页查看播放线索。", + "intro_text": "如果你准备按题材找内容,这一页更适合先看{parent_category_name}分类入口,再决定下一步进入哪类列表。", + "category_intro": "{site_name}把{parent_category_name}的一级分类和细分方向集中到这里,适合先判断题材,再继续点进详情页。", + "intro_meta": "先分类,再筛选,再进入详情或播放页,路径更清晰。", + "guide_cards": [ + { + "title": "按分类快速找片", + "text": "从入口页进入栏目,缩短找片路径。" + }, + { + "title": "先筛选再进入详情", + "text": "根据类型与条件缩小范围,减少无效点击。" + }, + { + "title": "继续到播放页", + "text": "找到目标后直接进入播放线路,衔接更顺畅。" + } + ] +} diff --git a/code/data/seo_copy_published/gxhongzhuang-com/category_list/default.json b/code/data/seo_copy_published/gxhongzhuang-com/category_list/default.json new file mode 100644 index 0000000..8ea53be --- /dev/null +++ b/code/data/seo_copy_published/gxhongzhuang-com/category_list/default.json @@ -0,0 +1,23 @@ +{ + "title": "{category_name}在线观看 - 宏壮影院", + "keywords": "{category_name}在线观看,最新资源,推荐内容列表,91视频在线免费观看,宏壮影院", + "description": "{category_name}内容列表页,适合先浏览当前分类下的可选资源,再按热度、年份或更新情况继续筛选,进入详情页或播放页查看完整信息。", + "intro_text": "这里展示{category_name}相关内容,先浏览列表,再根据需求筛选,方便更快进入详情页或播放页。", + "category_intro": "围绕{category_name}在线观看需求整理的内容列表,适合先看当前可选资源,再继续筛选到你想看的那一部。", + "intro_meta": "{category_name}在线观看列表页,支持先浏览再筛选并进入详情页或播放页。", + "guide_cards": [ + { + "title": "先看列表", + "text": "优先浏览{category_name}相关条目,先判断首屏命中是否符合需求。" + }, + { + "title": "继续筛选", + "text": "结合更新进度、热度和类型继续缩小范围。" + }, + { + "title": "进入详情页", + "text": "确认目标后进入详情页或播放页继续查看。" + } + ], + "provider": "openai" +} diff --git a/code/data/seo_copy_published/gxhongzhuang-com/detail/default.json b/code/data/seo_copy_published/gxhongzhuang-com/detail/default.json new file mode 100644 index 0000000..bdd96a5 --- /dev/null +++ b/code/data/seo_copy_published/gxhongzhuang-com/detail/default.json @@ -0,0 +1,25 @@ +{ + "title_template": "{video_name}{remarks}_{site_name}", + "keywords_template": "{video_name},{video_alias},{category_name},{year},{area_name},{lang_name},{actor_names},{director_names},{site_name}", + "description_template": "在{site_name}查看{video_name}的资料页,先了解影片的基本信息、别名、年份、地区、演员、导演与备注,再决定是否继续进入播放页。", + "detail_body_lead": "本页用于整理{video_name}的资料信息,帮助你先核对{year}、{area_name}、{lang_name}、{actor_names}、{director_names}与{remarks}等线索,再判断是否继续观看。", + "detail_play_link_lead": "如果你已确认目标片源,可继续查看播放线路{play_line},或先返回详情页核对{video_alias}等信息。", + "detail_body_tail": "详情页适合先做信息确认,再进入播放页;若当前线索不足,也可以结合{category_name}继续浏览相近内容。", + "detail_faq": "Q:这页能看到什么?\nA:主要是影片资料与观看前的关键信息线索。\n\nQ:如果信息不完整怎么办?\nA:可以先结合年份、地区、别名和备注继续判断,再进入播放页。", + "guide_cards": [ + { + "title": "先核对资料", + "text": "确认年份、地区、别名和备注后再继续。" + }, + { + "title": "再看播放线路", + "text": "根据线路信息选择更合适的播放入口。" + }, + { + "title": "需要时返回筛选", + "text": "如果不是目标内容,可回到分类继续找。" + } + ], + "topic_hint": "91视频在线免费观看", + "provider": "openai" +} diff --git a/code/data/seo_copy_published/gxhongzhuang-com/home/index.json b/code/data/seo_copy_published/gxhongzhuang-com/home/index.json new file mode 100644 index 0000000..7edf162 --- /dev/null +++ b/code/data/seo_copy_published/gxhongzhuang-com/home/index.json @@ -0,0 +1,21 @@ +{ + "title": "91视频在线免费观看_国产自拍日韩影视资源尽在宏壮影院", + "keywords": "91视频在线免费观看,宏壮影院,国产自拍,精品影视,热播电影,热播电视剧", + "description": "宏壮影院(www.gxhongzhuang.com)提供91视频在线免费观看、国产自拍、精品影视与热播电影电视剧的在线浏览服务,支持快速找片、继续筛选与进入详情页或播放页,方便用户尽快找到想看的内容。", + "intro_text": "欢迎来到宏壮影院,这里汇集91视频在线免费观看相关影视资源,方便你先浏览、再筛选、再进入详情页或播放页,快速找到目标影片或剧集。", + "intro_meta": "先看分类,再进详情,最后选择播放线路,找片更省时间。", + "guide_cards": [ + { + "title": "先按分类找", + "text": "从首页进入分类页,快速定位你想看的影片类型。" + }, + { + "title": "再看详情页", + "text": "查看年份、地区、别名、演员等信息后再决定是否播放。" + }, + { + "title": "直接进入播放", + "text": "选好线路后即可继续观看,减少来回跳转。" + } + ] +} diff --git a/code/data/seo_copy_published/gxhongzhuang-com/play/default.json b/code/data/seo_copy_published/gxhongzhuang-com/play/default.json new file mode 100644 index 0000000..d3953e9 --- /dev/null +++ b/code/data/seo_copy_published/gxhongzhuang-com/play/default.json @@ -0,0 +1,24 @@ +{ + "title_template": "{video_name}在线播放_{play_line}_{site_name}", + "keywords_template": "{video_name}在线播放,{play_line},{video_alias},{year},{area_name},{lang_name},{site_name}", + "description_template": "在{site_name}观看{video_name}在线播放页面,先确认播放线路{play_line},也可回到详情页核对{year}、{area_name}、{actor_names}、{director_names}与{remarks}等信息后再继续播放。", + "play_intro": "当前页面提供{video_name}的在线播放入口,建议先确认线路{play_line},再结合详情页里的年份、地区、别名与备注信息判断是否符合需求。", + "play_meta_note": "若当前线路不稳定,可返回详情页重新核对资料后再选择其他播放方式。", + "play_body_lead": "这里是{video_name}的播放页,适合在确认{year}、{area_name}、{lang_name}与{remarks}后直接进入观看。", + "play_body_next": "如需重新比对内容,可返回详情页查看{video_alias}、{actor_names}、{director_names}等线索,再选择更合适的播放线路。", + "guide_cards": [ + { + "title": "先确认线路", + "text": "选择{play_line}后再进入播放。" + }, + { + "title": "需要时回看详情", + "text": "核对年份、地区和备注,避免误点。" + }, + { + "title": "继续顺畅观看", + "text": "确认无误后直接播放,减少中断。" + } + ], + "provider": "openai" +} diff --git a/code/data/seo_copy_published/gxhongzhuang-com/search/landing.json b/code/data/seo_copy_published/gxhongzhuang-com/search/landing.json new file mode 100644 index 0000000..ced6c8b --- /dev/null +++ b/code/data/seo_copy_published/gxhongzhuang-com/search/landing.json @@ -0,0 +1,23 @@ +{ + "title": "{keyword}搜索结果 - 宏壮影院", + "keywords": "{keyword},搜索结果,站内搜索,相关结果,91视频在线免费观看,宏壮影院", + "description": "宏壮影院站内搜索结果页,围绕{keyword}先浏览相关结果,再按标题、分类或更新信息继续筛选,最后进入详情页或播放页查看完整内容。", + "intro_text": "你正在查看与{keyword}相关的搜索结果,建议先浏览结果,再继续筛选,找到更符合需求的条目后进入详情页或播放页。", + "search_landing": "当前页面聚合了{keyword}相关内容,适合先看结果列表,再结合标题、年份与分类继续缩小范围。", + "intro_meta": "先看搜索结果,再筛选相关条目,最后进入详情或播放页。", + "faq_content": "如果“{keyword}”结果不够准,建议继续补充演员名、年份、地区或题材词;如果结果太少,可以换简称、别名或近义词再搜。", + "guide_cards": [ + { + "title": "先浏览相关结果", + "text": "快速判断是否命中你要找的内容。" + }, + { + "title": "再按标题筛选", + "text": "结合关键词继续缩小结果范围。" + }, + { + "title": "进入详情页核对", + "text": "查看事实线索后再进入播放页。" + } + ] +} diff --git a/code/data/seo_copy_published/gz-yxsw-com/category_index/index.json b/code/data/seo_copy_published/gz-yxsw-com/category_index/index.json new file mode 100644 index 0000000..3548a22 --- /dev/null +++ b/code/data/seo_copy_published/gz-yxsw-com/category_index/index.json @@ -0,0 +1,22 @@ +{ + "title": "{parent_category_name}分类频道 - {site_name}", + "keywords": "{parent_category_name},{parent_category_name}分类,{parent_category_name}推荐,{site_name}", + "description": "{site_name}会优先整理{parent_category_name}常看分类入口,便于快速判断方向并继续筛选内容,再进入详情页查看播放线索。", + "intro_text": "如果你准备按题材找内容,这一页更适合先看{parent_category_name}分类入口,再决定下一步进入哪类列表。", + "category_intro": "{site_name}把{parent_category_name}的一级分类和细分方向集中到这里,适合先判断题材,再继续点进详情页。", + "intro_meta": "分类入口页强调浏览、筛选、进入详情页的路径,利于收录与深度访问。", + "guide_cards": [ + { + "title": "先选频道", + "text": "从电视剧、电影、短剧中找到对应分类。" + }, + { + "title": "再按关键词筛选", + "text": "结合欧美日韩精品、国产88久久久等词继续缩小范围。" + }, + { + "title": "最后进详情页", + "text": "查看资料后再选择播放线路。" + } + ] +} diff --git a/code/data/seo_copy_published/gz-yxsw-com/category_list/default.json b/code/data/seo_copy_published/gz-yxsw-com/category_list/default.json new file mode 100644 index 0000000..d408326 --- /dev/null +++ b/code/data/seo_copy_published/gz-yxsw-com/category_list/default.json @@ -0,0 +1,23 @@ +{ + "title": "{category_name}在线观看 - {site_name}", + "keywords": "{category_name}在线观看,{category_name}最新资源,{category_name}推荐,{category_name}内容列表,{site_name}", + "description": "{site_name}的{category_name}内容列表页,适合先浏览当前频道下的最新资源,再按年份、地区、演员和备注继续筛选,随后进入详情页或播放页查看完整资料。", + "intro_text": "欢迎查看{site_name}的{category_name}在线观看列表,这里汇集当前频道的热门资源,先浏览再筛选,找到更符合需求的内容后可直接进入详情页。", + "category_intro": "本页用于承接{category_name}相关搜索与浏览意图,建议先看最新资源和推荐内容,再结合年份、地区、演员资料与备注做进一步筛选。", + "intro_meta": "{category_name}在线观看列表页,支持先浏览再筛选并进入详情页或播放页。", + "guide_cards": [ + { + "title": "先看列表", + "text": "优先浏览{category_name}相关条目,先判断首屏命中是否符合需求。" + }, + { + "title": "继续筛选", + "text": "结合更新进度、热度和类型继续缩小范围。" + }, + { + "title": "进入详情页", + "text": "确认目标后进入详情页或播放页继续查看。" + } + ], + "provider": "openai" +} diff --git a/code/data/seo_copy_published/gz-yxsw-com/detail/default.json b/code/data/seo_copy_published/gz-yxsw-com/detail/default.json new file mode 100644 index 0000000..f2df3c6 --- /dev/null +++ b/code/data/seo_copy_published/gz-yxsw-com/detail/default.json @@ -0,0 +1,25 @@ +{ + "title_template": "{video_name}{video_alias}_剧情介绍_{site_name}", + "keywords_template": "{video_name}, {video_alias}, 剧情介绍, 演员资料, 导演资料, {year}, {area_name}, {lang_name}, {site_name}", + "description_template": "{site_name}为您整理{video_name}{video_alias}的剧情介绍、主演信息、导演信息、地区年份与备注线索,适合先快速了解资料,再进入播放页查看对应线路与完整内容。", + "detail_body_lead": "本页提供{video_name}{video_alias}的资料摘要,重点展示剧情主线、演员与导演线索、年份地区和备注信息,方便先判断是否为目标内容。", + "detail_play_link_lead": "确认资料匹配后,可继续查看{play_line}播放线路,进入对应播放页获取完整观看路径。", + "detail_body_tail": "若当前信息仍不足以判断,可结合{actor_names}、{director_names}、{area_name}、{year}与{remarks}进一步核对,再选择合适线路。", + "detail_faq": "问:这页能看什么?答:本页用于查看{video_name}的资料摘要和观看前的关键信息。问:如何继续观看?答:先确认标题、别名和备注,再进入{play_line}对应播放页。", + "guide_cards": [ + { + "title": "先看资料摘要", + "text": "快速确认{video_name}是否符合当前需求。" + }, + { + "title": "核对事实线索", + "text": "重点查看年份、地区、演员和导演信息。" + }, + { + "title": "再进播放页", + "text": "匹配后选择{play_line}继续观看。" + } + ], + "topic_hint": "欧美日韩视频", + "provider": "openai" +} diff --git a/code/data/seo_copy_published/gz-yxsw-com/home/index.json b/code/data/seo_copy_published/gz-yxsw-com/home/index.json new file mode 100644 index 0000000..1b5a5ae --- /dev/null +++ b/code/data/seo_copy_published/gz-yxsw-com/home/index.json @@ -0,0 +1,21 @@ +{ + "title": "欧美日韩精品在线观看_日韩中文字幕_国产88久久久_国产精品免费二区_光棍影院", + "keywords": "欧美日韩精品在线观看, 欧美日韩视频, 欧美日韩精品, 欧美日韩中文字幕, 国产88久久久, 国产精品免费二区, 国产精品96久久久久久, 光棍影院", + "description": "光棍影院(gz-yxsw.com)在线免费为您提供欧美日韩视频、欧美日韩精品、欧美日韩中文字幕、国产88久久久、国产精品免费二区、国产精品96久久久久久等热门内容,覆盖电视剧、电影、短剧、剧情介绍与热门推荐,方便快速浏览并进入详情页或播放页。", + "intro_text": "光棍影院汇集欧美日韩视频、欧美日韩精品与欧美日韩中文字幕等热门资源,支持按电视剧、电影、短剧和演员资料快速查找,先浏览再筛选,轻松进入详情页或播放页。", + "intro_meta": "聚合欧美日韩精品在线观看、国产88久久久、国产精品免费二区等高关注词,适合快速收录与持续检索。", + "guide_cards": [ + { + "title": "先看热门推荐", + "text": "从首页直接进入高热度电视剧、电影和短剧列表。" + }, + { + "title": "按分类继续筛选", + "text": "结合地区、类型和剧情介绍,快速缩小目标内容。" + }, + { + "title": "进入详情或播放", + "text": "查看资料页信息后,再选择合适的播放线路。" + } + ] +} diff --git a/code/data/seo_copy_published/gz-yxsw-com/play/default.json b/code/data/seo_copy_published/gz-yxsw-com/play/default.json new file mode 100644 index 0000000..c2f79d1 --- /dev/null +++ b/code/data/seo_copy_published/gz-yxsw-com/play/default.json @@ -0,0 +1,24 @@ +{ + "title_template": "{video_name}在线观看_{play_line}_{site_name}", + "keywords_template": "{video_name}在线观看, {play_line}, {video_alias}, {year}, {area_name}, {lang_name}, {site_name}", + "description_template": "{site_name}为您提供{video_name}{video_alias}的在线观看入口,当前页可结合{play_line}线路、年份、地区、语言和备注信息快速判断播放资源,并在需要时返回详情页核对资料。", + "play_intro": "这里是{video_name}{video_alias}的播放页,可先确认{play_line}线路,再结合年份、地区、语言和备注判断是否为合适资源。", + "play_meta_note": "播放前建议先回看详情页的演员、导演与别名信息,以便更准确地选择线路。", + "play_body_lead": "当前页面直接承接{video_name}的观看需求,支持从{play_line}进入播放,同时保留回到详情页核对{actor_names}、{director_names}、{area_name}与{year}的路径。", + "play_body_next": "如需进一步确认,可返回详情页查看剧情介绍与资料线索,再选择其他线路继续播放。", + "guide_cards": [ + { + "title": "先确认线路", + "text": "优先判断{play_line}是否为可用播放入口。" + }, + { + "title": "必要时回详情页", + "text": "核对别名、演员和导演等资料线索。" + }, + { + "title": "再继续观看", + "text": "确认无误后直接进入播放内容。" + } + ], + "provider": "openai" +} diff --git a/code/data/seo_copy_published/gz-yxsw-com/search/landing.json b/code/data/seo_copy_published/gz-yxsw-com/search/landing.json new file mode 100644 index 0000000..316bdb4 --- /dev/null +++ b/code/data/seo_copy_published/gz-yxsw-com/search/landing.json @@ -0,0 +1,23 @@ +{ + "title": "{keyword}搜索结果 - 站内搜索 - {site_name}", + "keywords": "{keyword},搜索结果,站内搜索,相关结果,欧美日韩视频,欧美日韩精品,{site_name}", + "description": "{site_name}的{keyword}搜索结果页,建议先浏览相关结果,再按标题、年份、地区、演员与备注进行筛选,最后进入详情页或播放页,提升找到目标内容的效率。", + "intro_text": "这里展示与{keyword}相关的站内搜索结果,适合先快速浏览,再根据标题和资料线索继续筛选,找到后可进入详情页或播放页。", + "search_landing": "围绕{keyword}展开相关结果承接,帮助用户从搜索入口直接到达更精准的详情页。", + "intro_meta": "搜索结果页聚焦相关结果承接,适合搜索引擎抓取与用户继续深挖。", + "faq_content": "如果“{keyword}”结果不够准,建议继续补充演员名、年份、地区或题材词;如果结果太少,可以换简称、别名或近义词再搜。", + "guide_cards": [ + { + "title": "先浏览相关结果", + "text": "从标题和摘要里判断是否符合需求。" + }, + { + "title": "再看资料线索", + "text": "结合年份、地区、演员和备注辅助筛选。" + }, + { + "title": "找到后进详情页", + "text": "确认无误后再进入播放页。" + } + ] +} diff --git a/code/data/seo_copy_published/hbczccq-com/category_index/index.json b/code/data/seo_copy_published/hbczccq-com/category_index/index.json new file mode 100644 index 0000000..cdb0fbf --- /dev/null +++ b/code/data/seo_copy_published/hbczccq-com/category_index/index.json @@ -0,0 +1,22 @@ +{ + "title": "{parent_category_name}分类频道 - {site_name}", + "keywords": "{parent_category_name},{parent_category_name}分类,{parent_category_name}推荐,{site_name}", + "description": "{site_name}会优先整理{parent_category_name}常看分类入口,便于快速判断方向并继续筛选内容,再进入详情页查看播放线索。", + "intro_text": "如果你准备按题材找内容,这一页更适合先看{parent_category_name}分类入口,再决定下一步进入哪类列表。", + "category_intro": "{site_name}把{parent_category_name}的一级分类和细分方向集中到这里,适合先判断题材,再继续点进详情页。", + "intro_meta": "分类入口页适合先浏览、再筛选、再进入深页,提升查找效率与收录路径。", + "guide_cards": [ + { + "title": "浏览频道", + "text": "先进入电影、电视剧、综艺等分类。" + }, + { + "title": "继续筛选", + "text": "按年份、地区和热度缩小范围。" + }, + { + "title": "进入深页", + "text": "从列表到详情页,再到播放页。" + } + ] +} diff --git a/code/data/seo_copy_published/hbczccq-com/category_list/default.json b/code/data/seo_copy_published/hbczccq-com/category_list/default.json new file mode 100644 index 0000000..24af8e2 --- /dev/null +++ b/code/data/seo_copy_published/hbczccq-com/category_list/default.json @@ -0,0 +1,23 @@ +{ + "title": "{category_name}在线观看 - {site_name}", + "keywords": "{category_name}在线观看,{category_name}最新资源,{site_name},{category_name}推荐,{category_name}内容列表", + "description": "{site_name}的{category_name}在线观看列表页,先浏览当前可用资源,再按年份、地区、别名或备注继续筛选,进入详情页确认信息后再跳转播放页,方便快速找到更匹配的内容。", + "intro_text": "这里汇总{category_name}相关内容,适合先看列表再筛选。你可以从最新资源、推荐内容或内容列表中继续挑选,找到合适条目后进入详情页或播放页。", + "category_intro": "{category_name}内容列表页会优先展示可浏览资源,方便你先筛选、再查看详情、最后进入播放页继续观看。", + "intro_meta": "{category_name}在线观看列表页,支持先浏览再筛选并进入详情页或播放页。", + "guide_cards": [ + { + "title": "先看列表", + "text": "优先浏览{category_name}相关条目,先判断首屏命中是否符合需求。" + }, + { + "title": "继续筛选", + "text": "结合更新进度、热度和类型继续缩小范围。" + }, + { + "title": "进入详情页", + "text": "确认目标后进入详情页或播放页继续查看。" + } + ], + "provider": "openai" +} diff --git a/code/data/seo_copy_published/hbczccq-com/detail/default.json b/code/data/seo_copy_published/hbczccq-com/detail/default.json new file mode 100644 index 0000000..ad61d52 --- /dev/null +++ b/code/data/seo_copy_published/hbczccq-com/detail/default.json @@ -0,0 +1,25 @@ +{ + "title_template": "{video_name}{video_alias}_在线观看_{site_name}", + "keywords_template": "{video_name},{video_alias},{site_name},{category_name},{year},{area_name},{lang_name},{director_names},{actor_names}", + "description_template": "{site_name}提供{video_name}的详情资料页,适合先查看片名、别名、年份、地区、语言、导演、演员和备注等线索,再决定是否进入播放页继续观看,方便快速判断资源是否匹配。", + "detail_body_lead": "本页为{video_name}的详情资料页,可先了解基本信息,再继续查看相关播放线路或跳转播放页。", + "detail_play_link_lead": "若你已确认片名和资源信息,可直接查看{play_line}播放线路进入观看。", + "detail_body_tail": "页面同时保留{year}、{area_name}、{lang_name}、{director_names}、{actor_names}与{remarks}等线索,便于你更准确地判断是否继续播放。", + "detail_faq": "Q:这页主要看什么?\nA:先看片名、别名和基础资料,再决定是否进入播放页。\n\nQ:信息不全怎么办?\nA:优先参考年份、地区、语言和备注等可用线索。\n\nQ:如何继续观看?\nA:查看播放线路后进入对应播放页。", + "guide_cards": [ + { + "title": "先核对资料", + "text": "确认{video_name}、别名和年份信息。" + }, + { + "title": "再看线路", + "text": "根据{play_line}判断可用播放路径。" + }, + { + "title": "最后进入播放", + "text": "确认无误后跳转播放页继续观看。" + } + ], + "topic_hint": "飘雪日本高清免费观看电视剧", + "provider": "openai" +} diff --git a/code/data/seo_copy_published/hbczccq-com/home/index.json b/code/data/seo_copy_published/hbczccq-com/home/index.json new file mode 100644 index 0000000..966c46a --- /dev/null +++ b/code/data/seo_copy_published/hbczccq-com/home/index.json @@ -0,0 +1,21 @@ +{ + "title": "飘雪影院_免费在线观看高清电视剧电影综艺动漫_飘雪日本高清免费观看电视剧", + "keywords": "飘雪影院,飘雪日本高清免费观看电视剧,国产精品亚洲综合飘雪,日本高清免费观看电视剧,国产剧在线观看,电影电视剧免费观看,综艺动漫短剧", + "description": "飘雪影院(hbczccq.com)提供电影、电视剧、综艺、动漫和短剧的在线浏览与播放入口,支持高清流畅观看,方便用户快速找到热门国产影视与最新更新资源,直接进入详情页或播放页继续观看。", + "intro_text": "欢迎来到飘雪影院,这里聚合电影、电视剧、综艺、动漫和短剧等热门资源。您可以先浏览分类,再按类型、年份或热度筛选,快速进入详情页了解信息,或直接跳转播放页观看。", + "intro_meta": "先找资源,再看详情,最后进播放页,适合继续深挖热门国产影视与更新内容。", + "guide_cards": [ + { + "title": "先看分类", + "text": "按电影、电视剧、综艺、动漫和短剧快速浏览。" + }, + { + "title": "再进详情", + "text": "查看年份、地区、别名与备注,筛选更准确。" + }, + { + "title": "直接播放", + "text": "选中线路后进入播放页,继续观看更省时间。" + } + ] +} diff --git a/code/data/seo_copy_published/hbczccq-com/play/default.json b/code/data/seo_copy_published/hbczccq-com/play/default.json new file mode 100644 index 0000000..8e59bbf --- /dev/null +++ b/code/data/seo_copy_published/hbczccq-com/play/default.json @@ -0,0 +1,24 @@ +{ + "title_template": "{video_name}{episode_name}_在线观看_{site_name}", + "keywords_template": "{video_name},{episode_name},{site_name},{play_line},{category_name},{year},{area_name},{lang_name}", + "description_template": "{site_name}的{video_name}{episode_name}播放页,先结合详情页信息确认片名、年份、地区、语言和备注,再根据{play_line}判断线路后进入观看,适合继续从资料页到播放页的完整路径。", + "play_intro": "这里是{video_name}{episode_name}的播放页面,适合在确认详情信息后直接进入观看。", + "play_meta_note": "建议先回看详情页中的年份、地区、语言、别名与备注,再选择合适的播放线路。", + "play_body_lead": "当前页面提供{play_line}播放入口,你可以先核对{year}、{area_name}、{lang_name}等信息,再开始播放。", + "play_body_next": "如果你还需要更多信息,可返回详情页查看{actor_names}、{director_names}与{remarks},确认后再继续观看。", + "guide_cards": [ + { + "title": "先核对线路", + "text": "确认{play_line}是否适合当前资源。" + }, + { + "title": "回看详情页", + "text": "补充查看年份、地区和备注信息。" + }, + { + "title": "继续播放观看", + "text": "确认无误后直接进入播放。" + } + ], + "provider": "openai" +} diff --git a/code/data/seo_copy_published/hbczccq-com/search/landing.json b/code/data/seo_copy_published/hbczccq-com/search/landing.json new file mode 100644 index 0000000..504cbe4 --- /dev/null +++ b/code/data/seo_copy_published/hbczccq-com/search/landing.json @@ -0,0 +1,23 @@ +{ + "title": "{keyword}搜索结果 - {site_name}", + "keywords": "{keyword},搜索结果,站内搜索,相关结果,{site_name},影视搜索", + "description": "{site_name}的{keyword}搜索结果页,先查看站内相关结果,再按标题、年份、地区、别名和备注进行筛选,确认条目后进入详情页或播放页,帮助你更快找到对应资源。", + "intro_text": "正在查找与“{keyword}”相关的内容?这里整理了站内搜索结果,你可以先浏览相关条目,再继续筛选,找到更符合需求的详情页或播放页。", + "search_landing": "这里会优先集中露出与“{keyword}”最接近的内容,便于快速判断方向并进入详情页。", + "intro_meta": "搜索结果页强调先浏览、再筛选、再进入深页,便于匹配站内相关资源。", + "faq_content": "Q:这里能找到什么?\nA:与{keyword}相关的站内结果。\n\nQ:怎么继续找?\nA:先看标题、年份、地区和备注,再进入详情页或播放页。\n\nQ:如果结果很多怎么办?\nA:优先选择更接近关键词、信息更完整的条目。", + "guide_cards": [ + { + "title": "先看相关结果", + "text": "优先浏览与{keyword}匹配的条目。" + }, + { + "title": "继续细筛", + "text": "结合标题、别名、年份和备注判断。" + }, + { + "title": "进入详情播放", + "text": "确认后再转详情页或播放页。" + } + ] +} diff --git a/code/data/seo_copy_published/hyjssb-com/category_index/index.json b/code/data/seo_copy_published/hyjssb-com/category_index/index.json new file mode 100644 index 0000000..776533a --- /dev/null +++ b/code/data/seo_copy_published/hyjssb-com/category_index/index.json @@ -0,0 +1,22 @@ +{ + "title": "{parent_category_name}分类导航与热门入口 - {site_name}", + "keywords": "{parent_category_name},{parent_category_name}分类,{parent_category_name}推荐,{site_name}", + "description": "{site_name}汇总{parent_category_name}分类下的热门内容与细分方向,方便先按类型浏览,再继续进入更细的列表页或详情页。", + "intro_text": "当前页会先把{parent_category_name}方向的常看分类入口整理出来,便于先定方向,再继续筛选列表与详情页。", + "category_intro": "当前频道会优先承接{parent_category_name}相关分类路径,方便先看入口,再逐步进入更细列表。", + "intro_meta": "先浏览分类,再筛选内容,最后进入详情页或播放页。", + "guide_cards": [ + { + "title": "按频道快速进入", + "text": "先选电影、电视剧、综艺或动漫,减少无效搜索。" + }, + { + "title": "继续细分筛选", + "text": "结合地区、年份、热度等信息进一步缩小范围。" + }, + { + "title": "查看详情再播放", + "text": "先确认资料页信息,再进入播放页选择线路。" + } + ] +} diff --git a/code/data/seo_copy_published/hyjssb-com/category_list/default.json b/code/data/seo_copy_published/hyjssb-com/category_list/default.json new file mode 100644 index 0000000..40c6673 --- /dev/null +++ b/code/data/seo_copy_published/hyjssb-com/category_list/default.json @@ -0,0 +1,23 @@ +{ + "title": "{category_name}推荐内容列表 - {site_name}", + "keywords": "{category_name},{category_name}免费在线观看,{category_name}最新资源,{category_name}推荐,{site_name}", + "description": "当前页会优先集中露出{category_name}相关条目,帮助先判断同类内容密度,再继续翻页或进入详情页。", + "intro_text": "当前页会优先露出{category_name}相关条目,适合先看首屏命中,再继续翻页或进入详情页。", + "category_intro": "{site_name}把{category_name}相关条目集中到这一页,方便先看同类内容,再继续缩小范围。", + "intro_meta": "围绕{category_name}相关条目做集中露出,适合先看列表,再继续筛选目标内容。", + "guide_cards": [ + { + "title": "先看列表", + "text": "优先浏览{category_name}相关条目,先判断首屏命中是否符合需求。" + }, + { + "title": "继续筛选", + "text": "结合更新进度、热度和类型继续缩小范围。" + }, + { + "title": "进入详情页", + "text": "确认目标后进入详情页或播放页继续查看。" + } + ], + "provider": "openai" +} diff --git a/code/data/seo_copy_published/hyjssb-com/detail/default.json b/code/data/seo_copy_published/hyjssb-com/detail/default.json new file mode 100644 index 0000000..302e83b --- /dev/null +++ b/code/data/seo_copy_published/hyjssb-com/detail/default.json @@ -0,0 +1,25 @@ +{ + "title_template": "{video_name} - {category_name} - {site_name}", + "keywords_template": "{video_name},{video_alias},{category_name},{year},{area_name},{lang_name},{site_name}", + "description_template": "在{site_name}查看{video_name}的详情资料页,先了解标题、别名、年份、地区、语言、导演、演员和备注等线索,再进入播放页选择合适线路观看。", + "detail_body_lead": "这里是{video_name}的资料详情页,适合先查看基础信息与观看线索,再决定是否进入播放页。", + "detail_play_link_lead": "如果你已确认想看,可以继续进入播放页查看{play_line}线路。", + "detail_body_tail": "页面将尽量提供清晰的资料线索,帮助你在进入播放页前完成判断。", + "detail_faq": "若你想快速确认是否匹配需求,建议优先查看{year}、{area_name}、{lang_name}、{director_names}、{actor_names}与{remarks}等信息,再进入播放页。", + "guide_cards": [ + { + "title": "先看资料信息", + "text": "重点查看年份、地区、别名和备注。" + }, + { + "title": "确认后进播放页", + "text": "根据详情页信息再选择合适线路。" + }, + { + "title": "减少重复跳转", + "text": "先判断是否匹配,再决定是否继续观看。" + } + ], + "topic_hint": "中文在线字幕免费观看电视剧", + "provider": "openai" +} diff --git a/code/data/seo_copy_published/hyjssb-com/home/index.json b/code/data/seo_copy_published/hyjssb-com/home/index.json new file mode 100644 index 0000000..a98223d --- /dev/null +++ b/code/data/seo_copy_published/hyjssb-com/home/index.json @@ -0,0 +1,21 @@ +{ + "title": "环游记 - 中文在线字幕免费观看电视剧_免费电影电视剧综艺动漫短剧在线观看", + "keywords": "环游记,中文在线字幕免费观看电视剧,最新电影,电视剧,综艺,动漫,短剧,免费高清在线观看,无广告播放", + "description": "环游记(hyjssb.com)提供中文在线字幕免费观看电视剧以及最新电影、电视剧、综艺、动漫、短剧的免费高清在线观看服务,覆盖国产、港台、欧美、日韩等多元内容,支持流畅播放与每日更新,方便你快速找到想看的影视资源。", + "intro_text": "欢迎来到环游记,这里汇集电影、电视剧、综艺、动漫和短剧等多类影视资源,支持中文在线字幕免费观看电视剧与热门内容快速查找,先看推荐,再进详情,轻松找到适合的播放页面。", + "intro_meta": "先浏览热门推荐,再筛选分类内容,进入详情页或播放页继续观看。", + "guide_cards": [ + { + "title": "先看首页推荐", + "text": "快速浏览最新上线和热门资源,节省找片时间。" + }, + { + "title": "按分类继续筛选", + "text": "进入电影、电视剧、综艺等频道,缩小范围更好找。" + }, + { + "title": "直达详情与播放", + "text": "从简介页进入播放页,查看线路后直接观看。" + } + ] +} diff --git a/code/data/seo_copy_published/hyjssb-com/play/default.json b/code/data/seo_copy_published/hyjssb-com/play/default.json new file mode 100644 index 0000000..a7d2a31 --- /dev/null +++ b/code/data/seo_copy_published/hyjssb-com/play/default.json @@ -0,0 +1,24 @@ +{ + "title_template": "{video_name}在线播放_{play_line}_{site_name}", + "keywords_template": "{video_name}在线播放,{play_line},{video_alias},{category_name},{year},{area_name},{site_name}", + "description_template": "在{site_name}观看{video_name}在线播放页,先回到详情页确认{year}、{area_name}、{lang_name}、{director_names}、{actor_names}和{remarks}等信息,再根据{play_line}线路选择合适播放入口。", + "play_intro": "这里是{video_name}的播放页面,建议先核对详情页信息,再选择适合的播放线路开始观看。", + "play_meta_note": "如需切换线路,可先返回详情页查看完整资料,再重新选择。", + "play_body_lead": "本页提供{video_name}的在线播放入口,适合在确认资源信息后直接开始播放。", + "play_body_next": "如果当前线路不理想,可回到详情页继续查看其他说明,再切换到更合适的{play_line}播放入口。", + "guide_cards": [ + { + "title": "先核对详情", + "text": "确认年份、地区、别名和备注后再播放。" + }, + { + "title": "选择合适线路", + "text": "优先尝试{play_line},再按需切换。" + }, + { + "title": "返回详情继续看", + "text": "遇到不匹配时,先回资料页再决定。" + } + ], + "provider": "openai" +} diff --git a/code/data/seo_copy_published/hyjssb-com/search/landing.json b/code/data/seo_copy_published/hyjssb-com/search/landing.json new file mode 100644 index 0000000..fb8f8ea --- /dev/null +++ b/code/data/seo_copy_published/hyjssb-com/search/landing.json @@ -0,0 +1,23 @@ +{ + "title": "{keyword}搜索结果 - 环游记站内搜索", + "keywords": "{keyword},搜索结果,站内搜索,相关结果,环游记", + "description": "{keyword}的站内搜索结果页,适合先浏览相关条目,再根据标题、简介、地区、年份或备注继续筛选,找到对应详情页或播放页后直接进入观看。", + "intro_text": "这里展示与{keyword}相关的搜索结果,你可以先浏览匹配条目,再继续筛选更接近目标的资源。", + "search_landing": "输入{keyword}后,这里会聚合相关结果,先看标题与摘要,再进入详情页或播放页。", + "intro_meta": "先浏览搜索结果,再筛选相关条目,最后进入详情页或播放页。", + "faq_content": "搜索不到目标内容时,可以把“{keyword}”和人物、年份、剧情词组合搜索,通常更容易缩小到目标条目。", + "guide_cards": [ + { + "title": "先看相关结果", + "text": "优先浏览与{keyword}最匹配的条目。" + }, + { + "title": "再按线索筛选", + "text": "结合年份、地区、别名和备注继续判断。" + }, + { + "title": "进入详情或播放", + "text": "确认后直接打开详情页,再选择播放线路。" + } + ] +} diff --git a/code/data/seo_copy_published/jingxifa-com/category_index/index.json b/code/data/seo_copy_published/jingxifa-com/category_index/index.json new file mode 100644 index 0000000..6fc250b --- /dev/null +++ b/code/data/seo_copy_published/jingxifa-com/category_index/index.json @@ -0,0 +1,22 @@ +{ + "title": "{parent_category_name}热门分类入口 - {site_name}", + "keywords": "{parent_category_name},{parent_category_name}分类,{parent_category_name}推荐,{site_name}", + "description": "{site_name}把{parent_category_name}常看分类入口集中到当前页面,适合先判断题材方向,再继续深入列表页和详情页。", + "intro_text": "当前页会先把{parent_category_name}方向的常看分类入口整理出来,便于先定方向,再继续筛选列表与详情页。", + "category_intro": "当前频道会优先承接{parent_category_name}相关分类路径,方便先看入口,再逐步进入更细列表。", + "intro_meta": "分类入口页强调先浏览、再筛选、再进入深页,帮助快速定位资源。", + "guide_cards": [ + { + "title": "先选频道", + "text": "从分类入口找到对应影视方向。" + }, + { + "title": "继续筛选", + "text": "进入列表后按更新、地区或标签缩小范围。" + }, + { + "title": "查看详情", + "text": "确认信息后再进入播放页观看。" + } + ] +} diff --git a/code/data/seo_copy_published/jingxifa-com/category_list/default.json b/code/data/seo_copy_published/jingxifa-com/category_list/default.json new file mode 100644 index 0000000..59f6c44 --- /dev/null +++ b/code/data/seo_copy_published/jingxifa-com/category_list/default.json @@ -0,0 +1,23 @@ +{ + "title": "{category_name}在线观看 - {site_name}", + "keywords": "{category_name}在线观看,{category_name}最新资源,{category_name}内容列表,{site_name}", + "description": "在京淅发影院浏览{category_name}在线观看内容列表,先查看最新资源与推荐,再进入详情页核对年份、地区、别名、演员或备注,最后跳转播放页继续观看。", + "intro_text": "这里汇总{category_name}相关资源,先浏览列表,再按更新时间、热度或标识筛选,继续进入详情页或播放页。", + "category_intro": "想找{category_name}内容,先看本页列表,再按需求筛选后进入深页查看。", + "intro_meta": "围绕{category_name}相关条目做集中露出,适合先看列表,再继续筛选目标内容。", + "guide_cards": [ + { + "title": "先看列表", + "text": "优先浏览{category_name}相关条目,先判断首屏命中是否符合需求。" + }, + { + "title": "继续筛选", + "text": "结合更新进度、热度和类型继续缩小范围。" + }, + { + "title": "进入详情页", + "text": "确认目标后进入详情页或播放页继续查看。" + } + ], + "provider": "openai" +} diff --git a/code/data/seo_copy_published/jingxifa-com/detail/default.json b/code/data/seo_copy_published/jingxifa-com/detail/default.json new file mode 100644 index 0000000..78c7390 --- /dev/null +++ b/code/data/seo_copy_published/jingxifa-com/detail/default.json @@ -0,0 +1,25 @@ +{ + "title_template": "{video_name}_{year}年{area_name}_{site_name}详情页", + "keywords_template": "{video_name},{video_alias},{year},{area_name},{lang_name},{director_names},{actor_names},{remarks}", + "description_template": "{site_name}详情页为你整理{video_name}的资料摘要,先快速确认影片信息,再根据年份、地区、别名、演员、导演和备注判断是否继续观看,最后可进入对应播放线路。", + "detail_body_lead": "本页用于查看{video_name}的基础资料与观看入口,便于先确认是否为你要找的内容。", + "detail_play_link_lead": "如需继续观看,可根据页面展示的播放线路{play_line}进入播放页。", + "detail_body_tail": "补充信息以页面实际展示为准;若存在别名{video_alias}、地区{area_name}、语言{lang_name}或备注{remarks},可据此进一步判断版本是否匹配。", + "detail_faq": "详情页适合先核对片名、年份、地区和别名,再决定是否进入播放页;若搜索结果较多,可结合导演{director_names}与演员{actor_names}继续区分。", + "guide_cards": [ + { + "title": "先看资料", + "text": "确认{video_name}的年份、地区与别名。" + }, + { + "title": "再选线路", + "text": "根据{play_line}进入对应播放页。" + }, + { + "title": "核对备注", + "text": "结合{remarks}判断版本是否匹配。" + } + ], + "topic_hint": "久久亚洲精品久久国产一区二区", + "provider": "openai" +} diff --git a/code/data/seo_copy_published/jingxifa-com/home/index.json b/code/data/seo_copy_published/jingxifa-com/home/index.json new file mode 100644 index 0000000..cee52d8 --- /dev/null +++ b/code/data/seo_copy_published/jingxifa-com/home/index.json @@ -0,0 +1,21 @@ +{ + "title": "京淅发影院_日韩欧美中文字幕电影与日韩精品视频在线观看_免费高清影视资源导航", + "keywords": "日韩欧美中文字幕电影,日韩精品极品视频在线观看免费,京淅发影院,高清电影,电视剧,综艺,动漫,短剧,在线播放", + "description": "京淅发影院搜集分享全网最新无删减好看的日韩欧美中文字幕电影影片,提供完整全集、无广告在线播放的VIP电影、抖音热门短剧、电视剧、综艺节目、动漫等万部高清优质视频,方便用户快速查找与持续更新观看。", + "intro_text": "欢迎来到京淅发影院,先看热门推荐,再按分类筛选,找到想看的日韩欧美中文字幕电影、日韩精品精品视频和更多高清影视资源。", + "intro_meta": "聚合最新影视资源,先浏览再筛选,直达详情页和播放页,提升找片效率。", + "guide_cards": [ + { + "title": "先看热门", + "text": "从首页快速浏览近期更新与高关注资源。" + }, + { + "title": "按分类找片", + "text": "进入频道后按题材、地区或类型继续筛选。" + }, + { + "title": "直达播放", + "text": "打开详情页后再进入播放页,减少重复查找。" + } + ] +} diff --git a/code/data/seo_copy_published/jingxifa-com/play/default.json b/code/data/seo_copy_published/jingxifa-com/play/default.json new file mode 100644 index 0000000..9e628a9 --- /dev/null +++ b/code/data/seo_copy_published/jingxifa-com/play/default.json @@ -0,0 +1,24 @@ +{ + "title_template": "{video_name}_{episode_name}_在线观看_{site_name}", + "keywords_template": "{video_name},在线观看,播放页,{play_line},{year},{area_name},{lang_name}", + "description_template": "{site_name}播放页提供{video_name}的在线播放入口,可先回到详情页核对{year}、{area_name}、{video_alias}、{actor_names}、{director_names}与{remarks},再根据{play_line}选择合适线路继续观看。", + "play_intro": "当前页面为{video_name}的播放入口,建议先确认详情信息,再选择适合的播放线路。", + "play_meta_note": "若线路较多,可优先对照{play_line}与页面标注,再返回详情页核实版本信息。", + "play_body_lead": "本页用于直接播放{video_name},并保留回到详情页核对资料的路径,方便你先判断再观看。", + "play_body_next": "如需切换版本或重新确认信息,可返回详情页查看{year}、{area_name}、{lang_name}、{video_alias}与{remarks}等线索。", + "guide_cards": [ + { + "title": "先核对信息", + "text": "回详情页确认年份、地区和别名。" + }, + { + "title": "再选线路", + "text": "按{play_line}切换合适播放源。" + }, + { + "title": "需要时返回", + "text": "版本不符时回到详情页重新查看。" + } + ], + "provider": "openai" +} diff --git a/code/data/seo_copy_published/jingxifa-com/search/landing.json b/code/data/seo_copy_published/jingxifa-com/search/landing.json new file mode 100644 index 0000000..2172054 --- /dev/null +++ b/code/data/seo_copy_published/jingxifa-com/search/landing.json @@ -0,0 +1,23 @@ +{ + "title": "{keyword}搜索结果 - 站内搜索 - 京淅发影院", + "keywords": "{keyword},搜索结果,站内搜索,相关结果,京淅发影院", + "description": "京淅发影院的{keyword}搜索结果页,先浏览匹配内容,再筛选更符合需求的条目,进入详情页查看年份、地区、别名、演员、导演或备注,最后跳转播放页继续观看。", + "intro_text": "这是{keyword}的站内搜索结果,先浏览相关条目,再缩小范围找到更合适的资源。", + "search_landing": "围绕{keyword}的相关结果已整理到本页,建议先看列表,再进入详情页或播放页确认信息。", + "intro_meta": "搜索结果页强调先浏览、再筛选、再进入详情页或播放页,提升检索效率。", + "faq_content": "搜索不到目标内容时,可以把“{keyword}”和人物、年份、剧情词组合搜索,通常更容易缩小到目标条目。", + "guide_cards": [ + { + "title": "先看相关结果", + "text": "快速确认与{keyword}匹配的条目。" + }, + { + "title": "换词再搜", + "text": "可尝试别名、年份或分类词继续检索。" + }, + { + "title": "进入详情页", + "text": "核对资料后再跳转播放页。" + } + ] +} diff --git a/code/data/seo_copy_published/jpjdxs-com/category_index/index.json b/code/data/seo_copy_published/jpjdxs-com/category_index/index.json new file mode 100644 index 0000000..2d959af --- /dev/null +++ b/code/data/seo_copy_published/jpjdxs-com/category_index/index.json @@ -0,0 +1,22 @@ +{ + "title": "{parent_category_name}分类导航与热门入口 - {site_name}", + "keywords": "{parent_category_name},{parent_category_name}分类,{parent_category_name}推荐,{site_name}", + "description": "{site_name}把{parent_category_name}常看分类入口集中到当前页面,适合先判断题材方向,再继续深入列表页和详情页。", + "intro_text": "如果你准备按题材找内容,这一页更适合先看{parent_category_name}分类入口,再决定下一步进入哪类列表。", + "category_intro": "{site_name}把{parent_category_name}的一级分类和细分方向集中到这里,适合先判断题材,再继续点进详情页。", + "intro_meta": "先浏览频道,再点进详情,最后选择播放线路。", + "guide_cards": [ + { + "title": "按分类找片", + "text": "先看频道,再缩小到具体内容。" + }, + { + "title": "筛选更高效", + "text": "结合年份、地区和备注快速定位。" + }, + { + "title": "继续到深页", + "text": "进入详情页或播放页完成观看。" + } + ] +} diff --git a/code/data/seo_copy_published/jpjdxs-com/category_list/default.json b/code/data/seo_copy_published/jpjdxs-com/category_list/default.json new file mode 100644 index 0000000..36d07b7 --- /dev/null +++ b/code/data/seo_copy_published/jpjdxs-com/category_list/default.json @@ -0,0 +1,23 @@ +{ + "title": "{category_name}在线观看 - 天堂影院最新资源内容列表", + "keywords": "{category_name}在线观看,{category_name}最新资源,{category_name}内容列表,天堂影院", + "description": "这里是{category_name}的在线观看内容列表页,建议先浏览条目,再按年份、地区、演员、备注进行筛选,确认目标后进入详情页或播放页继续观看,便于搜索收录和用户继续下钻。", + "intro_text": "{category_name}资源已按列表呈现,适合先快速浏览,再筛选出想看的影片或剧集,随后进入详情页或播放页。", + "category_intro": "这一页更像{category_name}的流量承接列表,适合先判断内容密度,再进入详情页查看具体信息。", + "intro_meta": "{category_name}在线观看列表页,支持先浏览再筛选并进入详情页或播放页。", + "guide_cards": [ + { + "title": "先看列表", + "text": "优先浏览{category_name}相关条目,先判断首屏命中是否符合需求。" + }, + { + "title": "继续筛选", + "text": "结合更新进度、热度和类型继续缩小范围。" + }, + { + "title": "进入详情页", + "text": "确认目标后进入详情页或播放页继续查看。" + } + ], + "provider": "openai" +} diff --git a/code/data/seo_copy_published/jpjdxs-com/detail/default.json b/code/data/seo_copy_published/jpjdxs-com/detail/default.json new file mode 100644 index 0000000..964c76d --- /dev/null +++ b/code/data/seo_copy_published/jpjdxs-com/detail/default.json @@ -0,0 +1,25 @@ +{ + "title_template": "{video_name}{episode_name}{year}{category_name}_{site_name}", + "keywords_template": "{video_name},{video_alias},{category_name},{year},{area_name},{lang_name},{actor_names},{director_names},{site_name}", + "description_template": "这里可查看{video_name}的资料摘要、别名、年份、地区、演员、导演与备注等信息,并引导你从详情页进入对应播放线路,适合先确认内容再观看。", + "detail_body_lead": "本页为{video_name}的详情资料页,可先核对别名{video_alias}、年份{year}、地区{area_name}、语言{lang_name}、演员{actor_names}、导演{director_names}与备注{remarks},再决定是否继续观看。", + "detail_play_link_lead": "如果你已确认片名与资料信息,可直接从本页跳转到播放页,选择{play_line}线路开始观看。", + "detail_body_tail": "建议先看简介和基础信息,再进入播放页;若存在多个线路,可优先选择更顺畅的线路继续。", + "detail_faq": "Q:这页能看什么信息?A:通常可查看片名、别名、年份、地区、演员、导演和备注。\\nQ:下一步怎么走?A:先确认资料,再进入播放页选择线路。", + "guide_cards": [ + { + "title": "先核对资料", + "text": "确认片名、别名、年份和地区。" + }, + { + "title": "再选播放线", + "text": "按线路进入更适合的播放页。" + }, + { + "title": "避免误点", + "text": "看备注后再决定是否继续观看。" + } + ], + "topic_hint": "亚洲天堂精品视频", + "provider": "openai" +} diff --git a/code/data/seo_copy_published/jpjdxs-com/home/index.json b/code/data/seo_copy_published/jpjdxs-com/home/index.json new file mode 100644 index 0000000..68566e6 --- /dev/null +++ b/code/data/seo_copy_published/jpjdxs-com/home/index.json @@ -0,0 +1,21 @@ +{ + "title": "亚洲国产天堂_天堂中文字幕免费一区_天堂视频一区_亚洲天堂精品视频_天堂影院", + "keywords": "亚洲国产天堂,天堂中文字幕免费一区,天堂视频一区,亚洲天堂精品视频,天堂影院", + "description": "天堂影院(www.jpjdxs.com)是一个免费为广大追剧迷提供在线播放的影视站,涵盖亚洲国产天堂、天堂中文字幕免费一区、天堂视频一区及亚洲天堂精品视频等热门资源,支持快速查找与在线观看,更新快、资源多、打开即看。", + "intro_text": "欢迎来到天堂影院,站内聚合亚洲国产天堂、天堂中文字幕免费一区、天堂视频一区与亚洲天堂精品视频等相关资源,方便你先浏览分类,再筛选想看的内容,最后直接进入详情页或播放页。", + "intro_meta": "先找片名,再看简介与标签,最后进入播放页,减少反复跳转。", + "guide_cards": [ + { + "title": "先看分类", + "text": "按频道浏览更快找到想看的资源。" + }, + { + "title": "再进详情", + "text": "查看年份、地区、演员与备注后再选择播放。" + }, + { + "title": "直接播放", + "text": "选好线路后即可进入在线播放页面。" + } + ] +} diff --git a/code/data/seo_copy_published/jpjdxs-com/play/default.json b/code/data/seo_copy_published/jpjdxs-com/play/default.json new file mode 100644 index 0000000..4c82a74 --- /dev/null +++ b/code/data/seo_copy_published/jpjdxs-com/play/default.json @@ -0,0 +1,24 @@ +{ + "title_template": "{video_name}在线观看_{play_line}_{site_name}", + "keywords_template": "{video_name},{play_line},在线观看,在线播放,{year},{area_name},{lang_name},{site_name}", + "description_template": "这里可直接观看{video_name},如需确认内容可先返回详情页查看{video_alias}、{year}、{area_name}、{actor_names}、{director_names}与{remarks},再根据{play_line}线路继续播放。", + "play_intro": "当前为{video_name}播放页,适合先确认线路与资料,再开始在线播放。", + "play_meta_note": "若需要更多信息,可先返回详情页核对别名、年份、地区与备注。", + "play_body_lead": "如果你已在详情页确认{video_name}的信息,可在本页选择{play_line}线路直接播放;如需复核资料,也可先回到详情页查看{video_alias}、{year}、{area_name}、{lang_name}与{remarks}。", + "play_body_next": "播放前建议先确认线路是否顺畅,若当前线路不理想,可切换其他播放方式继续观看。", + "guide_cards": [ + { + "title": "先看线路", + "text": "优先选择更顺畅的播放源。" + }, + { + "title": "可回详情页", + "text": "需要确认资料时先返回详情。" + }, + { + "title": "直接开始看", + "text": "选定线路后即可继续播放。" + } + ], + "provider": "openai" +} diff --git a/code/data/seo_copy_published/jpjdxs-com/search/landing.json b/code/data/seo_copy_published/jpjdxs-com/search/landing.json new file mode 100644 index 0000000..9fbc926 --- /dev/null +++ b/code/data/seo_copy_published/jpjdxs-com/search/landing.json @@ -0,0 +1,23 @@ +{ + "title": "{keyword}搜索结果 - 站内搜索 - 天堂影院", + "keywords": "{keyword},搜索结果,站内搜索,相关结果,天堂影院", + "description": "这里是{keyword}的站内搜索结果页,建议先浏览相关条目,再结合年份、地区、演员、备注进行筛选,找到匹配内容后进入详情页或播放页继续观看,提升命中率与继续访问效率。", + "intro_text": "正在为你整理{keyword}的相关结果,先浏览相近条目,再筛选最接近的影片或剧集,最后进入详情页或播放页。", + "search_landing": "如果你在找{keyword},可以先看搜索结果中的标题、简介和备注,再点进详情页确认信息。", + "intro_meta": "先浏览搜索结果,再筛选匹配内容,最后进入详情或播放页。", + "faq_content": "如果“{keyword}”结果不够准,建议继续补充演员名、年份、地区或题材词;如果结果太少,可以换简称、别名或近义词再搜。", + "guide_cards": [ + { + "title": "先看相关结果", + "text": "优先浏览最接近关键词的条目。" + }, + { + "title": "再做二次筛选", + "text": "用年份、别名和备注提高命中率。" + }, + { + "title": "进入详情播放", + "text": "确认无误后继续到详情页或播放页。" + } + ] +} diff --git a/code/data/seo_copy_published/jxxgygy-com/category_index/index.json b/code/data/seo_copy_published/jxxgygy-com/category_index/index.json new file mode 100644 index 0000000..d2a5ce2 --- /dev/null +++ b/code/data/seo_copy_published/jxxgygy-com/category_index/index.json @@ -0,0 +1,22 @@ +{ + "title": "{parent_category_name}热门分类入口 - {site_name}", + "keywords": "{parent_category_name},{parent_category_name}分类,{parent_category_name}推荐,{site_name}", + "description": "{site_name}把{parent_category_name}常看分类入口集中到当前页面,适合先判断题材方向,再继续深入列表页和详情页。", + "intro_text": "当前页会先把{parent_category_name}方向的常看分类入口整理出来,便于先定方向,再继续筛选列表与详情页。", + "category_intro": "当前频道会优先承接{parent_category_name}相关分类路径,方便先看入口,再逐步进入更细列表。", + "intro_meta": "先浏览分类,再筛选条件,最后进入详情页或播放页,减少跳转成本。", + "guide_cards": [ + { + "title": "按频道找片", + "text": "从国产、欧美、日韩、动漫等入口继续深入。" + }, + { + "title": "按条件筛选", + "text": "结合年份、地区和热度,快速缩小结果范围。" + }, + { + "title": "继续到深页", + "text": "确认目标后进入详情页,再选择播放页。" + } + ] +} diff --git a/code/data/seo_copy_published/jxxgygy-com/category_list/default.json b/code/data/seo_copy_published/jxxgygy-com/category_list/default.json new file mode 100644 index 0000000..6447702 --- /dev/null +++ b/code/data/seo_copy_published/jxxgygy-com/category_list/default.json @@ -0,0 +1,23 @@ +{ + "title": "{category_name}在线观看 - {site_name}", + "keywords": "{category_name}在线观看,{category_name}最新资源,{category_name}推荐,{category_name}内容列表,{site_name}", + "description": "这里是{category_name}内容列表页,适合先浏览当前分类下的最新资源,再按年份、地区、语言或备注继续筛选,随后进入详情页确认信息并跳转播放页。", + "intro_text": "{category_name}内容已整理为列表,方便先浏览再筛选;如果你在找某一部具体作品,可继续进入详情页查看年份、地区、演员、导演和备注。", + "category_intro": "先看{category_name}列表中的最新与推荐资源,再结合筛选条件继续缩小范围,找到更适合直接观看的条目。", + "intro_meta": "围绕{category_name}相关条目做集中露出,适合先看列表,再继续筛选目标内容。", + "guide_cards": [ + { + "title": "先看列表", + "text": "优先浏览{category_name}相关条目,先判断首屏命中是否符合需求。" + }, + { + "title": "继续筛选", + "text": "结合更新进度、热度和类型继续缩小范围。" + }, + { + "title": "进入详情页", + "text": "确认目标后进入详情页或播放页继续查看。" + } + ], + "provider": "openai" +} diff --git a/code/data/seo_copy_published/jxxgygy-com/detail/default.json b/code/data/seo_copy_published/jxxgygy-com/detail/default.json new file mode 100644 index 0000000..447aa06 --- /dev/null +++ b/code/data/seo_copy_published/jxxgygy-com/detail/default.json @@ -0,0 +1,25 @@ +{ + "title_template": "{video_name}在线观看_{year}年{area_name}{category_name}_{site_name}", + "keywords_template": "{video_name},{video_alias},{actor_names},{director_names},{year},{area_name},{lang_name},{remarks}", + "description_template": "{site_name}提供{video_name}的详情资料页,方便你先确认年份{year}、地区{area_name}、语言{lang_name}、演员{actor_names}、导演{director_names}与备注{remarks},再判断是否进入对应播放页。", + "detail_body_lead": "本页用于查看{video_name}的资料信息与观看入口,先核对片名、别名{video_alias}、年份{year}、地区{area_name}和语言{lang_name},再决定是否继续播放。", + "detail_play_link_lead": "如果信息匹配,可继续选择{play_line}播放线路进入观看页;若想先比对更多信息,也可以先回到详情页查看演员{actor_names}、导演{director_names}和备注{remarks}。", + "detail_body_tail": "详情页适合先确认事实线索,再进入播放页,减少误点和重复查找。", + "detail_faq": "Q: 这页能看到什么?\nA: 可查看{video_name}的基础资料、别名、年份、地区、演员、导演和备注。\nQ: 如果不确定是不是想看的片子怎么办?\nA: 先对比{video_alias}、{year}和{area_name},确认后再进入播放页。\nQ: 找到后下一步是什么?\nA: 选择合适的{play_line}线路进入观看。", + "guide_cards": [ + { + "title": "先核对资料", + "text": "对比片名、别名、年份和地区。" + }, + { + "title": "再选线路", + "text": "确认后选择{play_line}进入播放页。" + }, + { + "title": "保守判断", + "text": "信息不够时,先看演员、导演和备注。" + } + ], + "topic_hint": "久久久久国产一区二区三区", + "provider": "openai" +} diff --git a/code/data/seo_copy_published/jxxgygy-com/home/index.json b/code/data/seo_copy_published/jxxgygy-com/home/index.json new file mode 100644 index 0000000..c67bbaa --- /dev/null +++ b/code/data/seo_copy_published/jxxgygy-com/home/index.json @@ -0,0 +1,21 @@ +{ + "title": "久久久久国产一区二区三区_国产欧美精品一区二区三区_欧美视频在线免费播放_日韩电影免费在线观看视频_广源影院", + "keywords": "久久久久国产一区二区三区,国产欧美精品一区二区三区,欧美视频在线免费播放,久久国产精品免费看,日韩电影免费在线观看视频,广源影院", + "description": "广源影院提供免费最新高评分国产欧美精品一区二区三区、欧美视频在线免费播放、动漫新番日韩电影免费在线观看视频、完整版高清电影大全在线观看,海量无删减电影VIP电视剧全集尽在广源影视。", + "intro_text": "广源影院汇集国产欧美精品一区二区三区、欧美视频在线免费播放、日韩电影免费在线观看视频等热门资源,支持按分类浏览与快速搜索,方便尽快找到想看的电影、电视剧和动漫。", + "intro_meta": "先看分类,再用搜索筛选,点击详情页了解年份、地区、演员与备注,继续进入播放页。", + "guide_cards": [ + { + "title": "分类先看", + "text": "按类型和热度快速浏览,优先找到想看的片源。" + }, + { + "title": "搜索直达", + "text": "输入片名、别名或关键词,直接查看相关结果。" + }, + { + "title": "进入详情", + "text": "先确认年份、地区、演员和备注,再选择播放线路。" + } + ] +} diff --git a/code/data/seo_copy_published/jxxgygy-com/play/default.json b/code/data/seo_copy_published/jxxgygy-com/play/default.json new file mode 100644 index 0000000..1ff6367 --- /dev/null +++ b/code/data/seo_copy_published/jxxgygy-com/play/default.json @@ -0,0 +1,24 @@ +{ + "title_template": "{video_name}第{episode_name}集在线播放_{play_line}_{site_name}", + "keywords_template": "{video_name},{episode_name},{play_line},在线播放,观看页,{site_name}", + "description_template": "{site_name}的{video_name}播放页,适合在确认{year}、{area_name}、{lang_name}和{remarks}后直接观看;如需回看资料,可返回详情页核对{video_alias}、{actor_names}和{director_names}。", + "play_intro": "当前页面为{video_name}的播放入口,支持通过{play_line}线路继续观看;如需确认片源信息,可先回到详情页查看基础资料。", + "play_meta_note": "播放前建议先核对年份{year}、地区{area_name}、语言{lang_name}与备注{remarks},再选择更合适的线路。", + "play_body_lead": "如果你已经确认这是{video_name},可直接从当前{play_line}线路进入观看;若还需要比对信息,请先查看详情页中的别名{video_alias}、演员{actor_names}和导演{director_names}。", + "play_body_next": "观看过程中如需切换线路或回看资料,可返回详情页继续核对,再选择其他播放入口。", + "guide_cards": [ + { + "title": "直接观看", + "text": "确认片名后,从当前线路进入播放。" + }, + { + "title": "先看资料", + "text": "需要判断片源时,回到详情页核对信息。" + }, + { + "title": "切换线路", + "text": "如果当前线路不合适,可继续选择其他入口。" + } + ], + "provider": "openai" +} diff --git a/code/data/seo_copy_published/jxxgygy-com/search/landing.json b/code/data/seo_copy_published/jxxgygy-com/search/landing.json new file mode 100644 index 0000000..8c71f55 --- /dev/null +++ b/code/data/seo_copy_published/jxxgygy-com/search/landing.json @@ -0,0 +1,23 @@ +{ + "title": "{keyword}搜索结果 - 站内搜索 - {site_name}", + "keywords": "{keyword},搜索结果,站内搜索,相关结果,{site_name}", + "description": "这里是{keyword}的搜索结果页,建议先浏览匹配结果,再按片名、别名、年份或备注继续筛选,确认目标后进入详情页和播放页,提升查找效率。", + "intro_text": "围绕{keyword}的相关结果已汇总在这里,方便先浏览再筛选;如果你要找的是具体影片或某一集内容,可以继续下拉查看更准确的条目。", + "search_landing": "当前搜索页更适合先看“{keyword}”的首屏命中,再决定是否补充人物、年份或题材词。", + "intro_meta": "搜索结果页适合先浏览,再筛选,再进入详情页和播放页。", + "faq_content": "搜索不到目标内容时,可以把“{keyword}”和人物、年份、剧情词组合搜索,通常更容易缩小到目标条目。", + "guide_cards": [ + { + "title": "先浏览结果", + "text": "对比标题、别名和备注,快速判断是否匹配。" + }, + { + "title": "继续筛选", + "text": "用年份、地区和语言进一步缩小范围。" + }, + { + "title": "进入深页", + "text": "确认后查看详情,再跳转播放页。" + } + ] +} diff --git a/code/data/seo_copy_published/lcdchq-com/category_index/index.json b/code/data/seo_copy_published/lcdchq-com/category_index/index.json new file mode 100644 index 0000000..a85e168 --- /dev/null +++ b/code/data/seo_copy_published/lcdchq-com/category_index/index.json @@ -0,0 +1,22 @@ +{ + "title": "{parent_category_name}分类导航与热门入口 - {site_name}", + "keywords": "{parent_category_name},{parent_category_name}分类,{parent_category_name}推荐,{site_name}", + "description": "{site_name}汇总{parent_category_name}分类下的热门内容与细分方向,方便先按类型浏览,再继续进入更细的列表页或详情页。", + "intro_text": "如果你准备按题材找内容,这一页更适合先看{parent_category_name}分类入口,再决定下一步进入哪类列表。", + "category_intro": "{site_name}把{parent_category_name}的一级分类和细分方向集中到这里,适合先判断题材,再继续点进详情页。", + "intro_meta": "先浏览频道,再筛选内容,再进入详情页或播放页,利于继续深度访问。", + "guide_cards": [ + { + "title": "浏览频道", + "text": "先看分类入口,快速锁定想找的内容方向。" + }, + { + "title": "继续筛选", + "text": "按地区、类型、更新情况缩小范围。" + }, + { + "title": "进入深页", + "text": "确认目标后,直接到详情页或播放页查看。" + } + ] +} diff --git a/code/data/seo_copy_published/lcdchq-com/category_list/default.json b/code/data/seo_copy_published/lcdchq-com/category_list/default.json new file mode 100644 index 0000000..ac11a75 --- /dev/null +++ b/code/data/seo_copy_published/lcdchq-com/category_list/default.json @@ -0,0 +1,23 @@ +{ + "title": "{category_name}在线观看 - 欧美影院 - 最新资源推荐", + "keywords": "{category_name}在线观看,{category_name}最新资源,{category_name}推荐,{category_name}内容列表,在线观看,欧美影院", + "description": "{category_name}在线观看页面为流量承接列表页,建议先浏览当前列表,再按更新时间、地区、备注等信息继续筛选,之后进入详情页或播放页查看完整内容,提升查找效率和收录深度。", + "intro_text": "这里汇集{category_name}相关内容,先浏览内容列表,再按更新时间、地区或备注继续筛选,找到更合适的条目后进入详情页或播放页继续查看。", + "category_intro": "{category_name}内容列表适合先看标题与基础信息,再进行二次筛选,减少无效点击,快速到达目标详情或播放页面。", + "intro_meta": "{category_name}在线观看列表页,支持先浏览再筛选并进入详情页或播放页。", + "guide_cards": [ + { + "title": "先看列表", + "text": "优先浏览{category_name}相关条目,先判断首屏命中是否符合需求。" + }, + { + "title": "继续筛选", + "text": "结合更新进度、热度和类型继续缩小范围。" + }, + { + "title": "进入详情页", + "text": "确认目标后进入详情页或播放页继续查看。" + } + ], + "provider": "openai" +} diff --git a/code/data/seo_copy_published/lcdchq-com/detail/default.json b/code/data/seo_copy_published/lcdchq-com/detail/default.json new file mode 100644 index 0000000..3c14b50 --- /dev/null +++ b/code/data/seo_copy_published/lcdchq-com/detail/default.json @@ -0,0 +1,25 @@ +{ + "title_template": "{video_name}{video_alias}_{year}_{area_name}_{site_name}", + "keywords_template": "{video_name},{video_alias},{year},{area_name},{lang_name},{director_names},{actor_names},{category_name},详情,资料页", + "description_template": "{site_name}提供{video_name}详情资料页,方便先查看年份、地区、语言、导演、演员、别名与备注等信息,再进入播放页选择线路;若你正在确认这部作品是否符合需求,这一页可以帮助你快速完成筛选。", + "detail_body_lead": "本页为{video_name}的资料详情页,重点展示年份{year}、地区{area_name}、语言{lang_name}、导演{director_names}、演员{actor_names}、别名{video_alias}及备注{remarks}等信息,便于先判断是否匹配目标内容。", + "detail_play_link_lead": "确认资料无误后,可继续进入播放页查看{play_line}线路,按实际加载情况选择合适入口。", + "detail_body_tail": "如果你正在寻找同类内容,也可以回到{category_name}继续浏览,或重新使用站内搜索查找更接近的结果。", + "detail_faq": "Q:这页主要看什么?\nA:先看年份、地区、演员、导演、别名和备注,再决定是否进入播放页。\nQ:如果信息不够明确怎么办?\nA:可以返回列表页或搜索页继续筛选。", + "guide_cards": [ + { + "title": "先核对资料", + "text": "优先查看年份、地区、语言和备注。" + }, + { + "title": "再进播放页", + "text": "确认匹配后进入{play_line}线路。" + }, + { + "title": "回到列表页", + "text": "若不符合预期,可继续筛选同类内容。" + } + ], + "topic_hint": "欧美国产精品一区三区欧美视频在线播放", + "provider": "openai" +} diff --git a/code/data/seo_copy_published/lcdchq-com/home/index.json b/code/data/seo_copy_published/lcdchq-com/home/index.json new file mode 100644 index 0000000..477ae28 --- /dev/null +++ b/code/data/seo_copy_published/lcdchq-com/home/index.json @@ -0,0 +1,21 @@ +{ + "title": "欧美影院_欧美国产精品一区三区_欧美视频在线播放_免费影视资源", + "keywords": "欧美国产精品一区三区,欧美视频在线播放,国产日韩欧美综合在线播放视频,亚洲 中文 欧美 日韩 在线观看,欧美影院,免费影视资源,最新上映电影,短剧,在线观看", + "description": "欧美影院为广大影迷朋友提供海量的免费影视资源,包括欧美视频在线播放、短剧、最新上映电影大片,以及国产日韩欧美综合在线播放视频和亚洲 中文 欧美 日韩 在线观看,方便快速浏览、持续更新、轻松找到想看的内容。", + "intro_text": "欢迎来到欧美影院,站内收录欧美国产精品一区三区、欧美视频在线播放以及国产日韩欧美综合在线播放视频等热门内容,支持按分类浏览、按关键词查找,先看简介再进详情页或播放页,方便更快找到合适资源。", + "intro_meta": "先浏览,再筛选,最后进入详情页或播放页,提升查找效率与收录路径。", + "guide_cards": [ + { + "title": "先看分类", + "text": "按欧美、国产、日韩、亚洲等方向快速进入对应栏目。" + }, + { + "title": "再搜关键词", + "text": "直接输入片名、别名或演员名,缩短找到结果的时间。" + }, + { + "title": "继续看详情", + "text": "确认年份、地区、备注后,再进入播放页查看线路。" + } + ] +} diff --git a/code/data/seo_copy_published/lcdchq-com/play/default.json b/code/data/seo_copy_published/lcdchq-com/play/default.json new file mode 100644 index 0000000..34e080c --- /dev/null +++ b/code/data/seo_copy_published/lcdchq-com/play/default.json @@ -0,0 +1,24 @@ +{ + "title_template": "{video_name}在线观看_{play_line}_{site_name}", + "keywords_template": "{video_name}在线观看,{video_alias},{year},{area_name},{play_line},播放页,在线播放,{site_name}", + "description_template": "{site_name}为{video_name}提供在线播放页面,可先返回详情页核对年份{year}、地区{area_name}、语言{lang_name}、导演{director_names}、演员{actor_names}与备注{remarks},再根据{play_line}线路选择合适播放入口。", + "play_intro": "当前页面为{video_name}的播放页,建议先结合详情资料确认基本信息,再按{play_line}线路进入播放,避免误点不匹配内容。", + "play_meta_note": "播放前可回看详情页,重点核对年份、地区、别名和备注。", + "play_body_lead": "若你已确认这部作品信息无误,可直接使用{play_line}线路开始在线播放;如需再次核对,可返回详情页查看{video_alias}、{actor_names}、{director_names}等资料。", + "play_body_next": "播放过程中如需切换线路,可结合页面可用入口继续选择,或返回{category_name}、搜索页重新查找同类资源。", + "guide_cards": [ + { + "title": "先看详情", + "text": "播放前建议核对年份、地区和备注。" + }, + { + "title": "选择线路", + "text": "根据{play_line}线路进入合适播放入口。" + }, + { + "title": "回查同类", + "text": "若不匹配,可返回分类页继续找。" + } + ], + "provider": "openai" +} diff --git a/code/data/seo_copy_published/lcdchq-com/search/landing.json b/code/data/seo_copy_published/lcdchq-com/search/landing.json new file mode 100644 index 0000000..424fe81 --- /dev/null +++ b/code/data/seo_copy_published/lcdchq-com/search/landing.json @@ -0,0 +1,23 @@ +{ + "title": "{keyword}搜索结果 - 站内搜索 - 欧美影院", + "keywords": "{keyword},搜索结果,站内搜索,相关结果,影视搜索,欧美影院", + "description": "{keyword}搜索结果页用于站内搜索承接,建议先浏览相关结果,再根据片名、别名、年份、地区等信息继续筛选,最后进入详情页或播放页查看,帮助用户更快找到匹配内容。", + "intro_text": "以下是与{keyword}相关的站内搜索结果,先浏览结果列表,再结合片名、别名、年份和备注继续筛选,找到目标后进入详情页或播放页。", + "search_landing": "当前搜索页更适合先看“{keyword}”的首屏命中,再决定是否补充人物、年份或题材词。", + "intro_meta": "先浏览搜索结果,再筛选,再进入详情页或播放页,提升匹配效率。", + "faq_content": "如果“{keyword}”结果不够准,建议继续补充演员名、年份、地区或题材词;如果结果太少,可以换简称、别名或近义词再搜。", + "guide_cards": [ + { + "title": "先看结果", + "text": "从相关结果里先确认是否命中目标。" + }, + { + "title": "再换关键词", + "text": "试试片名、别名、年份或地区组合搜索。" + }, + { + "title": "进入详情页", + "text": "确认匹配后再查看完整资料与播放入口。" + } + ] +} diff --git a/code/data/seo_copy_published/leici1940-com/category_index/index.json b/code/data/seo_copy_published/leici1940-com/category_index/index.json new file mode 100644 index 0000000..121a0b4 --- /dev/null +++ b/code/data/seo_copy_published/leici1940-com/category_index/index.json @@ -0,0 +1,22 @@ +{ + "title": "{parent_category_name}热门分类入口 - {site_name}", + "keywords": "{parent_category_name},{parent_category_name}分类,{parent_category_name}推荐,{site_name}", + "description": "{site_name}把{parent_category_name}常看分类入口集中到当前页面,适合先判断题材方向,再继续深入列表页和详情页。", + "intro_text": "如果你准备按题材找内容,这一页更适合先看{parent_category_name}分类入口,再决定下一步进入哪类列表。", + "category_intro": "{site_name}把{parent_category_name}的一级分类和细分方向集中到这里,适合先判断题材,再继续点进详情页。", + "intro_meta": "先浏览分类,再筛选目标条目,继续进入详情页或播放页。", + "guide_cards": [ + { + "title": "按分类找内容", + "text": "先从频道入口进入,缩小查找范围。" + }, + { + "title": "按更新筛选", + "text": "优先查看新资源,减少重复查找。" + }, + { + "title": "继续到深页", + "text": "选定条目后进入详情页或播放页。" + } + ] +} diff --git a/code/data/seo_copy_published/leici1940-com/category_list/default.json b/code/data/seo_copy_published/leici1940-com/category_list/default.json new file mode 100644 index 0000000..5ee03e4 --- /dev/null +++ b/code/data/seo_copy_published/leici1940-com/category_list/default.json @@ -0,0 +1,23 @@ +{ + "title": "{category_name}在线观看 - {site_name}", + "keywords": "{category_name}在线观看,{category_name}最新资源,{category_name}推荐,{category_name}内容列表,{site_name}", + "description": "在{site_name}浏览{category_name}在线观看与最新资源列表,先快速浏览条目,再按更新时间、热度和简介筛选,随后进入详情页或播放页获取更完整信息。", + "intro_text": "这里汇总{category_name}相关内容,适合先浏览列表、再筛选目标条目,快速找到可继续观看的资源。", + "category_intro": "围绕{category_name}整理内容列表,便于先看推荐,再看更新,最后进入详情页或播放页。", + "intro_meta": "{category_name}在线观看列表页,支持先浏览再筛选并进入详情页或播放页。", + "guide_cards": [ + { + "title": "先看列表", + "text": "优先浏览{category_name}相关条目,先判断首屏命中是否符合需求。" + }, + { + "title": "继续筛选", + "text": "结合更新进度、热度和类型继续缩小范围。" + }, + { + "title": "进入详情页", + "text": "确认目标后进入详情页或播放页继续查看。" + } + ], + "provider": "openai" +} diff --git a/code/data/seo_copy_published/leici1940-com/detail/default.json b/code/data/seo_copy_published/leici1940-com/detail/default.json new file mode 100644 index 0000000..cb9aad3 --- /dev/null +++ b/code/data/seo_copy_published/leici1940-com/detail/default.json @@ -0,0 +1,25 @@ +{ + "title_template": "{video_name}{video_alias}详情_{site_name}", + "keywords_template": "{video_name},{video_alias},{actor_names},{director_names},{area_name},{lang_name},{year},{site_name}", + "description_template": "查看{video_name}在{site_name}的资料页摘要,可先了解{year}、{area_name}、{lang_name}、{director_names}、{actor_names}等事实线索,再决定进入详情或播放页继续查看。", + "detail_body_lead": "本页整理{video_name}的基础资料与观看入口,适合先确认{remarks}等信息,再继续进入播放页或相关线路。", + "detail_play_link_lead": "如需继续观看,可从本页跳转到对应播放线路{play_line},先核对条目,再选择合适的播放入口。", + "detail_body_tail": "如果你只是在找资料,这里可以先快速核对{year}、{area_name}、{lang_name}、{director_names}、{actor_names}与{video_alias};如果要观看,则继续进入播放页。", + "detail_faq": "Q:这里能先看哪些信息?\nA:可先看年份、地区、语言、导演、演员、别名和备注等事实线索。\nQ:下一步怎么走?\nA:确认条目后,进入对应播放页选择线路继续。", + "guide_cards": [ + { + "title": "先核对资料", + "text": "查看年份、地区、演员和导演等信息。" + }, + { + "title": "确认条目再进播放", + "text": "避免误点,先判断是否为目标内容。" + }, + { + "title": "按线路继续", + "text": "从{play_line}进入播放页选择可用线路。" + } + ], + "topic_hint": "亚洲国产欧美在线日韩免费视频一区", + "provider": "openai" +} diff --git a/code/data/seo_copy_published/leici1940-com/home/index.json b/code/data/seo_copy_published/leici1940-com/home/index.json new file mode 100644 index 0000000..b9d6b16 --- /dev/null +++ b/code/data/seo_copy_published/leici1940-com/home/index.json @@ -0,0 +1,21 @@ +{ + "title": "亚洲国产欧美在线日韩免费视频一区,中文字幕日韩欧美一区二区三区,日韩在线观看视频免费,日韩欧美国产综合免费播放_仪电影院", + "keywords": "亚洲国产欧美在线日韩免费视频一区,中文字幕日韩欧美一区二区三区,日韩在线观看视频免费,日韩欧美国产综合免费播放,仪电影院", + "description": "仪电影院提供亚洲国产欧美在线日韩免费视频一区,中文字幕日韩欧美一区二区三区,日韩在线观看视频免费,日韩欧美国产综合免费播放等资源超前免费在线观看,实时更新在线播放,是影迷爱好者的电影天堂。", + "intro_text": "仪电影院聚合亚洲国产欧美在线日韩免费视频一区、中文字幕日韩欧美一区二区三区、日韩在线观看视频免费、日韩欧美国产综合免费播放等热门资源,支持快速浏览与在线播放,帮助你尽快找到想看的影片内容。", + "intro_meta": "聚合热门影片与更新内容,先浏览再进入详情页和播放页,获取更直接的观影路径。", + "guide_cards": [ + { + "title": "先看最新更新", + "text": "从首页快速浏览新内容,优先找到近期更新资源。" + }, + { + "title": "再进详情页", + "text": "查看影片资料、年份与地区信息,减少无效点击。" + }, + { + "title": "直接切换播放", + "text": "确认内容后进入播放页,选择可用线路继续观看。" + } + ] +} diff --git a/code/data/seo_copy_published/leici1940-com/play/default.json b/code/data/seo_copy_published/leici1940-com/play/default.json new file mode 100644 index 0000000..b76a316 --- /dev/null +++ b/code/data/seo_copy_published/leici1940-com/play/default.json @@ -0,0 +1,24 @@ +{ + "title_template": "{video_name}{episode_name}_在线播放_{site_name}", + "keywords_template": "{video_name},在线播放,{episode_name},{play_line},{area_name},{lang_name},{year},{site_name}", + "description_template": "正在查看{video_name}{episode_name}的在线播放页,可先回到详情页核对{year}、{area_name}、{lang_name}、{director_names}、{actor_names}与{remarks},再根据{play_line}判断可用线路继续观看。", + "play_intro": "本页提供{video_name}{episode_name}的播放入口,建议先回详情页确认资料,再选择合适线路开始播放。", + "play_meta_note": "若线路加载异常,可先对照详情页的年份、地区、语言、别名与备注信息,再切换其他播放入口。", + "play_body_lead": "当前页面用于在线播放{video_name}{episode_name},你可以先确认条目是否匹配,再根据{play_line}选择可用线路继续。", + "play_body_next": "如需更多信息,可返回详情页查看{year}、{area_name}、{lang_name}、{director_names}、{actor_names}与{video_alias}等资料,再决定是否切换线路。", + "guide_cards": [ + { + "title": "先看线路", + "text": "优先判断{play_line}是否可用。" + }, + { + "title": "回查资料", + "text": "必要时返回详情页核对基础信息。" + }, + { + "title": "切换继续看", + "text": "若当前线路不合适,尝试其他播放入口。" + } + ], + "provider": "openai" +} diff --git a/code/data/seo_copy_published/leici1940-com/search/landing.json b/code/data/seo_copy_published/leici1940-com/search/landing.json new file mode 100644 index 0000000..b6801dd --- /dev/null +++ b/code/data/seo_copy_published/leici1940-com/search/landing.json @@ -0,0 +1,23 @@ +{ + "title": "{keyword}搜索结果 - 站内搜索 - {site_name}", + "keywords": "{keyword},搜索结果,站内搜索,相关结果,{site_name}", + "description": "这里展示{keyword}的站内搜索结果,建议先浏览结果列表,再根据标题、简介与更新时间筛选相关条目,最后进入详情页或播放页继续查看。", + "intro_text": "围绕{keyword}的搜索结果已整理在这里,先看匹配度,再筛选更合适的条目,减少无效跳转。", + "search_landing": "站内搜索结果会优先展示与{keyword}匹配度更高的内容,适合先浏览、再筛选、再进入详情页或播放页。", + "intro_meta": "先浏览搜索结果,再按标题与简介筛选,继续进入详情页或播放页。", + "faq_content": "如果“{keyword}”结果不够准,建议继续补充演员名、年份、地区或题材词;如果结果太少,可以换简称、别名或近义词再搜。", + "guide_cards": [ + { + "title": "先看匹配度", + "text": "优先选择标题和关键词更接近的结果。" + }, + { + "title": "再看简介", + "text": "通过简介与更新时间判断是否继续。" + }, + { + "title": "继续深度查看", + "text": "进入详情页或播放页获取完整路径。" + } + ] +} diff --git a/code/data/seo_copy_published/lgyz-net/category_index/index.json b/code/data/seo_copy_published/lgyz-net/category_index/index.json new file mode 100644 index 0000000..45f19cd --- /dev/null +++ b/code/data/seo_copy_published/lgyz-net/category_index/index.json @@ -0,0 +1,22 @@ +{ + "title": "{parent_category_name}热门分类入口 - {site_name}", + "keywords": "{parent_category_name},{parent_category_name}分类,{parent_category_name}推荐,{site_name}", + "description": "{site_name}把{parent_category_name}常看分类入口集中到当前页面,适合先判断题材方向,再继续深入列表页和详情页。", + "intro_text": "如果你准备按题材找内容,这一页更适合先看{parent_category_name}分类入口,再决定下一步进入哪类列表。", + "category_intro": "{site_name}把{parent_category_name}的一级分类和细分方向集中到这里,适合先判断题材,再继续点进详情页。", + "intro_meta": "分类入口清晰,便于先浏览、再筛选、再进入详情页或播放页。", + "guide_cards": [ + { + "title": "先选频道", + "text": "从电影、电视剧、综艺、动漫、短剧中先找到目标分类。" + }, + { + "title": "再按条件筛", + "text": "结合更新、地区、类型继续缩小范围。" + }, + { + "title": "继续看详情", + "text": "进入详情页核对信息,再决定是否播放。" + } + ] +} diff --git a/code/data/seo_copy_published/lgyz-net/category_list/default.json b/code/data/seo_copy_published/lgyz-net/category_list/default.json new file mode 100644 index 0000000..4e8e3c4 --- /dev/null +++ b/code/data/seo_copy_published/lgyz-net/category_list/default.json @@ -0,0 +1,23 @@ +{ + "title": "{category_name}在线观看 - 最新资源推荐 - {site_name}", + "keywords": "{category_name}在线观看,{category_name}最新资源,{category_name}推荐,{category_name}内容列表,{site_name}", + "description": "这里是{category_name}的内容列表页,先浏览最新资源和推荐条目,再根据年份、地区、备注等信息继续筛选,最后进入详情页或播放页查看。", + "intro_text": "{category_name}内容已按列表整理,适合先快速浏览,再结合更新、年份和备注筛选,找到更适合的条目后进入详情页或播放页。", + "category_intro": "作为流量承接列表页,这里重点展示{category_name}在线观看相关资源,方便用户先看列表、再缩小范围、最后直达播放。", + "intro_meta": "{category_name}在线观看列表页,支持先浏览再筛选并进入详情页或播放页。", + "guide_cards": [ + { + "title": "先看列表", + "text": "优先浏览{category_name}相关条目,先判断首屏命中是否符合需求。" + }, + { + "title": "继续筛选", + "text": "结合更新进度、热度和类型继续缩小范围。" + }, + { + "title": "进入详情页", + "text": "确认目标后进入详情页或播放页继续查看。" + } + ], + "provider": "openai" +} diff --git a/code/data/seo_copy_published/lgyz-net/detail/default.json b/code/data/seo_copy_published/lgyz-net/detail/default.json new file mode 100644 index 0000000..41f3043 --- /dev/null +++ b/code/data/seo_copy_published/lgyz-net/detail/default.json @@ -0,0 +1,25 @@ +{ + "title_template": "{video_name}{episode_name}{remarks}-{category_name}-{year}-{site_name}", + "keywords_template": "{video_name},{video_alias},{category_name},{year},{area_name},{lang_name},{director_names},{actor_names},{site_name}", + "description_template": "{site_name}为您整理{video_name}的资料与观看入口,先查看剧情/简介与年份、地区、导演、演员、别名、备注等线索,再进入详情页或播放页继续查看。", + "detail_body_lead": "本页用于快速了解{video_name}的基础资料与观看路径,先核对{year}、{area_name}、{lang_name}、{director_names}、{actor_names}、{video_alias}、{remarks}等信息,再决定是否继续观看。", + "detail_play_link_lead": "如需继续观看,可先确认当前详情与播放线路,再进入对应播放页查看{play_line}。", + "detail_body_tail": "页面提供资料摘要与观看入口,适合先浏览、再判断、再进入播放页。", + "detail_faq": "Q: 这里能看到什么?A: 可先查看{video_name}的资料线索与播放入口。Q: 信息不够怎么办?A: 可结合别名、年份、地区和备注继续筛选。Q: 下一步怎么走?A: 确认后进入对应播放页查看线路。", + "guide_cards": [ + { + "title": "先核对资料", + "text": "重点看年份、地区、别名和备注。" + }, + { + "title": "再看播放线路", + "text": "确认线路后再进入播放页更高效。" + }, + { + "title": "需要时回到列表", + "text": "可返回分类列表继续筛选同类内容。" + } + ], + "topic_hint": "亚洲国产精品免费", + "provider": "openai" +} diff --git a/code/data/seo_copy_published/lgyz-net/home/index.json b/code/data/seo_copy_published/lgyz-net/home/index.json new file mode 100644 index 0000000..fd02147 --- /dev/null +++ b/code/data/seo_copy_published/lgyz-net/home/index.json @@ -0,0 +1,21 @@ +{ + "title": "亚洲精品高清视频在线观看_最新电影电视剧综艺动漫短剧_免费观看-龙港亚洲影院", + "keywords": "龙港亚洲影院,亚洲精品高清视频在线观看,最新电影,电视剧,综艺,动漫,短剧,高清播放,免费在线观看", + "description": "龙港亚洲影院(lgyz.net)聚合最新电影、电视剧、综艺、动漫和短剧资源,主打亚洲精品高清视频在线观看,支持高清流畅播放,无需注册即可免费观看。", + "intro_text": "龙港亚洲影院汇集热门亚洲及国产影视资源,更新快、分类清晰、打开即看,适合想要快速找到电影、剧集、综艺或动漫内容的用户。", + "intro_meta": "每日更新热门亚洲及国产影视,高清流畅播放,无需注册即可免费观看。", + "guide_cards": [ + { + "title": "先看首页推荐", + "text": "先浏览热门更新,再进入分类页筛选更合适的内容。" + }, + { + "title": "直接搜片更快", + "text": "输入片名、别名或关键词,快速找到对应详情页。" + }, + { + "title": "点进播放页", + "text": "查看线路与简介后再播放,减少跳转成本。" + } + ] +} diff --git a/code/data/seo_copy_published/lgyz-net/play/default.json b/code/data/seo_copy_published/lgyz-net/play/default.json new file mode 100644 index 0000000..af94220 --- /dev/null +++ b/code/data/seo_copy_published/lgyz-net/play/default.json @@ -0,0 +1,24 @@ +{ + "title_template": "{video_name}在线播放_{play_line}_{site_name}", + "keywords_template": "{video_name}在线播放,{play_line},{video_alias},{category_name},{year},{area_name},{lang_name},{site_name}", + "description_template": "{site_name}提供{video_name}的在线播放入口,建议先返回详情页核对{year}、{area_name}、{lang_name}、{remarks}等信息,再根据{play_line}选择合适线路继续观看。", + "play_intro": "当前页面为{video_name}播放页,先确认内容信息与线路,再开始观看更稳妥。", + "play_meta_note": "如需比对更多信息,可先返回详情页查看别名、年份、地区和备注。", + "play_body_lead": "这里展示{video_name}的在线播放内容,若有多条线路,可结合{play_line}进行选择;建议先回看详情页确认基础资料,再进入本页播放。", + "play_body_next": "如果当前线路不稳定,可返回详情页切换线路或继续查看相关播放入口。", + "guide_cards": [ + { + "title": "先选线路", + "text": "优先选择更顺畅的播放线路。" + }, + { + "title": "可回详情页", + "text": "需要核对信息时,先返回详情页再继续。" + }, + { + "title": "播放不顺再切换", + "text": "遇到加载问题可尝试其他线路。" + } + ], + "provider": "openai" +} diff --git a/code/data/seo_copy_published/lgyz-net/search/landing.json b/code/data/seo_copy_published/lgyz-net/search/landing.json new file mode 100644 index 0000000..a01f403 --- /dev/null +++ b/code/data/seo_copy_published/lgyz-net/search/landing.json @@ -0,0 +1,23 @@ +{ + "title": "{keyword}搜索结果 - 站内搜索 - 龙港亚洲影院", + "keywords": "{keyword},搜索结果,站内搜索,相关结果,龙港亚洲影院", + "description": "这里是{keyword}的站内搜索结果页,先浏览相关结果,再按标题、年份、地区和备注继续筛选,最后进入详情页或播放页查看。", + "intro_text": "围绕{keyword}展示相关结果,适合先快速浏览搜索命中内容,再进一步筛选后进入详情页或播放页。", + "search_landing": "建议先用“{keyword}”确认结果方向,再逐步叠加更细的搜索词把范围压小。", + "intro_meta": "搜索结果页帮助用户先浏览、再筛选、再进入详情页或播放页。", + "faq_content": "如果“{keyword}”结果不够准,建议继续补充演员名、年份、地区或题材词;如果结果太少,可以换简称、别名或近义词再搜。", + "guide_cards": [ + { + "title": "换词再搜", + "text": "可尝试片名别名、简称、年份或地区关键词。" + }, + { + "title": "先看命中结果", + "text": "优先浏览标题和备注更接近需求的条目。" + }, + { + "title": "进入详情确认", + "text": "核对信息后再打开播放页,减少误点。" + } + ] +} diff --git a/code/data/seo_copy_published/lmjcg-com/category_index/index.json b/code/data/seo_copy_published/lmjcg-com/category_index/index.json new file mode 100644 index 0000000..6f8e108 --- /dev/null +++ b/code/data/seo_copy_published/lmjcg-com/category_index/index.json @@ -0,0 +1,22 @@ +{ + "title": "{parent_category_name}热门分类入口 - {site_name}", + "keywords": "{parent_category_name},{parent_category_name}分类,{parent_category_name}推荐,{site_name}", + "description": "{site_name}汇总{parent_category_name}分类下的热门内容与细分方向,方便先按类型浏览,再继续进入更细的列表页或详情页。", + "intro_text": "如果你准备按题材找内容,这一页更适合先看{parent_category_name}分类入口,再决定下一步进入哪类列表。", + "category_intro": "{site_name}把{parent_category_name}的一级分类和细分方向集中到这里,适合先判断题材,再继续点进详情页。", + "intro_meta": "先浏览分类,再筛选目标内容,最后进入详情页或播放页。", + "guide_cards": [ + { + "title": "按分类快速定位", + "text": "先看分类导航,减少无效翻找。" + }, + { + "title": "沿详情页继续深入", + "text": "进入详情页后再确认资料与观看入口。" + }, + { + "title": "找到就直接播放", + "text": "确认目标内容后,直接进入播放页。" + } + ] +} diff --git a/code/data/seo_copy_published/lmjcg-com/category_list/default.json b/code/data/seo_copy_published/lmjcg-com/category_list/default.json new file mode 100644 index 0000000..c9e08a0 --- /dev/null +++ b/code/data/seo_copy_published/lmjcg-com/category_list/default.json @@ -0,0 +1,23 @@ +{ + "title": "{category_name}在线观看 - 欧美影院", + "keywords": "{category_name}在线观看,最新资源,{category_name}推荐,内容列表,欧美影院", + "description": "这里汇集{category_name}相关在线观看资源,适合先浏览内容列表,再按年份、地区、备注或更新情况筛选,最后进入详情页或播放页查看。页面为用户和搜索引擎提供清晰的承接路径,帮助尽快找到可观看的目标内容。", + "intro_text": "正在找{category_name}在线观看资源?先从内容列表浏览,再按更新时间和资料线索筛选,随后进入详情页或播放页继续查看。", + "category_intro": "本页聚合{category_name}相关内容列表,适合先看条目、再做筛选、最后进入深页确认播放信息。", + "intro_meta": "{category_name}在线观看列表页,支持先浏览再筛选并进入详情页或播放页。", + "guide_cards": [ + { + "title": "先看列表", + "text": "优先浏览{category_name}相关条目,先判断首屏命中是否符合需求。" + }, + { + "title": "继续筛选", + "text": "结合更新进度、热度和类型继续缩小范围。" + }, + { + "title": "进入详情页", + "text": "确认目标后进入详情页或播放页继续查看。" + } + ], + "provider": "openai" +} diff --git a/code/data/seo_copy_published/lmjcg-com/detail/default.json b/code/data/seo_copy_published/lmjcg-com/detail/default.json new file mode 100644 index 0000000..d236a44 --- /dev/null +++ b/code/data/seo_copy_published/lmjcg-com/detail/default.json @@ -0,0 +1,25 @@ +{ + "title_template": "{video_name}{video_alias}在线观看_{year}{area_name}_{site_name}", + "keywords_template": "{video_name},{video_alias},{actor_names},{director_names},{year},{area_name},{lang_name},在线观看,{site_name}", + "description_template": "在{site_name}查看{video_name}{video_alias}的详情资料页,先了解年份、地区、演员、导演、语言和备注等事实线索,再决定是否进入播放页观看。页面适合先查信息、再筛选、最后进入深层播放入口。", + "detail_body_lead": "{site_name}为你整理了{video_name}{video_alias}的资料信息,方便先确认{year}、{area_name}、{lang_name}、{actor_names}、{director_names}与{remarks}等内容,再继续判断是否观看。", + "detail_play_link_lead": "如果你已经确认想看,可继续查看对应播放线路{play_line},从详情页进入播放页获取完整观看路径。", + "detail_body_tail": "本页以资料信息为主,帮助你先了解内容背景,再顺着详情页进入播放页,减少无效跳转。", + "detail_faq": "Q:这页能直接看吗?A:建议先查看资料,再进入播放页选择线路。\\nQ:没有完整信息怎么办?A:可优先参考年份、地区、别名和备注,帮助确认是否匹配。\\nQ:如何继续找同类内容?A:可从分类页或搜索页继续筛选相关资源。", + "guide_cards": [ + { + "title": "先看资料线索", + "text": "年份、地区、演员等信息优先确认。" + }, + { + "title": "再进播放线路", + "text": "匹配后进入播放页,选择合适线路。" + }, + { + "title": "不确定就继续筛选", + "text": "可返回分类页或搜索页继续查找。" + } + ], + "topic_hint": "国产欧美中文在线", + "provider": "openai" +} diff --git a/code/data/seo_copy_published/lmjcg-com/home/index.json b/code/data/seo_copy_published/lmjcg-com/home/index.json new file mode 100644 index 0000000..83408b4 --- /dev/null +++ b/code/data/seo_copy_published/lmjcg-com/home/index.json @@ -0,0 +1,21 @@ +{ + "title": "欧美视频在线观看_欧美影院", + "keywords": "欧美视频在线观看,欧美影院,欧美日韩中文字幕,在线高清影视,国产欧美日韩精品a", + "description": "欧美影院【www.lmjcg.com】提供欧美视频在线观看与欧美日韩中文字幕高清影视资源,支持国产欧美片、日韩精品、亚洲欧美剧集在线浏览与播放。更新快、分类清晰、打开即看,方便快速找到想看的欧美影视内容。", + "intro_text": "欢迎来到欧美影院,这里汇集欧美、日韩、国产等多类型影视资源,适合按分类浏览,也方便直接搜索想看的内容。你可以先看热门与更新,再进入详情页了解信息,最后选择合适的播放线路观看。", + "intro_meta": "资源覆盖欧美、日韩、国产等多类型内容,支持快速浏览、筛选与进入详情页。", + "guide_cards": [ + { + "title": "先按分类找片", + "text": "从分类入口进入,快速定位你想看的欧美影视内容。" + }, + { + "title": "再看详情信息", + "text": "先了解年份、地区、别名等资料,再决定是否播放。" + }, + { + "title": "直接进入播放页", + "text": "找到合适线路后即可观看,减少反复跳转。" + } + ] +} diff --git a/code/data/seo_copy_published/lmjcg-com/play/default.json b/code/data/seo_copy_published/lmjcg-com/play/default.json new file mode 100644 index 0000000..e405268 --- /dev/null +++ b/code/data/seo_copy_published/lmjcg-com/play/default.json @@ -0,0 +1,24 @@ +{ + "title_template": "{video_name}{video_alias}在线播放_{play_line}_{site_name}", + "keywords_template": "{video_name},{video_alias},{play_line},在线播放,观看,{year},{area_name},{lang_name},{site_name}", + "description_template": "在{site_name}观看{video_name}{video_alias},本页提供对应播放线路{play_line},并保留年份、地区、语言、演员、导演和备注等资料线索,方便你先从详情页核对信息,再进入播放页继续观看。", + "play_intro": "你正在进入{video_name}{video_alias}的播放页,可先回看详情页资料,再根据{play_line}选择合适线路观看。", + "play_meta_note": "播放前可再次核对{year}、{area_name}、{lang_name}、{actor_names}、{director_names}与{remarks},避免与目标内容不符。", + "play_body_lead": "如需继续观看{video_name}{video_alias},请先确认当前播放线路{play_line},并结合详情页中的资料线索完成判断。", + "play_body_next": "若当前线路不合适,可返回详情页或站内搜索继续筛选,再选择更匹配的播放入口。", + "guide_cards": [ + { + "title": "先核对线路", + "text": "确认{play_line}后再开始播放。" + }, + { + "title": "回看详情资料", + "text": "年份、地区、别名等线索可帮助确认匹配。" + }, + { + "title": "线路不合适就换", + "text": "返回详情页继续筛选其他播放入口。" + } + ], + "provider": "openai" +} diff --git a/code/data/seo_copy_published/lmjcg-com/search/landing.json b/code/data/seo_copy_published/lmjcg-com/search/landing.json new file mode 100644 index 0000000..eb345f8 --- /dev/null +++ b/code/data/seo_copy_published/lmjcg-com/search/landing.json @@ -0,0 +1,23 @@ +{ + "title": "{keyword}搜索结果 - 欧美影院", + "keywords": "{keyword},{keyword}搜索结果,站内搜索,相关结果,欧美影院", + "description": "这里是{keyword}的站内搜索结果页,适合先浏览相关结果,再按标题、别名、年份或备注筛选,随后进入详情页或播放页继续查看。页面强调从搜索结果到深层内容的承接,方便用户更快找到匹配资源。", + "intro_text": "你正在查找{keyword}相关内容,先浏览搜索结果,再结合标题、别名和资料线索继续筛选,找到后进入详情页或播放页。", + "search_landing": "站内已为你整理{keyword}相关结果,适合先看匹配条目,再继续筛选到更准确的内容。", + "intro_meta": "先浏览相关结果,再筛选目标内容,最后进入详情页或播放页。", + "faq_content": "如果“{keyword}”结果不够准,建议继续补充演员名、年份、地区或题材词;如果结果太少,可以换简称、别名或近义词再搜。", + "guide_cards": [ + { + "title": "先看相关结果", + "text": "从搜索列表里快速找最接近的条目。" + }, + { + "title": "再用线索筛选", + "text": "结合别名、年份、地区继续缩小范围。" + }, + { + "title": "进入详情确认", + "text": "确认匹配后再进入播放页。" + } + ] +} diff --git a/code/data/seo_copy_published/lsrxs-com/category_index/index.json b/code/data/seo_copy_published/lsrxs-com/category_index/index.json new file mode 100644 index 0000000..3165bbf --- /dev/null +++ b/code/data/seo_copy_published/lsrxs-com/category_index/index.json @@ -0,0 +1,22 @@ +{ + "title": "{parent_category_name}分类导航与热门入口 - {site_name}", + "keywords": "{parent_category_name},{parent_category_name}分类,{parent_category_name}推荐,{site_name}", + "description": "{site_name}会优先整理{parent_category_name}常看分类入口,便于快速判断方向并继续筛选内容,再进入详情页查看播放线索。", + "intro_text": "当前页会先把{parent_category_name}方向的常看分类入口整理出来,便于先定方向,再继续筛选列表与详情页。", + "category_intro": "当前频道会优先承接{parent_category_name}相关分类路径,方便先看入口,再逐步进入更细列表。", + "intro_meta": "先浏览分类,再筛选结果,继续进入详情页或播放页。", + "guide_cards": [ + { + "title": "先从分类看起", + "text": "快速浏览频道入口,先确定想看的方向。" + }, + { + "title": "再按条件筛选", + "text": "结合更新时间、地区或关键词继续缩小范围。" + }, + { + "title": "进入深页查看", + "text": "筛选后直达详情页或播放页,减少反复查找。" + } + ] +} diff --git a/code/data/seo_copy_published/lsrxs-com/category_list/default.json b/code/data/seo_copy_published/lsrxs-com/category_list/default.json new file mode 100644 index 0000000..2e1a2e1 --- /dev/null +++ b/code/data/seo_copy_published/lsrxs-com/category_list/default.json @@ -0,0 +1,23 @@ +{ + "title": "{category_name}免费在线观看 - {site_name}", + "keywords": "{category_name},{category_name}免费在线观看,{category_name}最新资源,{category_name}推荐,{site_name}", + "description": "当前页会优先集中露出{category_name}相关条目,帮助先判断同类内容密度,再继续翻页或进入详情页。", + "intro_text": "当前页会优先露出{category_name}相关条目,适合先看首屏命中,再继续翻页或进入详情页。", + "category_intro": "{site_name}把{category_name}相关条目集中到这一页,方便先看同类内容,再继续缩小范围。", + "intro_meta": "围绕{category_name}相关条目做集中露出,适合先看列表,再继续筛选目标内容。", + "guide_cards": [ + { + "title": "先看列表", + "text": "优先浏览{category_name}相关条目,先判断首屏命中是否符合需求。" + }, + { + "title": "继续筛选", + "text": "结合更新进度、热度和类型继续缩小范围。" + }, + { + "title": "进入详情页", + "text": "确认目标后进入详情页或播放页继续查看。" + } + ], + "provider": "openai" +} diff --git a/code/data/seo_copy_published/lsrxs-com/detail/default.json b/code/data/seo_copy_published/lsrxs-com/detail/default.json new file mode 100644 index 0000000..7f71140 --- /dev/null +++ b/code/data/seo_copy_published/lsrxs-com/detail/default.json @@ -0,0 +1,25 @@ +{ + "title_template": "{video_name}_{year}_{category_name}_{site_name}", + "keywords_template": "{video_name},{video_alias},{actor_names},{director_names},{year},{area_name},{lang_name},{category_name}", + "description_template": "{site_name}详情页为你整理{video_name}的资料摘要,先快速查看影片标题、别名、年份、地区、演员和导演等线索,再决定是否继续进入播放页;如有备注,也可帮助你判断内容是否匹配。", + "detail_body_lead": "这里是{video_name}的资料页,适合先确认基础信息,再结合{video_alias}{actor_names}{director_names}{year}{area_name}{lang_name}{remarks}等线索判断是否继续查看。", + "detail_play_link_lead": "若你已确认目标内容,可继续进入播放页查看{play_line}线路。", + "detail_body_tail": "本页重点提供可检索的事实线索,帮助你先了解条目,再进入更具体的播放页面。", + "detail_faq": "问:这页主要看什么?答:优先看标题、别名、年份、地区、演员、导演和备注。问:如何继续?答:确认信息后,进入对应播放页查看线路。问:如果信息不完整怎么办?答:以现有资料为准,先浏览再判断是否继续进入深页。", + "guide_cards": [ + { + "title": "先核对资料", + "text": "优先查看年份、地区、别名和备注。" + }, + { + "title": "再看相关信息", + "text": "结合演员和导演等线索判断是否匹配。" + }, + { + "title": "继续到播放页", + "text": "确认后进入对应线路查看播放内容。" + } + ], + "topic_hint": "国产91", + "provider": "openai" +} diff --git a/code/data/seo_copy_published/lsrxs-com/home/index.json b/code/data/seo_copy_published/lsrxs-com/home/index.json new file mode 100644 index 0000000..4481dc1 --- /dev/null +++ b/code/data/seo_copy_published/lsrxs-com/home/index.json @@ -0,0 +1,21 @@ +{ + "title": "国产91 在线播放_91视频精品_91国产在线看_91网站入口_91视频导航_91影院", + "keywords": "国产91 在线播放,91视频精品,91国产在线看,91网站入口,91视频导航,91影院", + "description": "91影院(www.lsrxs.com)提供国产91 在线播放、91视频精品、91国产在线看及国产福利电影一区二区三区等影视资源,更新快、加载稳、浏览顺畅,方便快速找到想看的内容并继续进入详情页或播放页。", + "intro_text": "91影院为你整理国产91 在线播放、91视频精品与91国产在线看等热门入口,先看分类,再按更新时间和关键词筛选,快速找到合适的详情页或播放页。", + "intro_meta": "先浏览热门分类,再继续筛选详情与播放线路,提升找片效率。", + "guide_cards": [ + { + "title": "先看热门入口", + "text": "从首页分类快速进入,优先查看更新更快的资源。" + }, + { + "title": "按需继续筛选", + "text": "结合关键词、年份和地区,缩小范围后再进详情页。" + }, + { + "title": "直接进入播放", + "text": "找到目标内容后,继续进入播放页查看可用线路。" + } + ] +} diff --git a/code/data/seo_copy_published/lsrxs-com/play/default.json b/code/data/seo_copy_published/lsrxs-com/play/default.json new file mode 100644 index 0000000..f71bfcb --- /dev/null +++ b/code/data/seo_copy_published/lsrxs-com/play/default.json @@ -0,0 +1,24 @@ +{ + "title_template": "{video_name}_{episode_name}_{play_line}_在线播放_{site_name}", + "keywords_template": "{video_name},{episode_name},{play_line},在线播放,{site_name},{video_alias},{year},{area_name},{lang_name}", + "description_template": "{site_name}播放页为你提供{video_name}的在线播放入口,先确认当前线路{play_line}是否可用,再返回详情页核对{year}{area_name}{lang_name}{video_alias}{actor_names}{director_names}{remarks}等资料线索,便于快速判断是否适合继续观看。", + "play_intro": "这里是{video_name}的播放页,可先查看当前线路和集数信息,再回到详情页核对资料线索。", + "play_meta_note": "播放前建议先确认线路、年份、地区和备注等信息。", + "play_body_lead": "当前页面聚焦{video_name}的在线播放,先判断{play_line}线路是否满足需求,再结合{episode_name}与资料信息继续查看。", + "play_body_next": "如需更多背景,可返回详情页查看{video_alias}{actor_names}{director_names}{year}{area_name}{lang_name}{remarks}等信息后再决定。", + "guide_cards": [ + { + "title": "先看线路状态", + "text": "优先确认当前播放线路是否可用。" + }, + { + "title": "需要时回详情页", + "text": "返回资料页核对年份、地区和备注。" + }, + { + "title": "再继续观看", + "text": "确认无误后,直接进入当前播放内容。" + } + ], + "provider": "openai" +} diff --git a/code/data/seo_copy_published/lsrxs-com/search/landing.json b/code/data/seo_copy_published/lsrxs-com/search/landing.json new file mode 100644 index 0000000..b62318e --- /dev/null +++ b/code/data/seo_copy_published/lsrxs-com/search/landing.json @@ -0,0 +1,23 @@ +{ + "title": "{keyword}搜索结果 - 91影院站内搜索", + "keywords": "{keyword},搜索结果,站内搜索,相关结果,91影院", + "description": "{keyword}搜索结果页为你展示91影院站内搜索的相关结果,建议先浏览匹配条目,再按标题、年份和备注筛选,最后进入详情页或播放页继续查看。", + "intro_text": "你正在查看{keyword}的站内搜索结果,先浏览匹配条目,再结合标题和备注筛选,快速进入合适的详情页或播放页。", + "search_landing": "这里是{keyword}相关结果页,适合先看搜索命中项,再继续筛选到更准确的资源。", + "intro_meta": "先浏览搜索结果,再筛选相关条目,继续进入详情页或播放页。", + "faq_content": "问:这里能找到什么?答:这里展示与{keyword}相关的站内搜索结果,方便你先浏览再筛选。问:下一步怎么找得更快?答:优先看标题、年份、地区和备注,再进入详情页或播放页。问:如果结果太多怎么办?答:继续缩小关键词范围,或从相关结果中选择更贴近目标的条目。", + "guide_cards": [ + { + "title": "先看命中结果", + "text": "优先浏览与{keyword}直接匹配的条目。" + }, + { + "title": "再缩小范围", + "text": "结合年份、备注和标题继续筛选。" + }, + { + "title": "进入详情或播放", + "text": "确认目标后,直接打开对应深页。" + } + ] +} diff --git a/code/data/seo_copy_published/nblssy-com/category_index/index.json b/code/data/seo_copy_published/nblssy-com/category_index/index.json new file mode 100644 index 0000000..30101ed --- /dev/null +++ b/code/data/seo_copy_published/nblssy-com/category_index/index.json @@ -0,0 +1,22 @@ +{ + "title": "{parent_category_name}分类频道 - {site_name}", + "keywords": "{parent_category_name},{parent_category_name}分类,{parent_category_name}推荐,{site_name}", + "description": "{site_name}把{parent_category_name}常看分类入口集中到当前页面,适合先判断题材方向,再继续深入列表页和详情页。", + "intro_text": "当前页会先把{parent_category_name}方向的常看分类入口整理出来,便于先定方向,再继续筛选列表与详情页。", + "category_intro": "当前频道会优先承接{parent_category_name}相关分类路径,方便先看入口,再逐步进入更细列表。", + "intro_meta": "分类入口便于先浏览、再筛选、再进入详情页或播放页。", + "guide_cards": [ + { + "title": "按频道找片", + "text": "先进入对应分类,缩短查找路径。" + }, + { + "title": "按更新筛选", + "text": "优先查看新更新内容,提升命中效率。" + }, + { + "title": "进入详情页", + "text": "确认信息后再点播放,继续深度浏览。" + } + ] +} diff --git a/code/data/seo_copy_published/nblssy-com/category_list/default.json b/code/data/seo_copy_published/nblssy-com/category_list/default.json new file mode 100644 index 0000000..a897d2e --- /dev/null +++ b/code/data/seo_copy_published/nblssy-com/category_list/default.json @@ -0,0 +1,23 @@ +{ + "title": "{category_name}在线观看 - 青苹果影院最新资源推荐内容列表", + "keywords": "{category_name}在线观看,{category_name}最新资源,{category_name}推荐,{category_name}内容列表,青苹果影院", + "description": "青苹果影院为您整理{category_name}在线观看最新资源与推荐内容,适合先浏览列表、再按更新时间和热度筛选,随后进入详情页查看资料并跳转播放页继续观看。", + "intro_text": "这里汇集了{category_name}相关条目,方便先看列表,再按更新时间、热度和标签继续筛选,减少找片成本。", + "category_intro": "{site_name}把{category_name}相关条目集中到这一页,方便先看同类内容,再继续缩小范围。", + "intro_meta": "{category_name}内容列表支持先筛选、再查看详情、最后进入播放。", + "guide_cards": [ + { + "title": "先看列表", + "text": "优先浏览{category_name}相关条目,先判断首屏命中是否符合需求。" + }, + { + "title": "继续筛选", + "text": "结合更新进度、热度和类型继续缩小范围。" + }, + { + "title": "进入详情页", + "text": "确认目标后进入详情页或播放页继续查看。" + } + ], + "provider": "openai" +} diff --git a/code/data/seo_copy_published/nblssy-com/detail/default.json b/code/data/seo_copy_published/nblssy-com/detail/default.json new file mode 100644 index 0000000..1d90661 --- /dev/null +++ b/code/data/seo_copy_published/nblssy-com/detail/default.json @@ -0,0 +1,25 @@ +{ + "title_template": "{video_name}详情_{site_name}在线观看", + "keywords_template": "{video_name},{video_alias},{year},{area_name},{lang_name},{category_name},详情,在线观看", + "description_template": "{site_name}为您提供{video_name}详情资料页,便于先了解标题、别名、年份、地区、语言、导演、演员和备注等信息,再进入播放页查看可用线路并继续观看。", + "detail_body_lead": "这里是{video_name}的资料详情页,适合先确认基本信息,再判断是否进入播放页继续观看。页面会展示标题、别名、年份、地区、语言、导演、演员和备注等线索,帮助您更快完成筛选。", + "detail_play_link_lead": "如果您已确认这部内容符合需求,可继续前往播放页查看{play_line}线路并开始播放。", + "detail_body_tail": "建议先浏览详情,再根据年份、地区、演员、导演与备注等事实线索判断是否继续观看。", + "detail_faq": "Q:这页能看到什么信息?A:可查看{video_name}的资料线索,包括别名、年份、地区、语言、导演、演员和备注。Q:下一步怎么观看?A:先确认详情,再进入播放页选择线路继续。", + "guide_cards": [ + { + "title": "先核对信息", + "text": "查看年份、地区、别名和备注,减少误点。" + }, + { + "title": "再进播放页", + "text": "确认资料后点击播放线路继续观看。" + }, + { + "title": "按线索判断", + "text": "结合演员、导演和语言信息做进一步筛选。" + } + ], + "topic_hint": "青苹果乐园影院电视剧免费播放", + "provider": "openai" +} diff --git a/code/data/seo_copy_published/nblssy-com/home/index.json b/code/data/seo_copy_published/nblssy-com/home/index.json new file mode 100644 index 0000000..76c3e85 --- /dev/null +++ b/code/data/seo_copy_published/nblssy-com/home/index.json @@ -0,0 +1,21 @@ +{ + "title": "青苹果影院 - 青苹果乐园影院电视剧免费播放|最新电影电视剧动漫综艺在线观看", + "keywords": "青苹果影院,青苹果乐园影院电视剧免费播放,青苹果乐园影院免费观看,电影,电视剧,短剧,动漫,综艺,在线观看", + "description": "青苹果影院(nblssy.com)为您提供最新电影、电视剧、短剧、动漫、综艺等高清资源,支持免注册、无广告、流畅播放,随时在线看热门内容,满足日常追剧、看片和补番需求。", + "intro_text": "欢迎来到青苹果影院,在线浏览最新电影、电视剧、短剧、动漫、综艺等资源。您可以先看分类,再按热度、更新时间或标签筛选,快速进入详情页和播放页,找到更适合自己的观影内容。", + "intro_meta": "青苹果影院聚合电影、电视剧、短剧、动漫、综艺资源,提供更便捷的在线观看入口。", + "guide_cards": [ + { + "title": "先看分类", + "text": "从首页入口直接进入电影、电视剧、动漫等频道,快速定位想看的内容。" + }, + { + "title": "再筛选详情", + "text": "按更新时间、类型和标签继续浏览,减少无效查找。" + }, + { + "title": "直达播放", + "text": "进入详情页后可继续跳转播放页,查看线路并开始观看。" + } + ] +} diff --git a/code/data/seo_copy_published/nblssy-com/play/default.json b/code/data/seo_copy_published/nblssy-com/play/default.json new file mode 100644 index 0000000..96036ee --- /dev/null +++ b/code/data/seo_copy_published/nblssy-com/play/default.json @@ -0,0 +1,24 @@ +{ + "title_template": "{video_name}{episode_name}在线播放_{site_name}", + "keywords_template": "{video_name}在线播放,{episode_name},{play_line},{video_alias},{year},{area_name},{lang_name},播放页", + "description_template": "{site_name}提供{video_name}{episode_name}在线播放页面,您可先返回详情页确认{video_alias}、年份、地区、语言、导演和演员等信息,再根据{play_line}线路选择合适播放源继续观看。", + "play_intro": "这里是{video_name}{episode_name}的播放页,适合在确认资料后直接开始观看,也便于返回详情页再次核对基本信息。", + "play_meta_note": "播放前可先查看线路与资料线索,再决定是否切换其他播放源。", + "play_body_lead": "若您已经在详情页确认{video_name}信息,可在本页选择{play_line}线路进行播放;如需核对内容,可返回详情页查看{video_alias}、{year}、{area_name}、{lang_name}、{director_names}和{actor_names}等资料。", + "play_body_next": "如当前线路不合适,可切换其他播放源后继续观看。", + "guide_cards": [ + { + "title": "先看线路", + "text": "根据{play_line}判断当前播放源是否可用。" + }, + { + "title": "回看详情", + "text": "必要时返回资料页核对别名、年份和地区。" + }, + { + "title": "切换播放源", + "text": "线路异常时可更换来源继续播放。" + } + ], + "provider": "openai" +} diff --git a/code/data/seo_copy_published/nblssy-com/search/landing.json b/code/data/seo_copy_published/nblssy-com/search/landing.json new file mode 100644 index 0000000..a96152d --- /dev/null +++ b/code/data/seo_copy_published/nblssy-com/search/landing.json @@ -0,0 +1,23 @@ +{ + "title": "{keyword}搜索结果 - 青苹果影院站内搜索相关结果", + "keywords": "{keyword},{keyword}搜索结果,站内搜索,相关结果,青苹果影院", + "description": "青苹果影院为您展示{keyword}站内搜索相关结果,建议先浏览结果列表,再结合标题、分类和更新时间筛选,随后进入详情页或播放页查看更完整信息并继续观看。", + "intro_text": "您正在查看{keyword}的搜索结果页,可先浏览相关条目,再根据标题、分类和更新时间继续筛选,快速找到更匹配的内容。", + "search_landing": "这里是{keyword}的站内搜索入口,适合先看相关结果,再逐步进入详情页和播放页。", + "intro_meta": "{keyword}相关结果支持先浏览、再筛选、再进入详情或播放。", + "faq_content": "搜索不到目标内容时,可以把“{keyword}”和人物、年份、剧情词组合搜索,通常更容易缩小到目标条目。", + "guide_cards": [ + { + "title": "先看相关结果", + "text": "从搜索列表快速判断是否命中目标。" + }, + { + "title": "结合条件筛选", + "text": "优先看分类、别名和更新时间。" + }, + { + "title": "进入详情页", + "text": "确认信息后再去播放页继续观看。" + } + ] +} diff --git a/code/data/seo_copy_published/oronorent-com/category_index/index.json b/code/data/seo_copy_published/oronorent-com/category_index/index.json new file mode 100644 index 0000000..39e55a6 --- /dev/null +++ b/code/data/seo_copy_published/oronorent-com/category_index/index.json @@ -0,0 +1,22 @@ +{ + "title": "{parent_category_name}分类频道 - {site_name}", + "keywords": "{parent_category_name},{parent_category_name}分类,{parent_category_name}推荐,{site_name}", + "description": "{site_name}会优先整理{parent_category_name}常看分类入口,便于快速判断方向并继续筛选内容,再进入详情页查看播放线索。", + "intro_text": "当前页会先把{parent_category_name}方向的常看分类入口整理出来,便于先定方向,再继续筛选列表与详情页。", + "category_intro": "当前频道会优先承接{parent_category_name}相关分类路径,方便先看入口,再逐步进入更细列表。", + "intro_meta": "分类入口清晰,便于浏览、筛选、进入详情页或播放页。", + "guide_cards": [ + { + "title": "先选频道", + "text": "从分类入口进入对应栏目,减少无效查找。" + }, + { + "title": "再看列表", + "text": "到列表页继续筛选,找到更符合需求的条目。" + }, + { + "title": "直达深页", + "text": "确认目标后进入详情页或播放页。" + } + ] +} diff --git a/code/data/seo_copy_published/oronorent-com/category_list/default.json b/code/data/seo_copy_published/oronorent-com/category_list/default.json new file mode 100644 index 0000000..f2fa3af --- /dev/null +++ b/code/data/seo_copy_published/oronorent-com/category_list/default.json @@ -0,0 +1,23 @@ +{ + "title": "{category_name}在线观看 - {site_name}", + "keywords": "{category_name}在线观看,{category_name}最新资源,{category_name}内容列表,{category_name}推荐,{site_name}", + "description": "{site_name}为你整理{category_name}在线观看与最新资源列表,建议先浏览列表、再按年份、地区、语言或备注筛选,之后进入详情页或播放页继续查看。这样更方便快速定位目标内容,也有利于持续发现相关条目。", + "intro_text": "这里是{category_name}内容列表,先看推荐与更新,再按条件筛选,找到目标后直接进入详情页或播放页。", + "category_intro": "聚合{category_name}相关内容,适合先浏览、再筛选、再深入查看。", + "intro_meta": "围绕{category_name}相关条目做集中露出,适合先看列表,再继续筛选目标内容。", + "guide_cards": [ + { + "title": "先看列表", + "text": "优先浏览{category_name}相关条目,先判断首屏命中是否符合需求。" + }, + { + "title": "继续筛选", + "text": "结合更新进度、热度和类型继续缩小范围。" + }, + { + "title": "进入详情页", + "text": "确认目标后进入详情页或播放页继续查看。" + } + ], + "provider": "openai" +} diff --git a/code/data/seo_copy_published/oronorent-com/detail/default.json b/code/data/seo_copy_published/oronorent-com/detail/default.json new file mode 100644 index 0000000..38b6b5a --- /dev/null +++ b/code/data/seo_copy_published/oronorent-com/detail/default.json @@ -0,0 +1,25 @@ +{ + "title_template": "{video_name}{video_alias}在线观看_{site_name}", + "keywords_template": "{video_name},{video_alias},{category_name},{year},{area_name},{lang_name},{director_names},{actor_names},在线观看", + "description_template": "{site_name}提供{video_name}的资料与观看入口,可先查看年份、地区、语言、导演、演员和备注等信息,再进入对应播放页继续观看。若存在别名{video_alias},也可通过别名快速定位相关内容。", + "detail_body_lead": "本页汇总{video_name}的基础资料与观看路径,适合先确认标题、别名、年份、地区、语言和备注等线索,再继续到播放页。", + "detail_play_link_lead": "如果你已经确认是目标内容,可直接根据{play_line}进入播放页查看。", + "detail_body_tail": "页面同时保留{category_name}与相关检索线索,方便你从详情页回到列表页继续筛选,或者切换到其他播放线路。", + "detail_faq": "Q:这页能看到什么?\nA:这里主要展示{video_name}的资料线索和进入播放页的路径。\nQ:如果我想继续找相似内容怎么办?\nA:可根据分类、年份、地区或别名回到列表页继续浏览。\nQ:信息不完整时怎么判断?\nA:优先依据标题、别名、备注和播放线路确认目标。", + "guide_cards": [ + { + "title": "先核对资料", + "text": "重点查看年份、地区、语言和别名。" + }, + { + "title": "再进播放页", + "text": "确认目标后按播放线路继续观看。" + }, + { + "title": "需要时回列表", + "text": "从详情页返回分类列表继续筛选。" + } + ], + "topic_hint": "国产成人免费精品一区二区", + "provider": "openai" +} diff --git a/code/data/seo_copy_published/oronorent-com/home/index.json b/code/data/seo_copy_published/oronorent-com/home/index.json new file mode 100644 index 0000000..537b5a1 --- /dev/null +++ b/code/data/seo_copy_published/oronorent-com/home/index.json @@ -0,0 +1,21 @@ +{ + "title": "奥诺影视_免费高清影视在线播放_最新热播作品聚合", + "keywords": "奥诺影视,精品欧美成人高清视频在线观看,国产专区,日韩精品,欧美日本,中文字幕,在线视频,高清播放,免下载,最新热播", + "description": "奥诺影视(www.oronorent.com)提供高清影视在线播放与快速浏览服务,支持免下载观看最新热播作品。站内涵盖精品欧美成人高清视频在线观看、国产专区、日韩精品、中文字幕等常见搜索方向,适合先浏览再筛选,快速进入详情页或播放页。", + "intro_text": "欢迎来到奥诺影视,先按分类浏览,再用站内筛选找到更符合需求的内容,点击详情页或播放页即可继续观看。", + "intro_meta": "支持在线播放、免下载、快速筛选,方便查找最新热播影视作品。", + "guide_cards": [ + { + "title": "按分类快速找片", + "text": "先看分类入口,再进入列表页缩小范围。" + }, + { + "title": "先详情后播放", + "text": "打开详情页查看基本信息,再选择合适播放线路。" + }, + { + "title": "收藏常看入口", + "text": "保留常用页面,方便下次直接继续浏览。" + } + ] +} diff --git a/code/data/seo_copy_published/oronorent-com/play/default.json b/code/data/seo_copy_published/oronorent-com/play/default.json new file mode 100644 index 0000000..f5e3fa4 --- /dev/null +++ b/code/data/seo_copy_published/oronorent-com/play/default.json @@ -0,0 +1,24 @@ +{ + "title_template": "{video_name}在线播放_{site_name}", + "keywords_template": "{video_name}在线播放,{video_alias},{category_name},{year},{play_line},{area_name},{lang_name},高清播放", + "description_template": "{site_name}提供{video_name}在线播放页面,可先确认{play_line}线路,再结合年份、地区、语言、别名与备注等资料回到详情页核对信息,随后继续播放。若当前线路不合适,也可切换其他播放路径。", + "play_intro": "当前为{video_name}播放页,建议先确认线路与基础资料,再开始观看。", + "play_meta_note": "支持从播放页回到详情页核对{video_name}的相关信息,也可切换不同{play_line}线路。", + "play_body_lead": "若你已从详情页确认目标内容,可直接在本页使用{play_line}线路播放{video_name}。", + "play_body_next": "如需进一步核对信息,可返回详情页查看{video_alias}、{year}、{area_name}、{lang_name}与{remarks}等线索,再继续选择合适播放方式。", + "guide_cards": [ + { + "title": "先选线路", + "text": "优先确认当前播放线路是否可用。" + }, + { + "title": "回看详情页", + "text": "需要核对信息时返回资料页查看线索。" + }, + { + "title": "切换再播放", + "text": "线路不理想时可更换其他播放路径。" + } + ], + "provider": "openai" +} diff --git a/code/data/seo_copy_published/oronorent-com/search/landing.json b/code/data/seo_copy_published/oronorent-com/search/landing.json new file mode 100644 index 0000000..c92f3f4 --- /dev/null +++ b/code/data/seo_copy_published/oronorent-com/search/landing.json @@ -0,0 +1,23 @@ +{ + "title": "{keyword}搜索结果 - {site_name}", + "keywords": "{keyword},搜索结果,站内搜索,相关结果,在线播放,高清资源", + "description": "{site_name}的{keyword}搜索结果页,建议先浏览相关结果,再按标题、分类、年份或备注筛选,最后进入详情页或播放页继续查看。这样的路径更适合快速找到目标内容,也能帮助蜘蛛抓取更多深层页面。", + "intro_text": "已为你整理{keyword}相关结果,先浏览匹配项,再筛选更接近目标的内容,随后进入详情页或播放页。", + "search_landing": "这是{keyword}的站内搜索结果入口,适合继续缩小范围并查找更准确的匹配内容。", + "intro_meta": "搜索结果可继续筛选并跳转到详情页或播放页。", + "faq_content": "搜索不到目标内容时,可以把“{keyword}”和人物、年份、剧情词组合搜索,通常更容易缩小到目标条目。", + "guide_cards": [ + { + "title": "先看相关结果", + "text": "确认关键词匹配范围,避免误点。" + }, + { + "title": "再细化筛选", + "text": "结合标题、分类和备注继续缩小范围。" + }, + { + "title": "进入详情播放", + "text": "找到目标后跳转到详情页或播放页。" + } + ] +} diff --git a/code/data/seo_copy_published/pcslcl-com/category_index/index.json b/code/data/seo_copy_published/pcslcl-com/category_index/index.json new file mode 100644 index 0000000..9ec1764 --- /dev/null +++ b/code/data/seo_copy_published/pcslcl-com/category_index/index.json @@ -0,0 +1,22 @@ +{ + "title": "{parent_category_name}热门分类入口 - {site_name}", + "keywords": "{parent_category_name},{parent_category_name}分类,{parent_category_name}推荐,{site_name}", + "description": "{site_name}把{parent_category_name}常看分类入口集中到当前页面,适合先判断题材方向,再继续深入列表页和详情页。", + "intro_text": "如果你准备按题材找内容,这一页更适合先看{parent_category_name}分类入口,再决定下一步进入哪类列表。", + "category_intro": "{site_name}把{parent_category_name}的一级分类和细分方向集中到这里,适合先判断题材,再继续点进详情页。", + "intro_meta": "分类入口用于先浏览、再筛选、再进入详情页或播放页。", + "guide_cards": [ + { + "title": "按频道找片", + "text": "先选电影、剧集、综艺或动漫频道,再进入对应列表页。" + }, + { + "title": "继续细筛", + "text": "结合年份、地区和关键词,逐步缩小到目标资源。" + }, + { + "title": "直达详情", + "text": "打开详情页查看资料,再选择合适的播放线路。" + } + ] +} diff --git a/code/data/seo_copy_published/pcslcl-com/category_list/default.json b/code/data/seo_copy_published/pcslcl-com/category_list/default.json new file mode 100644 index 0000000..6dcc85d --- /dev/null +++ b/code/data/seo_copy_published/pcslcl-com/category_list/default.json @@ -0,0 +1,23 @@ +{ + "title": "{category_name}在线观看 - {site_name} - 最新资源推荐", + "keywords": "{category_name}在线观看,{category_name}最新资源,{category_name}推荐,{category_name}内容列表,{site_name}", + "description": "这里是{category_name}流量承接列表页,建议先浏览当前收录内容,再按年份、地区、热度或关键词继续筛选,最后进入详情页或播放页查看完整信息与可用线路。页面适合持续发现{category_name}最新资源,帮助用户和蜘蛛顺着列表进入更深层内容。", + "intro_text": "正在浏览{category_name}在线观看列表,先看当前可用资源,再继续筛选更适合的内容。", + "category_intro": "从列表页进入后,可继续查看详情、比对信息并跳转到播放页,适合查找{category_name}最新资源。", + "intro_meta": "{category_name}在线观看列表页,支持先浏览再筛选并进入详情页或播放页。", + "guide_cards": [ + { + "title": "先看列表", + "text": "优先浏览{category_name}相关条目,先判断首屏命中是否符合需求。" + }, + { + "title": "继续筛选", + "text": "结合更新进度、热度和类型继续缩小范围。" + }, + { + "title": "进入详情页", + "text": "确认目标后进入详情页或播放页继续查看。" + } + ], + "provider": "openai" +} diff --git a/code/data/seo_copy_published/pcslcl-com/detail/default.json b/code/data/seo_copy_published/pcslcl-com/detail/default.json new file mode 100644 index 0000000..731dd6b --- /dev/null +++ b/code/data/seo_copy_published/pcslcl-com/detail/default.json @@ -0,0 +1,25 @@ +{ + "title_template": "{video_name}_{year}高清完整版在线观看_{site_name}", + "keywords_template": "{video_name},{video_alias},{year},{area_name},{lang_name},{director_names},{actor_names},{category_name},{site_name}", + "description_template": "{site_name}为您提供{video_name}的资料页与在线观看入口,方便先了解{year}、{area_name}、{lang_name}、{director_names}、{actor_names}等事实线索,再继续进入播放页选择{play_line}。若有别名或备注,也可在本页快速核对,适合先看信息再决定是否观看。", + "detail_body_lead": "本页主要用于查看{video_name}的基础资料、别名与观看入口,帮助你先确认信息再进入正片。", + "detail_play_link_lead": "确认标题和资料后,可继续前往播放页,按{play_line}选择可用线路。", + "detail_body_tail": "若本条目存在{video_alias}、{remarks}等补充信息,可在此页一并核对,减少来回查找。", + "detail_faq": "Q:这页能看什么?A:先查看{video_name}的资料与观看入口,再决定是否进入播放页。Q:信息不全怎么办?A:以已展示的{year}、{area_name}、{lang_name}等线索为准,继续查看相关条目。", + "guide_cards": [ + { + "title": "先核对资料", + "text": "查看{year}、{area_name}、{lang_name}等信息后再继续。" + }, + { + "title": "再选播放线路", + "text": "进入播放页后,根据{play_line}判断可用线路。" + }, + { + "title": "查看别名备注", + "text": "有{video_alias}或{remarks}时,先核对再播放。" + } + ], + "topic_hint": "99国产在线99在线视频免费观看", + "provider": "openai" +} diff --git a/code/data/seo_copy_published/pcslcl-com/home/index.json b/code/data/seo_copy_published/pcslcl-com/home/index.json new file mode 100644 index 0000000..381b035 --- /dev/null +++ b/code/data/seo_copy_published/pcslcl-com/home/index.json @@ -0,0 +1,21 @@ +{ + "title": "磁力影视_99国产在线99在线视频免费观看_高清电影电视剧综艺动漫在线", + "keywords": "99国产在线,99在线视频免费观看,99国产视频,久久热精品久久久久久,中文字幕亚洲一区二区三区,亚洲精品999,欧美日产国产欧洲在线,中文综合在线观看,磁力影视", + "description": "磁力影视(pcslcl.com)提供最新高清99国产在线、99国产视频、热门电视剧、综艺、动漫及欧美日产国产欧洲在线短剧免费在线观看,支持磁力链接快速下载,更新及时,方便找片、看片与继续浏览。", + "intro_text": "欢迎来到磁力影视,这里聚合99国产在线、99在线视频免费观看、99国产视频、电视剧、综艺、动漫与欧美日产国产欧洲在线短剧等内容,适合先浏览再筛选,快速找到想看的高清资源。", + "intro_meta": "先看首页分类,再进入列表页筛选资源,最后打开详情页或播放页继续观看。", + "guide_cards": [ + { + "title": "先看分类", + "text": "从首页快速进入电影、电视剧、综艺、动漫等入口,缩小找片范围。" + }, + { + "title": "再筛选资源", + "text": "按热度、年份、地区或站内关键词继续查找更符合需求的内容。" + }, + { + "title": "继续到详情页", + "text": "找到目标后进入详情页确认信息,再到播放页选择可用线路。" + } + ] +} diff --git a/code/data/seo_copy_published/pcslcl-com/play/default.json b/code/data/seo_copy_published/pcslcl-com/play/default.json new file mode 100644 index 0000000..63e0bdb --- /dev/null +++ b/code/data/seo_copy_published/pcslcl-com/play/default.json @@ -0,0 +1,24 @@ +{ + "title_template": "{video_name}在线播放_{play_line}_{site_name}", + "keywords_template": "{video_name}在线播放,{play_line},{year},{area_name},{lang_name},{video_alias},{site_name}", + "description_template": "这里是{video_name}的播放页,建议先从详情页确认{year}、{area_name}、{lang_name}、{remarks}等信息,再根据{play_line}选择可用线路进入观看。若你正在查找同名或别名资源,也可回到详情页比对{video_alias}与基础资料后继续播放。", + "play_intro": "本页提供{video_name}的在线播放入口,先确认资料,再选择线路观看。", + "play_meta_note": "如果当前线路加载不顺,可返回详情页切换{play_line}或查看其他可用入口。", + "play_body_lead": "当前页面用于直接播放{video_name},并保留回到详情页核对信息的路径。", + "play_body_next": "建议先看清{year}、{area_name}、{lang_name}等事实线索,再根据{play_line}选择最合适的播放方式。", + "guide_cards": [ + { + "title": "先回看详情", + "text": "核对{year}、{area_name}、{video_alias}后再播放。" + }, + { + "title": "切换线路", + "text": "根据{play_line}选择更合适的播放入口。" + }, + { + "title": "继续观看", + "text": "确认无误后直接进入正片播放。" + } + ], + "provider": "openai" +} diff --git a/code/data/seo_copy_published/pcslcl-com/search/landing.json b/code/data/seo_copy_published/pcslcl-com/search/landing.json new file mode 100644 index 0000000..d03df93 --- /dev/null +++ b/code/data/seo_copy_published/pcslcl-com/search/landing.json @@ -0,0 +1,23 @@ +{ + "title": "{keyword}搜索结果 - 站内搜索 - 磁力影视", + "keywords": "{keyword},搜索结果,站内搜索,相关结果,磁力影视", + "description": "这是{keyword}的站内搜索结果页,建议先浏览相关条目,再继续筛选年份、地区或别名信息,最后进入详情页或播放页确认资料并选择线路。页面用于承接搜索意图,帮助用户快速找到相关结果并继续向深页访问。", + "intro_text": "正在查看{keyword}的搜索结果,可先浏览相关条目,再进一步筛选更准确的资源。", + "search_landing": "输入{keyword}后,先看相关结果列表,再进入详情页核对信息,最后到播放页选择可用线路。", + "intro_meta": "搜索结果页先承接关键词,再引导继续筛选与深页访问。", + "faq_content": "搜索不到目标内容时,可以把“{keyword}”和人物、年份、剧情词组合搜索,通常更容易缩小到目标条目。", + "guide_cards": [ + { + "title": "先看相关结果", + "text": "优先浏览与{keyword}匹配度更高的条目。" + }, + { + "title": "再换关键词", + "text": "可尝试别名、年份或更宽泛的词继续搜索。" + }, + { + "title": "进入详情确认", + "text": "打开详情页核对信息,再进入播放页。" + } + ] +} diff --git a/code/data/seo_copy_published/sdxhtgcl-com/category_index/index.json b/code/data/seo_copy_published/sdxhtgcl-com/category_index/index.json new file mode 100644 index 0000000..88b0eb2 --- /dev/null +++ b/code/data/seo_copy_published/sdxhtgcl-com/category_index/index.json @@ -0,0 +1,22 @@ +{ + "title": "{parent_category_name}热门分类入口 - {site_name}", + "keywords": "{parent_category_name},{parent_category_name}分类,{parent_category_name}推荐,{site_name}", + "description": "{site_name}会优先整理{parent_category_name}常看分类入口,便于快速判断方向并继续筛选内容,再进入详情页查看播放线索。", + "intro_text": "如果你准备按题材找内容,这一页更适合先看{parent_category_name}分类入口,再决定下一步进入哪类列表。", + "category_intro": "{site_name}把{parent_category_name}的一级分类和细分方向集中到这里,适合先判断题材,再继续点进详情页。", + "intro_meta": "分类入口页优先承接浏览意图,便于继续下钻到列表、详情与播放。", + "guide_cards": [ + { + "title": "先看频道入口", + "text": "从分类导航快速进入对应栏目。" + }, + { + "title": "再缩小范围", + "text": "按年份、地区、别名继续筛选。" + }, + { + "title": "继续去详情页", + "text": "找到目标后再进入资料页或播放页。" + } + ] +} diff --git a/code/data/seo_copy_published/sdxhtgcl-com/category_list/default.json b/code/data/seo_copy_published/sdxhtgcl-com/category_list/default.json new file mode 100644 index 0000000..71e573f --- /dev/null +++ b/code/data/seo_copy_published/sdxhtgcl-com/category_list/default.json @@ -0,0 +1,23 @@ +{ + "title": "{category_name}在线观看 - 时代影院", + "keywords": "{category_name}在线观看,{category_name}最新资源,{category_name}推荐,{category_name}内容列表,时代影院", + "description": "时代影院的{category_name}内容列表页,适合先浏览最新资源与推荐条目,再筛选年份、地区、别名或备注,最后进入详情页或播放页查看完整信息。", + "intro_text": "这里汇集{category_name}相关内容,建议先浏览列表,再按年份、地区和备注筛选,快速定位你想看的条目。", + "category_intro": "{category_name}频道为你提供更聚焦的内容列表,先看推荐与最新资源,再进入详情页或播放页继续了解。", + "intro_meta": "{category_name}在线观看列表页,支持先浏览再筛选并进入详情页或播放页。", + "guide_cards": [ + { + "title": "先看列表", + "text": "优先浏览{category_name}相关条目,先判断首屏命中是否符合需求。" + }, + { + "title": "继续筛选", + "text": "结合更新进度、热度和类型继续缩小范围。" + }, + { + "title": "进入详情页", + "text": "确认目标后进入详情页或播放页继续查看。" + } + ], + "provider": "openai" +} diff --git a/code/data/seo_copy_published/sdxhtgcl-com/detail/default.json b/code/data/seo_copy_published/sdxhtgcl-com/detail/default.json new file mode 100644 index 0000000..7186feb --- /dev/null +++ b/code/data/seo_copy_published/sdxhtgcl-com/detail/default.json @@ -0,0 +1,25 @@ +{ + "title_template": "{video_name}{video_alias}在线观看_{site_name}", + "keywords_template": "{video_name},{video_alias},{year},{area_name},{lang_name},{director_names},{actor_names},{site_name}", + "description_template": "{site_name}提供{video_name}{video_alias}的资料详情页,适合先了解影片名称、年份、地区、导演、演员与备注,再进入对应播放页查看线路与观看方式。", + "detail_body_lead": "本页为{video_name}{video_alias}的资料详情页,可先查看影片的年份、地区、语言、导演、演员与备注等线索,帮助你确认是否为目标内容。", + "detail_play_link_lead": "确认信息后,可继续进入播放页:{play_line},查看对应线路与播放方式。", + "detail_body_tail": "若你正在比对同名或别名资源,建议结合{year}、{area_name}、{lang_name}、{director_names}、{actor_names}等信息进一步判断。", + "detail_faq": "Q:这页主要看什么?A:先看基础资料,再决定是否进入播放页。Q:如何避免找错内容?A:优先对照别名、年份、地区和备注。", + "guide_cards": [ + { + "title": "先核对片名别名", + "text": "确认{video_name}与{video_alias}是否匹配。" + }, + { + "title": "再看年份地区", + "text": "用{year}、{area_name}缩小判断范围。" + }, + { + "title": "继续到播放页", + "text": "从详情页进入{play_line}查看线路。" + } + ], + "topic_hint": "国产精品欧美日韩", + "provider": "openai" +} diff --git a/code/data/seo_copy_published/sdxhtgcl-com/home/index.json b/code/data/seo_copy_published/sdxhtgcl-com/home/index.json new file mode 100644 index 0000000..4f66d6e --- /dev/null +++ b/code/data/seo_copy_published/sdxhtgcl-com/home/index.json @@ -0,0 +1,21 @@ +{ + "title": "时代影院_国产自拍福利在线观看_免费影视资源聚合", + "keywords": "国产福利在线观看,国产精品视频,国产精品,高清免费在线观看,时代影院", + "description": "时代影院(www.sdxhtgcl.com)提供国产福利在线观看等影视资源入口,支持先浏览再筛选,再进入详情页或播放页查看片源、年份、地区与线路信息,帮助你更快找到想看的内容。", + "intro_text": "欢迎来到时代影院,这里汇集国产福利在线观看等热门影视资源入口。你可以先按分类浏览,再根据影片名称、年份、地区或备注进行筛选,最后进入详情页或播放页继续查看。", + "intro_meta": "先看分类,再筛选片单,继续进入详情页或播放页,快速定位你关注的影视资源。", + "guide_cards": [ + { + "title": "按分类先浏览", + "text": "先进入频道分类,快速找到更接近需求的内容。" + }, + { + "title": "再用关键词筛选", + "text": "结合片名、别名、年份继续缩小范围。" + }, + { + "title": "进入详情或播放页", + "text": "查看资料线索后,再决定是否立即播放。" + } + ] +} diff --git a/code/data/seo_copy_published/sdxhtgcl-com/play/default.json b/code/data/seo_copy_published/sdxhtgcl-com/play/default.json new file mode 100644 index 0000000..f2e21a2 --- /dev/null +++ b/code/data/seo_copy_published/sdxhtgcl-com/play/default.json @@ -0,0 +1,24 @@ +{ + "title_template": "{video_name}在线播放_{play_line}_{site_name}", + "keywords_template": "{video_name}在线播放,{play_line},{year},{area_name},{lang_name},{actor_names},{director_names},{site_name}", + "description_template": "{site_name}为{video_name}提供在线播放入口,可先从详情页核对{year}、{area_name}、{lang_name}、{actor_names}与{director_names}等线索,再根据{play_line}判断对应线路是否适合当前观看。", + "play_intro": "当前页面为{video_name}的播放页,建议先回看详情信息,再确认{play_line}对应的线路与资源状态。", + "play_meta_note": "若存在多个播放线路,可结合年份、地区、别名与备注先做判断,再选择更合适的入口。", + "play_body_lead": "这里可直接进入{video_name}的在线播放流程;如需进一步核实信息,建议返回详情页对照{year}、{area_name}、{lang_name}、{actor_names}、{director_names}与{remarks}。", + "play_body_next": "如果当前线路不符合预期,可切换到其他{play_line}或返回详情页继续确认。", + "guide_cards": [ + { + "title": "先看线路说明", + "text": "确认{play_line}是否可用。" + }, + { + "title": "回查详情信息", + "text": "对照年份、地区、别名再判断。" + }, + { + "title": "必要时换线路", + "text": "若不匹配,切换其他播放入口。" + } + ], + "provider": "openai" +} diff --git a/code/data/seo_copy_published/sdxhtgcl-com/search/landing.json b/code/data/seo_copy_published/sdxhtgcl-com/search/landing.json new file mode 100644 index 0000000..ad895c2 --- /dev/null +++ b/code/data/seo_copy_published/sdxhtgcl-com/search/landing.json @@ -0,0 +1,23 @@ +{ + "title": "{keyword}搜索结果 - 时代影院", + "keywords": "{keyword},{keyword}搜索结果,{keyword}站内搜索,{keyword}相关结果,时代影院", + "description": "时代影院的{keyword}搜索结果页,适合先浏览相关条目,再根据片名、别名、年份、地区与备注继续筛选,最后进入详情页或播放页查看更完整的信息。", + "intro_text": "正在查找{keyword}相关内容?这里先展示搜索结果,再方便你继续筛选并进入详情页或播放页。", + "search_landing": "你可以先看{keyword}的相关结果,结合标题、别名、年份和地区快速判断,再进入更准确的页面。", + "intro_meta": "搜索结果页承接明确查找意图,建议先浏览结果再下钻。", + "faq_content": "如果“{keyword}”结果不够准,建议继续补充演员名、年份、地区或题材词;如果结果太少,可以换简称、别名或近义词再搜。", + "guide_cards": [ + { + "title": "先看相关结果", + "text": "从搜索结果里快速判断匹配度。" + }, + { + "title": "再做二次筛选", + "text": "结合年份、地区、别名继续缩小。" + }, + { + "title": "进入详情或播放", + "text": "确认目标后再继续下钻。" + } + ] +} diff --git a/code/data/seo_copy_published/sdxtwnc-com/category_index/index.json b/code/data/seo_copy_published/sdxtwnc-com/category_index/index.json new file mode 100644 index 0000000..a1b4ab9 --- /dev/null +++ b/code/data/seo_copy_published/sdxtwnc-com/category_index/index.json @@ -0,0 +1,22 @@ +{ + "title": "{parent_category_name}分类频道 - {site_name}", + "keywords": "{parent_category_name},{parent_category_name}分类,{parent_category_name}推荐,{site_name}", + "description": "{site_name}会优先整理{parent_category_name}常看分类入口,便于快速判断方向并继续筛选内容,再进入详情页查看播放线索。", + "intro_text": "如果你准备按题材找内容,这一页更适合先看{parent_category_name}分类入口,再决定下一步进入哪类列表。", + "category_intro": "{site_name}把{parent_category_name}的一级分类和细分方向集中到这里,适合先判断题材,再继续点进详情页。", + "intro_meta": "分类清晰,便于搜索引擎抓取频道结构,也方便用户继续下钻到详情页。", + "guide_cards": [ + { + "title": "先看频道", + "text": "从电影、剧集、综艺、动漫、短剧入口开始浏览。" + }, + { + "title": "再做筛选", + "text": "结合更新、热度或地区继续缩小范围。" + }, + { + "title": "继续下钻", + "text": "找到目标后进入详情页或播放页查看完整内容。" + } + ] +} diff --git a/code/data/seo_copy_published/sdxtwnc-com/category_list/default.json b/code/data/seo_copy_published/sdxtwnc-com/category_list/default.json new file mode 100644 index 0000000..fd1a3ed --- /dev/null +++ b/code/data/seo_copy_published/sdxtwnc-com/category_list/default.json @@ -0,0 +1,23 @@ +{ + "title": "{category_name}在线观看 - {site_name} - 最新资源推荐", + "keywords": "{category_name},在线观看,最新资源,推荐,内容列表,{site_name}", + "description": "{site_name}的{category_name}在线观看列表页,先浏览当前可看的资源,再按更新、地区、语言或备注继续筛选,最后进入详情页或播放页完成观看。页面适合快速检索最新资源,也方便蜘蛛继续抓取深层链接。", + "intro_text": "这里汇集{category_name}相关内容,先浏览列表,再根据更新时间、地区和备注筛选,找到合适资源后进入详情页或播放页。", + "category_intro": "{category_name}内容列表已整理在此,适合先看条目,再继续筛选到具体作品。", + "intro_meta": "{category_name}在线观看列表页,支持先浏览再筛选并进入详情页或播放页。", + "guide_cards": [ + { + "title": "先看列表", + "text": "优先浏览{category_name}相关条目,先判断首屏命中是否符合需求。" + }, + { + "title": "继续筛选", + "text": "结合更新进度、热度和类型继续缩小范围。" + }, + { + "title": "进入详情页", + "text": "确认目标后进入详情页或播放页继续查看。" + } + ], + "provider": "openai" +} diff --git a/code/data/seo_copy_published/sdxtwnc-com/detail/default.json b/code/data/seo_copy_published/sdxtwnc-com/detail/default.json new file mode 100644 index 0000000..7761d75 --- /dev/null +++ b/code/data/seo_copy_published/sdxtwnc-com/detail/default.json @@ -0,0 +1,25 @@ +{ + "title_template": "{video_name} - {site_name}详情页", + "keywords_template": "{video_name},{video_alias},{category_name},{year},{area_name},{lang_name},{site_name}", + "description_template": "{site_name}提供{video_name}详情资料页,支持查看别名、年份、地区、语言、导演、演员和备注等关键信息,方便先了解作品线索,再进入对应播放页选择线路观看。", + "detail_body_lead": "本页为{video_name}的资料详情页,可先查看{year}{area_name}{lang_name}等基础信息,以及{director_names}{actor_names}等线索,帮助你判断是否为目标作品。", + "detail_play_link_lead": "确认作品后,可继续前往{play_line}播放线路查看在线播放入口。", + "detail_body_tail": "如需进一步核对,可结合{video_alias}与{remarks}判断版本与内容匹配度,再进入播放页完成观看。", + "detail_faq": "Q:这里能看到哪些信息?\nA:可查看片名、别名、年份、地区、语言、导演、演员和备注等资料线索。\nQ:如果我想直接观看怎么办?\nA:先确认详情页信息,再进入对应播放线路页面。\nQ:信息不完整时怎么判断?\nA:优先参考片名、别名和备注,再结合播放线路继续确认。", + "guide_cards": [ + { + "title": "先核对资料", + "text": "查看年份、地区、语言和别名,确认是否匹配。" + }, + { + "title": "再看播放线路", + "text": "选择{play_line}等线路进入播放页。" + }, + { + "title": "结合备注判断", + "text": "用{remarks}辅助确认版本与内容线索。" + } + ], + "topic_hint": "国产欧美日韩久久久久韩剧网", + "provider": "openai" +} diff --git a/code/data/seo_copy_published/sdxtwnc-com/home/index.json b/code/data/seo_copy_published/sdxtwnc-com/home/index.json new file mode 100644 index 0000000..f4b5752 --- /dev/null +++ b/code/data/seo_copy_published/sdxtwnc-com/home/index.json @@ -0,0 +1,21 @@ +{ + "title": "鑫拓影视_最新电影电视剧综艺动漫短剧在线观看", + "keywords": "鑫拓影视,国产欧美日韩久久久久韩剧网,最新电影,电视剧,综艺,动漫,短剧,高清播放,免费观看,在线观影", + "description": "鑫拓影视(sdxtwnc.com)聚合最新电影、电视剧、综艺、动漫和短剧资源,支持高清流畅在线观看,无需注册即可免费追剧。每日更新热门国产影视与多地区内容,帮助用户快速找到想看的影片并进入详情页或播放页。", + "intro_text": "欢迎来到鑫拓影视,在线看最新电影、电视剧、综艺、动漫和短剧资源,支持按分类浏览、按关键词搜索,找到想看的内容后可直接进入详情页或播放页。", + "intro_meta": "每日更新,高清流畅,免注册观看,适合快速找片与连续追剧。", + "guide_cards": [ + { + "title": "先搜片名", + "text": "直接输入影片名、别名或关键词,快速进入相关详情页。" + }, + { + "title": "按分类找片", + "text": "从电影、剧集、综艺、动漫和短剧入口浏览,更容易发现想看的内容。" + }, + { + "title": "进入播放页", + "text": "找到目标影片后继续查看线路与播放信息,提升找片效率。" + } + ] +} diff --git a/code/data/seo_copy_published/sdxtwnc-com/play/default.json b/code/data/seo_copy_published/sdxtwnc-com/play/default.json new file mode 100644 index 0000000..b8b3293 --- /dev/null +++ b/code/data/seo_copy_published/sdxtwnc-com/play/default.json @@ -0,0 +1,24 @@ +{ + "title_template": "{video_name}在线播放_{site_name}_{play_line}", + "keywords_template": "{video_name},在线播放,{play_line},{category_name},{year},{area_name},{lang_name},{site_name}", + "description_template": "{site_name}提供{video_name}在线播放页面,可先从详情页回看{year}{area_name}{lang_name}等资料线索,再根据{play_line}选择合适线路观看;如有别名、导演、演员或备注,也可用于确认播放版本。", + "play_intro": "当前为{video_name}播放页,建议先确认详情页信息,再根据{play_line}判断可用线路并开始观看。", + "play_meta_note": "播放前可留意{video_alias}、{director_names}、{actor_names}和{remarks}等信息,帮助匹配正确版本。", + "play_body_lead": "如需继续核对,请回到详情页查看{year}{area_name}{lang_name}等资料,再选择当前播放线路。", + "play_body_next": "确认无误后即可通过{play_line}进入在线播放;若线路不合适,可返回详情页重新选择。", + "guide_cards": [ + { + "title": "先回看详情", + "text": "确认片名、年份和备注,再继续播放。" + }, + { + "title": "选择合适线路", + "text": "优先尝试{play_line}等可用播放入口。" + }, + { + "title": "不匹配就返回", + "text": "线路或版本不对时,先回详情页再切换。" + } + ], + "provider": "openai" +} diff --git a/code/data/seo_copy_published/sdxtwnc-com/search/landing.json b/code/data/seo_copy_published/sdxtwnc-com/search/landing.json new file mode 100644 index 0000000..e671617 --- /dev/null +++ b/code/data/seo_copy_published/sdxtwnc-com/search/landing.json @@ -0,0 +1,23 @@ +{ + "title": "{keyword}搜索结果 - {site_name} - 站内搜索", + "keywords": "{keyword},搜索结果,站内搜索,相关结果,{site_name}", + "description": "{site_name}站内关于{keyword}的搜索结果页,建议先浏览相关条目,再按标题、别名、年份或备注进行筛选,最后进入详情页或播放页查看更完整的信息并开始观看。", + "intro_text": "正在查找{keyword}相关内容,这里先展示站内搜索结果,方便你快速浏览、筛选并进入详情页或播放页。", + "search_landing": "围绕{keyword}的相关结果已整理,可优先查看匹配标题和别名的条目,再继续下钻。", + "intro_meta": "搜索结果页强调先浏览再筛选,适合快速定位目标影视内容。", + "faq_content": "如果“{keyword}”结果不够准,建议继续补充演员名、年份、地区或题材词;如果结果太少,可以换简称、别名或近义词再搜。", + "guide_cards": [ + { + "title": "先看相关结果", + "text": "优先浏览标题最接近{keyword}的条目。" + }, + { + "title": "再换词搜索", + "text": "可尝试别名、年份或更短关键词重新检索。" + }, + { + "title": "继续进详情页", + "text": "确认目标后查看更多资料,再进入播放页。" + } + ] +} diff --git a/code/data/seo_copy_published/sjzyunyang-com/category_index/index.json b/code/data/seo_copy_published/sjzyunyang-com/category_index/index.json new file mode 100644 index 0000000..0b2179b --- /dev/null +++ b/code/data/seo_copy_published/sjzyunyang-com/category_index/index.json @@ -0,0 +1,22 @@ +{ + "title": "{parent_category_name}分类导航与热门入口 - {site_name}", + "keywords": "{parent_category_name},{parent_category_name}分类,{parent_category_name}推荐,{site_name}", + "description": "{site_name}把{parent_category_name}常看分类入口集中到当前页面,适合先判断题材方向,再继续深入列表页和详情页。", + "intro_text": "当前页会先把{parent_category_name}方向的常看分类入口整理出来,便于先定方向,再继续筛选列表与详情页。", + "category_intro": "当前频道会优先承接{parent_category_name}相关分类路径,方便先看入口,再逐步进入更细列表。", + "intro_meta": "分类入口页先承接浏览意图,再引导筛选与深页访问。", + "guide_cards": [ + { + "title": "按分类找片", + "text": "先看大类入口,再进入更细分的频道列表。" + }, + { + "title": "按更新筛选", + "text": "优先查看最新资源,减少无效翻页。" + }, + { + "title": "继续看详情", + "text": "确认片名信息后再进入详情页或播放页。" + } + ] +} diff --git a/code/data/seo_copy_published/sjzyunyang-com/category_list/default.json b/code/data/seo_copy_published/sjzyunyang-com/category_list/default.json new file mode 100644 index 0000000..cec5619 --- /dev/null +++ b/code/data/seo_copy_published/sjzyunyang-com/category_list/default.json @@ -0,0 +1,23 @@ +{ + "title": "{category_name}免费在线观看 - {site_name}", + "keywords": "{category_name},{category_name}免费在线观看,{category_name}最新资源,{category_name}推荐,{site_name}", + "description": "{site_name}持续整理{category_name}相关影视资源,适合先看同类内容,再决定是否进入详情页、播放页或继续翻页。", + "intro_text": "当前页会优先露出{category_name}相关条目,适合先看首屏命中,再继续翻页或进入详情页。", + "category_intro": "{site_name}把{category_name}相关条目集中到这一页,方便先看同类内容,再继续缩小范围。", + "intro_meta": "围绕{category_name}相关条目做集中露出,适合先看列表,再继续筛选目标内容。", + "guide_cards": [ + { + "title": "先看列表", + "text": "优先浏览{category_name}相关条目,先判断首屏命中是否符合需求。" + }, + { + "title": "继续筛选", + "text": "结合更新进度、热度和类型继续缩小范围。" + }, + { + "title": "进入详情页", + "text": "确认目标后进入详情页或播放页继续查看。" + } + ], + "provider": "openai" +} diff --git a/code/data/seo_copy_published/sjzyunyang-com/detail/default.json b/code/data/seo_copy_published/sjzyunyang-com/detail/default.json new file mode 100644 index 0000000..2d7f34f --- /dev/null +++ b/code/data/seo_copy_published/sjzyunyang-com/detail/default.json @@ -0,0 +1,25 @@ +{ + "title_template": "{video_name}{episode_name}_{year}_{area_name}_{site_name}", + "keywords_template": "{video_name},{video_alias},{actor_names},{director_names},{area_name},{lang_name},{year},{site_name}", + "description_template": "这是一页{video_name}的资料详情页,适合先确认片名、别名、年份、地区、语言、演员、导演与备注等信息,再进入对应播放页继续观看;若你正在寻找 {video_name} 的准确资源,本页可帮助你快速判断是否匹配当前需求。", + "detail_body_lead": "本页整理 {video_name} 的基础资料与观看路径,先看片名、别名、年份、地区、语言、演员、导演和备注,再决定是否进入播放页。", + "detail_play_link_lead": "确认 {video_name} 的信息后,可继续前往播放页,按 {play_line} 选择可用线路观看。", + "detail_body_tail": "若条目信息与需求不完全一致,建议回到搜索结果继续筛选,或查看同类详情页获取更准确的资源。", + "detail_faq": "Q1:这页主要看什么?\nA1:先看 {video_name} 的资料线索,包括年份、地区、别名和备注。\nQ2:怎么看是否找对资源?\nA2:对照片名、演员、导演与语言信息,再决定是否进入播放页。\nQ3:下一步去哪?\nA3:通过播放链接进入对应线路,按可用性选择播放。", + "guide_cards": [ + { + "title": "先核对资料", + "text": "对照年份、地区、别名和备注,确认是否为目标资源。" + }, + { + "title": "再选播放线路", + "text": "进入播放页后按线路可用性做选择。" + }, + { + "title": "不符就回搜", + "text": "若信息不匹配,返回搜索结果继续筛选。" + } + ], + "topic_hint": "欧美视频在线播放", + "provider": "openai" +} diff --git a/code/data/seo_copy_published/sjzyunyang-com/home/index.json b/code/data/seo_copy_published/sjzyunyang-com/home/index.json new file mode 100644 index 0000000..e2240f2 --- /dev/null +++ b/code/data/seo_copy_published/sjzyunyang-com/home/index.json @@ -0,0 +1,21 @@ +{ + "title": "欧美视频在线播放_免费中文字幕日韩欧美_欧美精品一区在线观看_云阳影院", + "keywords": "欧美视频在线播放,免费中文字幕日韩欧美,欧美精品一区在线观看,云阳影院,日韩欧美在线播放视频,欧美中文在线观看", + "description": "云阳影院【www.sjzyunyang.com】是专业在线影院电影网,提供欧美视频在线播放、日韩欧美在线播放视频、欧美精品一区在线观看等内容,支持免费高清观看与持续更新,涵盖日剧、韩剧、泰剧等资源,方便用户快速找片、进入详情页和播放页。", + "intro_text": "云阳影院聚合欧美视频在线播放与日韩欧美精品资源,适合想先浏览、再筛选、再直达详情或播放页的用户。这里以在线播放和高清完整版观看体验为核心,兼顾日剧、韩剧、泰剧等热门分类,方便快速找到想看的内容。", + "intro_meta": "优先浏览分类与搜索结果,再进入详情页和播放页,收录更新更高效。", + "guide_cards": [ + { + "title": "先看分类", + "text": "按欧美、日韩欧美、日剧韩剧泰剧等方向快速筛选,减少找片时间。" + }, + { + "title": "再进详情", + "text": "打开影片资料页查看年份、地区、别名和备注,再决定是否观看。" + }, + { + "title": "直达播放", + "text": "进入播放页后优先选择可用线路,提升播放成功率。" + } + ] +} diff --git a/code/data/seo_copy_published/sjzyunyang-com/play/default.json b/code/data/seo_copy_published/sjzyunyang-com/play/default.json new file mode 100644 index 0000000..c778be9 --- /dev/null +++ b/code/data/seo_copy_published/sjzyunyang-com/play/default.json @@ -0,0 +1,24 @@ +{ + "title_template": "{video_name}{episode_name}_{play_line}在线观看_{site_name}", + "keywords_template": "{video_name},{episode_name},{play_line},在线观看,在线播放,{site_name}", + "description_template": "正在观看 {video_name}{episode_name},本页提供 {play_line} 播放线路;如需确认影片资料,可返回详情页查看 {year}、{area_name}、{lang_name}、{actor_names}、{director_names} 与 {remarks} 等线索,再根据线路状态继续播放。", + "play_intro": "这里是 {video_name}{episode_name} 的播放页,建议先确认详情信息,再选择可用线路开始观看。", + "play_meta_note": "若当前线路不可用,可返回详情页或切换 {play_line} 继续查看。", + "play_body_lead": "本页用于直接播放 {video_name}{episode_name},同时保留回到详情页核对资料的路径,便于确认片名、年份、地区、语言和备注。", + "play_body_next": "如果你需要进一步确认内容来源或播放线路,可返回详情页比对信息后再继续观看。", + "guide_cards": [ + { + "title": "先看线路", + "text": "优先选择当前可用的播放线路。" + }, + { + "title": "回看详情", + "text": "需要确认资料时,返回详情页核对年份和地区。" + }, + { + "title": "切换再播", + "text": "如播放异常,可更换线路继续尝试。" + } + ], + "provider": "openai" +} diff --git a/code/data/seo_copy_published/sjzyunyang-com/search/landing.json b/code/data/seo_copy_published/sjzyunyang-com/search/landing.json new file mode 100644 index 0000000..b7965bd --- /dev/null +++ b/code/data/seo_copy_published/sjzyunyang-com/search/landing.json @@ -0,0 +1,23 @@ +{ + "title": "{keyword}搜索结果 - 站内搜索 - 云阳影院", + "keywords": "{keyword},搜索结果,站内搜索,相关结果,云阳影院", + "description": "云阳影院站内搜索结果页,围绕 {keyword} 展示相关结果,建议先浏览匹配条目,再结合年份、地区、别名、备注等信息筛选,最后进入详情页或播放页继续查看,方便用户更快找到准确资源,也便于搜索引擎识别搜索意图。", + "intro_text": "你正在查看 {keyword} 的站内搜索结果。这里适合先浏览相关条目,再根据片名、年份、地区和备注继续筛选,确认目标后进入详情页或播放页。", + "search_landing": "建议先用“{keyword}”确认结果方向,再逐步叠加更细的搜索词把范围压小。", + "intro_meta": "搜索结果页优先承接关键词意图,并向详情页和播放页递进。", + "faq_content": "搜索不到目标内容时,可以把“{keyword}”和人物、年份、剧情词组合搜索,通常更容易缩小到目标条目。", + "guide_cards": [ + { + "title": "先看匹配度", + "text": "优先浏览标题更接近关键词的结果。" + }, + { + "title": "换词再搜", + "text": "可用别名、年份或地区继续缩小范围。" + }, + { + "title": "进入详情页", + "text": "确认信息后再跳转播放页,避免误点。" + } + ] +} diff --git a/code/data/seo_copy_published/ukoys-com/category_index/index.json b/code/data/seo_copy_published/ukoys-com/category_index/index.json new file mode 100644 index 0000000..080eb34 --- /dev/null +++ b/code/data/seo_copy_published/ukoys-com/category_index/index.json @@ -0,0 +1,22 @@ +{ + "title": "{parent_category_name}热门分类入口 - {site_name}", + "keywords": "{parent_category_name},{parent_category_name}分类,{parent_category_name}推荐,{site_name}", + "description": "{site_name}把{parent_category_name}常看分类入口集中到当前页面,适合先判断题材方向,再继续深入列表页和详情页。", + "intro_text": "如果你准备按题材找内容,这一页更适合先看{parent_category_name}分类入口,再决定下一步进入哪类列表。", + "category_intro": "{site_name}把{parent_category_name}的一级分类和细分方向集中到这里,适合先判断题材,再继续点进详情页。", + "intro_meta": "分类先行,浏览更快;筛选之后,再进入详情页或播放页查看。", + "guide_cards": [ + { + "title": "先选频道", + "text": "按分类入口进入对应栏目,快速缩小范围。" + }, + { + "title": "再看列表", + "text": "在内容列表中继续筛选,找更新更快。" + }, + { + "title": "点进详情页", + "text": "查看资料后再进入播放页,更省时间。" + } + ] +} diff --git a/code/data/seo_copy_published/ukoys-com/category_list/default.json b/code/data/seo_copy_published/ukoys-com/category_list/default.json new file mode 100644 index 0000000..f57cf61 --- /dev/null +++ b/code/data/seo_copy_published/ukoys-com/category_list/default.json @@ -0,0 +1,23 @@ +{ + "title": "{category_name}在线观看 - {site_name}", + "keywords": "{category_name}在线观看,{category_name}最新资源,{category_name}推荐,{category_name}内容列表,{site_name}", + "description": "在优客影视浏览{category_name}在线观看与最新资源列表,先通过列表快速筛选,再进入详情页查看年份、地区、演员、导演等信息,最后前往播放页选择合适线路观看。", + "intro_text": "这里汇总{category_name}相关内容,适合先浏览内容列表,再按更新、热度和资料线索继续筛选。", + "category_intro": "从{category_name}内容列表开始,先看可选资源,再进入详情页确认信息,最后到播放页完成观看。", + "intro_meta": "{category_name}在线观看列表页,支持先浏览再筛选并进入详情页或播放页。", + "guide_cards": [ + { + "title": "先看列表", + "text": "优先浏览{category_name}相关条目,先判断首屏命中是否符合需求。" + }, + { + "title": "继续筛选", + "text": "结合更新进度、热度和类型继续缩小范围。" + }, + { + "title": "进入详情页", + "text": "确认目标后进入详情页或播放页继续查看。" + } + ], + "provider": "openai" +} diff --git a/code/data/seo_copy_published/ukoys-com/detail/default.json b/code/data/seo_copy_published/ukoys-com/detail/default.json new file mode 100644 index 0000000..242c9d9 --- /dev/null +++ b/code/data/seo_copy_published/ukoys-com/detail/default.json @@ -0,0 +1,25 @@ +{ + "title_template": "{video_name}{episode_name}{year}_{site_name}", + "keywords_template": "{video_name},{video_alias},{actor_names},{director_names},{area_name},{lang_name},{remarks},{site_name}", + "description_template": "这里是{video_name}的资料详情页,可先查看标题、别名、年份、地区、演员、导演和备注等线索,再根据页面提供的播放入口进入{play_line}线路观看。", + "detail_body_lead": "本页用于快速了解{video_name}的基本资料与观看入口,适合先核对信息,再决定是否进入播放页。", + "detail_play_link_lead": "如需观看,请先确认{play_line}线路,再进入播放页查看可用资源。", + "detail_body_tail": "资料包括{year}、{area_name}、{lang_name}、{actor_names}、{director_names}、{remarks}等线索,便于你继续判断是否匹配。", + "detail_faq": "如果标题存在别名,可优先对照{video_alias};若想继续观看,请从详情页进入对应播放线路。", + "guide_cards": [ + { + "title": "先核对信息", + "text": "查看年份、地区、演员和别名,确认是否是你要找的资源。" + }, + { + "title": "再选播放线路", + "text": "根据页面提供的线路入口进入播放页。" + }, + { + "title": "不确定就继续搜", + "text": "可用别名或人物信息回到搜索页继续查找。" + } + ], + "topic_hint": "久久精品国产精品", + "provider": "openai" +} diff --git a/code/data/seo_copy_published/ukoys-com/home/index.json b/code/data/seo_copy_published/ukoys-com/home/index.json new file mode 100644 index 0000000..58740bd --- /dev/null +++ b/code/data/seo_copy_published/ukoys-com/home/index.json @@ -0,0 +1,21 @@ +{ + "title": "久久精品国产精品中文字幕一区二区三区四区在线视频_优客影视", + "keywords": "久久精品国产精品中文字幕一区二区三区四区在线视频,优客影视,久久精品国产精品,中文字幕一区二区三区四区在线视频,欧美日韩国产中文,欧美日韩国产一区二区三区,精品久久久久久,欧美视频一区二区三区", + "description": "优客影视提供最新久久精品国产精品短剧、欧美日韩国产中文电影、精品久久久久久电视剧、欧美日韩国产一区二区三区动漫等资源,所有内容均支持高清在线播放,免注册,免下载,满足您随时随地观看的需求。", + "intro_text": "优客影视聚合久久精品国产精品中文字幕一区二区三区四区在线视频等热门内容,支持按分类快速浏览、按关键词精准筛选,再进入详情页或播放页继续查看。", + "intro_meta": "先看分类,再筛选片源,快速进入详情页与播放页,适合找资源、找热片、找更新。", + "guide_cards": [ + { + "title": "按分类先找片", + "text": "从首页分类入口进入,先浏览再筛选,减少无效翻找。" + }, + { + "title": "直接搜关键词", + "text": "输入片名、别名或演员信息,快速定位相关结果。" + }, + { + "title": "进入详情再播放", + "text": "先看资料页信息,再选择合适线路进入播放页。" + } + ] +} diff --git a/code/data/seo_copy_published/ukoys-com/play/default.json b/code/data/seo_copy_published/ukoys-com/play/default.json new file mode 100644 index 0000000..d6dd952 --- /dev/null +++ b/code/data/seo_copy_published/ukoys-com/play/default.json @@ -0,0 +1,24 @@ +{ + "title_template": "{video_name}在线播放_{episode_name}_{site_name}", + "keywords_template": "{video_name}在线播放,{episode_name},播放线路,{play_line},{site_name}", + "description_template": "这里是{video_name}的在线播放页,建议先回看详情页确认{year}、{area_name}、{lang_name}、{actor_names}等资料,再根据{play_line}线路选择可用播放入口继续观看。", + "play_intro": "本页提供{video_name}的在线播放入口,适合先查看线路,再判断哪个播放方式更稳定。", + "play_meta_note": "如需回到资料页,可先核对别名{video_alias}、备注{remarks}和年份信息。", + "play_body_lead": "当前页面用于直接观看{video_name},如需确认内容信息,可返回详情页查看资料。", + "play_body_next": "选择合适的{play_line}线路后即可继续播放;若当前线路不可用,可切换其他入口或返回详情页再查找。", + "guide_cards": [ + { + "title": "先看线路", + "text": "优先选择可用播放入口,减少卡顿和跳转。" + }, + { + "title": "回看详情页", + "text": "如需核对年份、地区或别名,可返回资料页确认。" + }, + { + "title": "线路不可用就换", + "text": "切换其他播放线路,继续查看可用资源。" + } + ], + "provider": "openai" +} diff --git a/code/data/seo_copy_published/ukoys-com/search/landing.json b/code/data/seo_copy_published/ukoys-com/search/landing.json new file mode 100644 index 0000000..5899c58 --- /dev/null +++ b/code/data/seo_copy_published/ukoys-com/search/landing.json @@ -0,0 +1,23 @@ +{ + "title": "{keyword}搜索结果 - 站内搜索 - {site_name}", + "keywords": "{keyword},搜索结果,站内搜索,相关结果,优客影视", + "description": "优客影视为{keyword}提供站内搜索结果页,建议先浏览相关结果,再按标题、别名、年份和备注继续筛选,进入详情页核对信息后再跳转播放页查看可用线路。", + "intro_text": "这是{keyword}的站内搜索结果页,适合先看相关结果,再进一步筛选到更准确的条目。", + "search_landing": "建议先用“{keyword}”确认结果方向,再逐步叠加更细的搜索词把范围压小。", + "intro_meta": "搜索结果先浏览,再筛选,最后进入详情页与播放页。", + "faq_content": "如果“{keyword}”结果不够准,建议继续补充演员名、年份、地区或题材词;如果结果太少,可以换简称、别名或近义词再搜。", + "guide_cards": [ + { + "title": "先看相关结果", + "text": "搜索后先浏览结果列表,再决定是否继续筛选。" + }, + { + "title": "换词再搜一次", + "text": "可用别名、年份或人物名提高命中率。" + }, + { + "title": "进入详情核对", + "text": "确认信息后,再跳转播放页查看线路。" + } + ] +} diff --git a/code/data/seo_copy_published/vikau-com/category_index/index.json b/code/data/seo_copy_published/vikau-com/category_index/index.json new file mode 100644 index 0000000..f40c16c --- /dev/null +++ b/code/data/seo_copy_published/vikau-com/category_index/index.json @@ -0,0 +1,22 @@ +{ + "title": "{parent_category_name}热门分类入口 - {site_name}", + "keywords": "{parent_category_name},{parent_category_name}分类,{parent_category_name}推荐,{site_name}", + "description": "{site_name}汇总{parent_category_name}分类下的热门内容与细分方向,方便先按类型浏览,再继续进入更细的列表页或详情页。", + "intro_text": "当前页会先把{parent_category_name}方向的常看分类入口整理出来,便于先定方向,再继续筛选列表与详情页。", + "category_intro": "当前频道会优先承接{parent_category_name}相关分类路径,方便先看入口,再逐步进入更细列表。", + "intro_meta": "先浏览分类,再筛选资源,继续进入详情页或播放页完成观看。", + "guide_cards": [ + { + "title": "浏览频道", + "text": "先看分类入口,快速找到对应影片区域。" + }, + { + "title": "继续筛选", + "text": "按片名、地区、年代和别名缩小范围。" + }, + { + "title": "进入深页", + "text": "点开详情页或播放页继续查看与播放。" + } + ] +} diff --git a/code/data/seo_copy_published/vikau-com/category_list/default.json b/code/data/seo_copy_published/vikau-com/category_list/default.json new file mode 100644 index 0000000..4000946 --- /dev/null +++ b/code/data/seo_copy_published/vikau-com/category_list/default.json @@ -0,0 +1,23 @@ +{ + "title": "{category_name}在线观看 - {site_name}", + "keywords": "{category_name}在线观看,{category_name}最新资源,{category_name}推荐,{category_name}内容列表,{site_name},{video_name},{video_alias},{area_name},{year}", + "description": "这里是{category_name}的流量承接列表页,建议先浏览当前列表,再按年份、地区、别名与备注筛选合适条目,随后进入详情页查看资料线索,或直接进入播放页继续观看,方便用户与蜘蛛逐层向深页推进。", + "intro_text": "在{site_name}中浏览{category_name}内容列表,先看当前资源,再根据片名、年代、地区和别名继续筛选,找到目标后进入详情页或播放页更高效。", + "category_intro": "{category_name}列表页适合先浏览、再筛选、再进入深页;如果你已经有明确目标,可以直接通过片名或别名继续查找。", + "intro_meta": "围绕{category_name}相关条目做集中露出,适合先看列表,再继续筛选目标内容。", + "guide_cards": [ + { + "title": "先看列表", + "text": "优先浏览{category_name}相关条目,先判断首屏命中是否符合需求。" + }, + { + "title": "继续筛选", + "text": "结合更新进度、热度和类型继续缩小范围。" + }, + { + "title": "进入详情页", + "text": "确认目标后进入详情页或播放页继续查看。" + } + ], + "provider": "openai" +} diff --git a/code/data/seo_copy_published/vikau-com/detail/default.json b/code/data/seo_copy_published/vikau-com/detail/default.json new file mode 100644 index 0000000..d93b2d2 --- /dev/null +++ b/code/data/seo_copy_published/vikau-com/detail/default.json @@ -0,0 +1,25 @@ +{ + "title_template": "{video_name}{remarks}_{site_name}", + "keywords_template": "{video_name},{video_alias},{category_name},{year},{area_name},{lang_name},{director_names},{actor_names},{site_name}", + "description_template": "在{site_name}查看{video_name}的详情资料,先了解年份、地区、别名、导演、演员与备注等关键信息,再决定是否进入播放页继续观看;如果你正在核对同名或相近条目,这一页也方便你快速辨别与筛选。", + "detail_body_lead": "本页为{video_name}资料页,适合先确认{year}、{area_name}、{lang_name}、{director_names}、{actor_names}、{video_alias}与{remarks}等线索,再进入对应观看页面。", + "detail_play_link_lead": "如果你已经确认是目标条目,可继续查看下方播放入口,选择{play_line}进入播放页。", + "detail_body_tail": "详情页先提供资料线索,再衔接播放路径,适合用来判断是否为你要找的{category_name}内容。", + "detail_faq": "Q:这页主要看什么?A:先看年份、地区、别名、导演、演员和备注,再决定是否播放。Q:如果条目相近怎么办?A:对比别名与备注,确认后再进入播放页。", + "guide_cards": [ + { + "title": "先核对信息", + "text": "查看年份、地区、别名与备注。" + }, + { + "title": "再看播放", + "text": "确认条目后继续进入播放页。" + }, + { + "title": "便于比对", + "text": "相近片名先对照资料再决定是否观看。" + } + ], + "topic_hint": "日韩欧美亚洲国产精品字幕久久久", + "provider": "openai" +} diff --git a/code/data/seo_copy_published/vikau-com/home/index.json b/code/data/seo_copy_published/vikau-com/home/index.json new file mode 100644 index 0000000..d95cefd --- /dev/null +++ b/code/data/seo_copy_published/vikau-com/home/index.json @@ -0,0 +1,21 @@ +{ + "title": "佰务影视_免费在线观看经典电影与怀旧剧集", + "keywords": "佰务影视,经典电影,怀旧剧集,老片重温,港片经典,日韩欧美亚洲国产精品字幕久久久,日韩欧美亚洲一区,国产精品a久久久久,影视观看", + "description": "佰务影视(www.vikau.com)专注经典电影、怀旧剧集与老片重温,汇集日韩欧美亚洲一区、港片黄金时代、国产精品a久久久久等影视资源,支持流畅观看与每日更新,方便影迷快速找到想看的内容,重温记忆中的光影时刻。", + "intro_text": "欢迎来到佰务影视,这里整理经典电影、怀旧剧集与老片重温内容,适合想找日韩欧美亚洲一区、港片经典和国产精品a久久久久资源的观众先浏览再筛选,快速进入详情页或播放页。", + "intro_meta": "先看分类,再按地区、年代与片名筛选,继续进入详情页或播放页。", + "guide_cards": [ + { + "title": "先看分类", + "text": "按地区、类型、年代快速找到想看的经典片源。" + }, + { + "title": "再进详情", + "text": "打开详情页查看年份、地区、别名与备注等资料线索。" + }, + { + "title": "直接播放", + "text": "选定线路后进入播放页,继续观看更省时间。" + } + ] +} diff --git a/code/data/seo_copy_published/vikau-com/play/default.json b/code/data/seo_copy_published/vikau-com/play/default.json new file mode 100644 index 0000000..d994848 --- /dev/null +++ b/code/data/seo_copy_published/vikau-com/play/default.json @@ -0,0 +1,24 @@ +{ + "title_template": "{video_name}在线播放_{play_line}_{site_name}", + "keywords_template": "{video_name}在线播放,{play_line},{category_name},{year},{area_name},{lang_name},{video_alias},{site_name}", + "description_template": "在{site_name}进入{video_name}播放页后,可先回看详情资料,再根据{play_line}判断当前线路是否适合继续观看;本页保留{year}、{area_name}、{lang_name}、{video_alias}与{remarks}等线索,方便你确认条目并切换到合适的播放路径。", + "play_intro": "这里是{video_name}的播放页,建议先确认详情页信息,再根据当前{play_line}选择合适线路继续观看。", + "play_meta_note": "播放前可回到详情页核对年份、地区、别名与备注。", + "play_body_lead": "如需继续观看,请先确认条目与线路,再从{play_line}进入播放;若与预期不符,可返回详情页重新核对{year}、{area_name}、{lang_name}、{video_alias}与{remarks}。", + "play_body_next": "若当前线路不稳定或内容不匹配,建议切换其他播放路径,或先回详情页查看更完整资料后再继续。", + "guide_cards": [ + { + "title": "先核对条目", + "text": "确认片名、别名、年份和地区。" + }, + { + "title": "再选线路", + "text": "根据当前播放线路继续观看。" + }, + { + "title": "不符可返回", + "text": "回详情页重新比对信息再播放。" + } + ], + "provider": "openai" +} diff --git a/code/data/seo_copy_published/vikau-com/search/landing.json b/code/data/seo_copy_published/vikau-com/search/landing.json new file mode 100644 index 0000000..4427536 --- /dev/null +++ b/code/data/seo_copy_published/vikau-com/search/landing.json @@ -0,0 +1,23 @@ +{ + "title": "{keyword}搜索结果 - {site_name}", + "keywords": "{keyword},搜索结果,站内搜索,相关结果,{site_name},影视搜索,详情页,播放页", + "description": "这是{keyword}的站内搜索结果页,建议先浏览相关结果,再按标题、别名、年份和地区继续筛选,找到目标后进入详情页查看资料,或直接进入播放页完成观看,既方便用户查找,也有利于搜索蜘蛛继续抓取深层页面。", + "intro_text": "围绕{keyword}查找相关资源,先浏览搜索结果,再结合片名、别名、年份和地区继续筛选,找到合适内容后可进入详情页或播放页。", + "search_landing": "如果你正在找{keyword},可以先看站内相关结果,再按标题、别名和年份继续缩小范围,最后进入详情页或播放页。", + "intro_meta": "先浏览搜索结果,再筛选目标条目,继续进入详情页或播放页。", + "faq_content": "如果“{keyword}”结果不够准,建议继续补充演员名、年份、地区或题材词;如果结果太少,可以换简称、别名或近义词再搜。", + "guide_cards": [ + { + "title": "先看结果", + "text": "浏览站内相关结果,优先找到匹配条目。" + }, + { + "title": "再做筛选", + "text": "用片名、别名、年份继续缩小范围。" + }, + { + "title": "进入深页", + "text": "确认后打开详情页或播放页继续查看。" + } + ] +} diff --git a/code/data/seo_copy_published/visitsumenep-com/category_index/index.json b/code/data/seo_copy_published/visitsumenep-com/category_index/index.json new file mode 100644 index 0000000..a60c0a7 --- /dev/null +++ b/code/data/seo_copy_published/visitsumenep-com/category_index/index.json @@ -0,0 +1,22 @@ +{ + "title": "{parent_category_name}分类导航与热门入口 - {site_name}", + "keywords": "{parent_category_name},{parent_category_name}分类,{parent_category_name}推荐,{site_name}", + "description": "{site_name}汇总{parent_category_name}分类下的热门内容与细分方向,方便先按类型浏览,再继续进入更细的列表页或详情页。", + "intro_text": "如果你准备按题材找内容,这一页更适合先看{parent_category_name}分类入口,再决定下一步进入哪类列表。", + "category_intro": "{site_name}把{parent_category_name}的一级分类和细分方向集中到这里,适合先判断题材,再继续点进详情页。", + "intro_meta": "分类入口页支持浏览、筛选、进入详情与播放,适合承接分类流量。", + "guide_cards": [ + { + "title": "按分类找", + "text": "先看频道,再进入更具体的列表页。" + }, + { + "title": "继续筛选", + "text": "结合关键词缩小范围,提升找到目标内容的速度。" + }, + { + "title": "进入深页", + "text": "从分类页点进详情页或播放页,完成观看路径。" + } + ] +} diff --git a/code/data/seo_copy_published/visitsumenep-com/category_list/default.json b/code/data/seo_copy_published/visitsumenep-com/category_list/default.json new file mode 100644 index 0000000..664d4e6 --- /dev/null +++ b/code/data/seo_copy_published/visitsumenep-com/category_list/default.json @@ -0,0 +1,23 @@ +{ + "title": "{category_name}最新资源与在线观看 - {site_name}", + "keywords": "{category_name},{category_name}免费在线观看,{category_name}最新资源,{category_name}推荐,{site_name}", + "description": "{site_name}提供{category_name}最新资源与在线播放入口,方便快速筛选并查看可播放内容,再继续点进详情页确认。", + "intro_text": "如果你正在筛{category_name}同类资源,这里更适合先判断首屏质量,再决定是否继续看更多条目。", + "category_intro": "这一页更像{category_name}的流量承接列表,适合先判断内容密度,再进入详情页查看具体信息。", + "intro_meta": "{category_name}在线观看列表页,支持先浏览再筛选并进入详情页或播放页。", + "guide_cards": [ + { + "title": "先看列表", + "text": "优先浏览{category_name}相关条目,先判断首屏命中是否符合需求。" + }, + { + "title": "继续筛选", + "text": "结合更新进度、热度和类型继续缩小范围。" + }, + { + "title": "进入详情页", + "text": "确认目标后进入详情页或播放页继续查看。" + } + ], + "provider": "openai" +} diff --git a/code/data/seo_copy_published/visitsumenep-com/detail/default.json b/code/data/seo_copy_published/visitsumenep-com/detail/default.json new file mode 100644 index 0000000..6f4adfa --- /dev/null +++ b/code/data/seo_copy_published/visitsumenep-com/detail/default.json @@ -0,0 +1,25 @@ +{ + "title_template": "{video_name}_{category_name}详情_{site_name}", + "keywords_template": "{video_name},{video_alias},{category_name},详情,演员,导演,年份,地区,短剧窝", + "description_template": "短剧窝为你提供《{video_name}》的资料详情页,可先查看影片基本信息、别名、演员、导演、地区、年份与备注,再继续进入播放页或返回列表页对比相关内容,方便快速确认是否为你要找的资源。这条详情页会把{lang_name}、{remarks}、{actor_names}和{director_names}整理在剧情资料前,方便先看资料再决定是否继续播放。", + "detail_body_lead": "本页整理《{video_name}》的资料信息,适合先看简介线索与事实字段,再决定是否进入播放页继续观看。当前详情页会把{video_alias}、{lang_name}和{remarks}等资料并入主描述,减少只看公共简介的同质感。", + "detail_play_link_lead": "若你已确认是目标内容,可继续打开播放页;也可先返回同分类列表对比相似条目。", + "detail_body_tail": "页面保留标题、别名、年份、地区、演员、导演与备注等线索,帮助你更稳妥地确认内容并继续查看。", + "detail_faq": "如果当前信息不足,可先通过别名、年份或地区确认条目,再进入对应播放页查看线路。如果想进一步确认,可优先查看{year}、{area_name}、{lang_name}、{actor_names}和{remarks}这些事实字段。", + "guide_cards": [ + { + "title": "先核对信息", + "text": "重点看别名、年份、地区与备注。" + }, + { + "title": "再进播放页", + "text": "确认无误后,继续打开对应线路。" + }, + { + "title": "回列表对比", + "text": "若不确定,可返回同分类列表继续筛选。" + } + ], + "topic_hint": "国产精品人成视频免费播放", + "provider": "openai" +} diff --git a/code/data/seo_copy_published/visitsumenep-com/home/index.json b/code/data/seo_copy_published/visitsumenep-com/home/index.json new file mode 100644 index 0000000..5638dec --- /dev/null +++ b/code/data/seo_copy_published/visitsumenep-com/home/index.json @@ -0,0 +1,21 @@ +{ + "title": "短剧窝_短剧大全与热门短剧在线播放", + "keywords": "短剧大全,热门短剧,短剧在线观看,国产精品人成视频免费播放,久久亚洲综合中文字幕,国产成人免费手机在线观看视频,免费人成视频在线观看不卡,国产日韩一区二区三区毛片,短剧窝", + "description": "短剧窝(www.visitsumenep.com)汇聚全网热门短剧资源,提供短剧大全、热门短剧在线观看与稳定播放体验;支持手机电脑浏览器直接打开,页面简洁,搜索便捷,方便快速找到想看的短剧内容。", + "intro_text": "欢迎来到短剧窝,这里为你整理热门短剧与相关内容,支持先搜索、再筛选、再进入详情或播放页,帮助你更快找到想看的资源。", + "intro_meta": "短剧窝提供短剧大全、热门短剧与便捷搜索入口,适合快速浏览与继续深入查看详情页。", + "guide_cards": [ + { + "title": "先搜再看", + "text": "输入关键词,快速找到对应短剧与相关结果。" + }, + { + "title": "浏览分类", + "text": "从分类入口进入,继续筛选更合适的内容。" + }, + { + "title": "直达播放", + "text": "进入详情页后可继续打开播放页,减少跳转。" + } + ] +} diff --git a/code/data/seo_copy_published/visitsumenep-com/play/default.json b/code/data/seo_copy_published/visitsumenep-com/play/default.json new file mode 100644 index 0000000..faee67b --- /dev/null +++ b/code/data/seo_copy_published/visitsumenep-com/play/default.json @@ -0,0 +1,24 @@ +{ + "title_template": "{video_name}在线观看_{episode_name}_{site_name}", + "keywords_template": "{video_name},在线观看,{episode_name},播放页,{play_line},{category_name},短剧窝", + "description_template": "短剧窝播放页为《{video_name}》提供在线查看入口,你可以先确认当前线路与集数,再对照详情页中的别名、年份、地区、演员、导演和备注等信息,必要时返回详情页或列表页切换线路继续观看。建议先核对{year}、{area_name}、{actor_names}、{director_names}与{remarks},再根据{play_line}选择合适播放方式。", + "play_intro": "当前为《{video_name}》的播放页面,适合先确认集数与线路,再结合详情页信息判断是否为目标内容。如需先确认资料,可回详情页补看{year}、{area_name}、{lang_name}与{actor_names}。", + "play_meta_note": "若当前线路加载不理想,可返回详情页查看其他线索或切换播放线路。", + "play_body_lead": "本页用于直接进入播放;如需确认内容信息,可先回到详情页查看基础资料,再返回此页继续观看。当前页会把{video_alias}、{director_names}和{remarks}这类线索补在播放动作前,方便继续判断内容。", + "play_body_next": "建议优先核对线路、集数与备注,必要时切换播放线路或回到列表页继续查找同类内容。", + "guide_cards": [ + { + "title": "确认线路", + "text": "先看当前播放线路与集数是否正确。" + }, + { + "title": "切换播放", + "text": "如加载异常,可尝试其他线路继续。" + }, + { + "title": "返回详情", + "text": "需要核对信息时,先回详情页再回来。" + } + ], + "provider": "openai" +} diff --git a/code/data/seo_copy_published/visitsumenep-com/search/landing.json b/code/data/seo_copy_published/visitsumenep-com/search/landing.json new file mode 100644 index 0000000..96fa290 --- /dev/null +++ b/code/data/seo_copy_published/visitsumenep-com/search/landing.json @@ -0,0 +1,23 @@ +{ + "title": "{keyword}搜索结果 - 站内搜索 - 短剧窝", + "keywords": "{keyword},搜索结果,站内搜索,相关结果,短剧窝", + "description": "短剧窝站内搜索结果页,围绕“{keyword}”先浏览匹配结果,再筛选更接近需求的条目,随后进入详情页或播放页查看资料与播放线路,帮助用户更快找到目标内容。", + "intro_text": "以下为“{keyword}”的站内搜索结果,建议先浏览相关条目,再筛选后进入详情页或播放页继续查看。", + "search_landing": "这里聚合了与“{keyword}”相关的站内结果,适合先比对标题与条目,再进入更具体的详情页或播放页。", + "intro_meta": "搜索结果页强调先浏览、再筛选、再进入详情或播放,提升匹配效率。", + "faq_content": "如果“{keyword}”结果不够准,建议继续补充演员名、年份、地区或题材词;如果结果太少,可以换简称、别名或近义词再搜。", + "guide_cards": [ + { + "title": "查看相关结果", + "text": "先浏览匹配条目,确认是否符合需求。" + }, + { + "title": "缩小关键词", + "text": "换用别名、简称或更具体的词继续搜索。" + }, + { + "title": "进入详情播放", + "text": "从结果页点入详情页,再进入播放页。" + } + ] +} diff --git a/code/data/seo_copy_published/zbsv3-com/category_index/index.json b/code/data/seo_copy_published/zbsv3-com/category_index/index.json new file mode 100644 index 0000000..cfd4c9b --- /dev/null +++ b/code/data/seo_copy_published/zbsv3-com/category_index/index.json @@ -0,0 +1,22 @@ +{ + "title": "{parent_category_name}分类导航与热门入口 - {site_name}", + "keywords": "{parent_category_name},{parent_category_name}分类,{parent_category_name}推荐,{site_name}", + "description": "{site_name}会优先整理{parent_category_name}常看分类入口,便于快速判断方向并继续筛选内容,再进入详情页查看播放线索。", + "intro_text": "如果你准备按题材找内容,这一页更适合先看{parent_category_name}分类入口,再决定下一步进入哪类列表。", + "category_intro": "{site_name}把{parent_category_name}的一级分类和细分方向集中到这里,适合先判断题材,再继续点进详情页。", + "intro_meta": "分类入口页更适合先浏览,再筛选,再进入深页。", + "guide_cards": [ + { + "title": "按频道先浏览", + "text": "电影、剧集、动漫、短剧分开找,目标更清晰。" + }, + { + "title": "继续筛选更精准", + "text": "结合地区、语言或更新时间,快速缩小范围。" + }, + { + "title": "直达详情与播放", + "text": "找到合适资源后,继续进入详情页或播放页。" + } + ] +} diff --git a/code/data/seo_copy_published/zbsv3-com/category_list/default.json b/code/data/seo_copy_published/zbsv3-com/category_list/default.json new file mode 100644 index 0000000..d4519f7 --- /dev/null +++ b/code/data/seo_copy_published/zbsv3-com/category_list/default.json @@ -0,0 +1,23 @@ +{ + "title": "{category_name}在线观看 - {site_name} - 最新资源推荐", + "keywords": "{category_name}在线观看,{category_name}最新资源,{category_name}推荐,{category_name}内容列表,{site_name}", + "description": "在泽博影视浏览{category_name}最新资源,先通过列表快速筛选,再进入详情页查看年份、地区、别名、演员或备注等信息,确认后继续到播放页。适合先看列表、再挑选、再深度进入内容页。", + "intro_text": "这里整理了{category_name}相关在线观看资源,你可以先浏览列表,再根据年份、地区、语言或备注筛选,找到合适内容后进入详情页和播放页。", + "category_intro": "{category_name}内容列表优先展示可继续深入查看的资源,适合先筛选,再查看资料,再选择播放线路。", + "intro_meta": "{category_name}在线观看列表页,支持先浏览再筛选并进入详情页或播放页。", + "guide_cards": [ + { + "title": "先看列表", + "text": "优先浏览{category_name}相关条目,先判断首屏命中是否符合需求。" + }, + { + "title": "继续筛选", + "text": "结合更新进度、热度和类型继续缩小范围。" + }, + { + "title": "进入详情页", + "text": "确认目标后进入详情页或播放页继续查看。" + } + ], + "provider": "openai" +} diff --git a/code/data/seo_copy_published/zbsv3-com/detail/default.json b/code/data/seo_copy_published/zbsv3-com/detail/default.json new file mode 100644 index 0000000..c6c2a2b --- /dev/null +++ b/code/data/seo_copy_published/zbsv3-com/detail/default.json @@ -0,0 +1,25 @@ +{ + "title_template": "{video_name}{video_alias}在线观看_{year}_{site_name}", + "keywords_template": "{video_name},{video_alias},{category_name},{year},{area_name},{lang_name},{actor_names},{director_names},{site_name}", + "description_template": "{site_name}提供{video_name}{video_alias}的资料与在线观看入口,适合先查看年份{year}、地区{area_name}、语言{lang_name}、演员{actor_names}、导演{director_names}和备注{remarks}等线索,再进入播放页选择线路。", + "detail_body_lead": "本页整理{video_name}{video_alias}的基础资料与观看入口,方便你先确认影片信息,再决定是否继续播放。", + "detail_play_link_lead": "如果你已经确认这部内容符合需求,可继续前往播放页,按{play_line}选择合适线路。", + "detail_body_tail": "页面保留年份、地区、语言、演员、导演和备注等关键信息,适合做资料核对与继续下钻。", + "detail_faq": "Q:这里能直接看吗?A:详情页主要用于查看资料与进入播放页。Q:信息不全怎么办?A:可优先参考年份、地区、别名和备注,再到播放页确认线路。Q:如何快速找到想看的版本?A:结合{video_alias}、{actor_names}或{lang_name}继续筛选。", + "guide_cards": [ + { + "title": "先核对资料", + "text": "查看年份、地区、语言和备注,减少误选。" + }, + { + "title": "再进播放页", + "text": "确认标题后,继续到对应线路查看。" + }, + { + "title": "用别名继续找", + "text": "如果主标题不熟悉,可试试{video_alias}。" + } + ], + "topic_hint": "日韩欧美中文字幕在线视频", + "provider": "openai" +} diff --git a/code/data/seo_copy_published/zbsv3-com/home/index.json b/code/data/seo_copy_published/zbsv3-com/home/index.json new file mode 100644 index 0000000..c14cd38 --- /dev/null +++ b/code/data/seo_copy_published/zbsv3-com/home/index.json @@ -0,0 +1,21 @@ +{ + "title": "泽博影视 - 欧美日韩中文字幕超清在线观看|亚洲短剧电影电视剧动漫免费看", + "keywords": "泽博影视,zbsv3.com,亚洲视频在线观看免费,日韩欧美中文字幕在线视频,欧美在线综合中文字幕超清在线观看,欧美中文字幕,欧美日韩中文视频,日韩国产一区二区,超清在线观看,免费观看", + "description": "泽博影视提供亚洲视频在线观看免费高清短剧、欧美中文字幕电影、日韩欧美中文字幕在线视频电视剧、日韩国产一区二区动漫等资源,支持免费在线观看与高清播放,每日更新热播剧集,满足多元观影需求。", + "intro_text": "泽博影视聚合亚洲、欧美、日韩等热门影视资源,主打中文字幕与超清在线观看。你可以直接按分类浏览,也可以搜索想看的片名、演员或类型,快速找到详情页和播放页。", + "intro_meta": "先看分类,再进详情,最后选择播放线路,找片更省时间。", + "guide_cards": [ + { + "title": "先从热门分类看起", + "text": "想追剧、找电影或看动漫,先进入对应分类,效率更高。" + }, + { + "title": "支持搜索直达", + "text": "输入片名、别名或演员名,直接查看相关结果与详情页。" + }, + { + "title": "进入详情再播放", + "text": "先确认年份、地区和备注,再选择合适的播放线路。" + } + ] +} diff --git a/code/data/seo_copy_published/zbsv3-com/play/default.json b/code/data/seo_copy_published/zbsv3-com/play/default.json new file mode 100644 index 0000000..7cb2f05 --- /dev/null +++ b/code/data/seo_copy_published/zbsv3-com/play/default.json @@ -0,0 +1,24 @@ +{ + "title_template": "{video_name}{episode_name}在线播放_{play_line}_{site_name}", + "keywords_template": "{video_name},{episode_name},{play_line},在线播放,在线观看,{area_name},{lang_name},{site_name}", + "description_template": "{site_name}为你提供{video_name}{episode_name}的在线播放入口,当前可先确认{year}、{area_name}、{lang_name}、{actor_names}、{director_names}和{remarks}等资料,再根据{play_line}选择播放线路返回详情页继续核对。", + "play_intro": "当前页面是{video_name}{episode_name}的播放页,可先看基础资料,再按线路选择合适播放方式。", + "play_meta_note": "建议先确认详情页信息与当前播放线路,再开始观看。", + "play_body_lead": "若你已从详情页进入这里,可直接按{play_line}选择线路播放;如需比对版本,也可以返回详情页查看{video_alias}、{area_name}和{lang_name}等信息。", + "play_body_next": "播放前建议再次确认片名、集数和备注,必要时返回详情页核对资料后再继续。", + "guide_cards": [ + { + "title": "先看线路再播放", + "text": "优先选择更稳定、更匹配的播放线路。" + }, + { + "title": "必要时返回详情页", + "text": "核对年份、地区、语言和别名后再继续。" + }, + { + "title": "集数信息要确认", + "text": "观看剧集时,先确认{episode_name}是否正确。" + } + ], + "provider": "openai" +} diff --git a/code/data/seo_copy_published/zbsv3-com/search/landing.json b/code/data/seo_copy_published/zbsv3-com/search/landing.json new file mode 100644 index 0000000..099bcf5 --- /dev/null +++ b/code/data/seo_copy_published/zbsv3-com/search/landing.json @@ -0,0 +1,23 @@ +{ + "title": "{keyword} 搜索结果 - 泽博影视站内搜索", + "keywords": "{keyword},搜索结果,站内搜索,相关结果,泽博影视", + "description": "泽博影视站内搜索结果页,围绕{keyword}先展示相关资源,再继续筛选到详情页和播放页查看年份、地区、别名、演员或备注等信息。适合先搜索、再比对、再进入深页,帮助快速找到目标内容。", + "intro_text": "这里是{keyword}的搜索结果页,你可以先浏览相关条目,再根据分类、年份、地区或备注继续筛选,找到目标后进入详情页或播放页。", + "search_landing": "当前搜索页更适合先看“{keyword}”的首屏命中,再决定是否补充人物、年份或题材词。", + "intro_meta": "站内搜索结果优先承接关键词意图,便于继续下钻到详情页与播放页。", + "faq_content": "搜索不到目标内容时,可以把“{keyword}”和人物、年份、剧情词组合搜索,通常更容易缩小到目标条目。", + "guide_cards": [ + { + "title": "换词再搜一次", + "text": "试试片名别名、演员名或类型词。" + }, + { + "title": "先看相关结果", + "text": "优先浏览匹配度高的条目,再继续筛选。" + }, + { + "title": "进入详情再确认", + "text": "查看年份、地区、备注后再去播放页。" + } + ] +} diff --git a/code/data/seo_optimization_versions/README.md b/code/data/seo_optimization_versions/README.md new file mode 100644 index 0000000..fca082d --- /dev/null +++ b/code/data/seo_optimization_versions/README.md @@ -0,0 +1,64 @@ +# SEO Optimization Versions + +这个目录专门记录每一轮 SEO 文案优化版本,方便后续按版本回顾: + +- 当时覆盖了哪些域名 +- 使用了什么 provider / model +- 生成结果如何 +- 已发布稿目录大小与文件数 +- 后续观察到了什么收录/出词变化 + +建议每次批量优化都新增一个版本目录,并同步更新: + +- `current.json` +- `versions.json` + +单个版本目录建议至少包含: + +- `summary.json` +- `domains.json` +- `metrics.json` +- `notes.md` +- `day1.md` +- `day3.md` +- `day7.md` + +推荐再补一个: + +- `overview.md` + +## 推荐复盘节奏 + +### Day 1 +- 看 `site:` 是否开始放量 +- 看分类入口页 / 分类列表页 / 搜索页是否开始被收录 +- 看 Node 回推的 `baidu_site / aizhan_keyword` 是否开始变活跃 + +### Day 3 +- 看是否开始出长尾词 +- 看哪些域名先起词 +- 看聚合页是否比详情页更早拿到收录或词量 + +### Day 7 +- 对比上一版本: + - 收录数 + - 出词数 + - 搜索页承接表现 + - 分类页承接表现 +- 决定: + - 继续强化 + - 局部重优化 + - 回滚部分表达 + +## 建议记录项 + +- 收录域名数 +- 首页收录数 +- 分类页收录数 +- 搜索页收录数 +- 详情页收录数 +- 已起词域名数 +- 长尾词数量 +- 点击/展现变化 +- Node 反馈热词数量 +- 需要二次 AI 的域名 diff --git a/code/data/seo_optimization_versions/current.json b/code/data/seo_optimization_versions/current.json new file mode 100644 index 0000000..6e6f55e --- /dev/null +++ b/code/data/seo_optimization_versions/current.json @@ -0,0 +1,6 @@ +{ + "current_version": "v20260413-openai-batch-26", + "updated_at": "2026-04-13T02:30:00+08:00", + "note": "当前版本为 26 个域名的 OpenAI SEO 文案批量优化版本,内页聚焦 category_index / category_list / search 的承接与收录能力。" +} + diff --git a/code/data/seo_optimization_versions/overview.md b/code/data/seo_optimization_versions/overview.md new file mode 100644 index 0000000..5f25541 --- /dev/null +++ b/code/data/seo_optimization_versions/overview.md @@ -0,0 +1,22 @@ +# SEO 优化版本总览 + +## 当前激活版本 +- `v20260413-openai-batch-26` + +## 版本节奏 +1. 批量优化完成后,先记录: + - 域名范围 + - provider / model + - 文件数 / 目录大小 + - 批量结果 +2. 第 1 天补 `day1.md` +3. 第 3 天补 `day3.md` +4. 第 7 天补 `day7.md` +5. 视结果决定是否开下一个版本 + +## 当前版本观察重点 +- 聚合页是否更快收录 +- 分类页 / 搜索页是否更快出长尾 +- 哪些域名最先起词 +- Node 反哺热词是否开始更明显影响站内文案承接 + diff --git a/code/data/seo_optimization_versions/v20260413-openai-batch-26/day1.baseline.json b/code/data/seo_optimization_versions/v20260413-openai-batch-26/day1.baseline.json new file mode 100644 index 0000000..183bf43 --- /dev/null +++ b/code/data/seo_optimization_versions/v20260413-openai-batch-26/day1.baseline.json @@ -0,0 +1,249 @@ +{ + "version": "v20260413-openai-batch-26", + "generated_at": "2026-04-14T00:34:51+08:00", + "observation_label": "Day1", + "host_count": 26, + "indexed_like_count": 0, + "keyword_ready_count": 0, + "traffic_ready_count": 0, + "source": { + "keyword_feedback": "/www/wwwroot/diff-maccms/SEONexus/code/data/seo_resource/keyword_feedback/hot_keywords.latest.json", + "domains": "/www/wwwroot/diff-maccms/SEONexus/code/data/seo_optimization_versions/v20260413-openai-batch-26/domains.json" + }, + "rows": [ + { + "host": "chuanjiafeng.net", + "site_name": "叙学影视网", + "indexed_like": false, + "keyword_ready": false, + "traffic_ready": false, + "keyword_count": 0, + "latest_metric_date": "2026-04-13" + }, + { + "host": "cnzhenbang.com", + "site_name": "菜鸟臻榜", + "indexed_like": false, + "keyword_ready": false, + "traffic_ready": false, + "keyword_count": 0, + "latest_metric_date": "2026-04-13" + }, + { + "host": "hyjssb.com", + "site_name": "环游记", + "indexed_like": false, + "keyword_ready": false, + "traffic_ready": false, + "keyword_count": 0, + "latest_metric_date": "2026-04-13" + }, + { + "host": "sdxtwnc.com", + "site_name": "鑫拓影视", + "indexed_like": false, + "keyword_ready": false, + "traffic_ready": false, + "keyword_count": 0, + "latest_metric_date": "2026-04-13" + }, + { + "host": "hbczccq.com", + "site_name": "飘雪影院", + "indexed_like": false, + "keyword_ready": false, + "traffic_ready": false, + "keyword_count": 0, + "latest_metric_date": "2026-04-13" + }, + { + "host": "lgyz.net", + "site_name": "龙港亚洲影院", + "indexed_like": false, + "keyword_ready": false, + "traffic_ready": false, + "keyword_count": 0, + "latest_metric_date": "2026-04-13" + }, + { + "host": "pcslcl.com", + "site_name": "磁力影视", + "indexed_like": false, + "keyword_ready": false, + "traffic_ready": false, + "keyword_count": 0, + "latest_metric_date": "2026-04-13" + }, + { + "host": "vikau.com", + "site_name": "佰务影视", + "indexed_like": false, + "keyword_ready": false, + "traffic_ready": false, + "keyword_count": 0, + "latest_metric_date": "2026-04-13" + }, + { + "host": "codohealth.com", + "site_name": "东和影视", + "indexed_like": false, + "keyword_ready": false, + "traffic_ready": false, + "keyword_count": 0, + "latest_metric_date": "2026-04-13" + }, + { + "host": "nblssy.com", + "site_name": "青苹果影院", + "indexed_like": false, + "keyword_ready": false, + "traffic_ready": false, + "keyword_count": 0, + "latest_metric_date": "2026-04-13" + }, + { + "host": "caosheninan.com", + "site_name": "秉象影院", + "indexed_like": false, + "keyword_ready": false, + "traffic_ready": false, + "keyword_count": 0, + "latest_metric_date": "2026-04-13" + }, + { + "host": "visitsumenep.com", + "site_name": "短剧窝", + "indexed_like": false, + "keyword_ready": false, + "traffic_ready": false, + "keyword_count": 0, + "latest_metric_date": "2026-04-13" + }, + { + "host": "oronorent.com", + "site_name": "奥诺影视", + "indexed_like": false, + "keyword_ready": false, + "traffic_ready": false, + "keyword_count": 0, + "latest_metric_date": "2026-04-13" + }, + { + "host": "zbsv3.com", + "site_name": "泽博影视", + "indexed_like": false, + "keyword_ready": false, + "traffic_ready": false, + "keyword_count": 0, + "latest_metric_date": "2026-04-13" + }, + { + "host": "ukoys.com", + "site_name": "优客影视", + "indexed_like": false, + "keyword_ready": false, + "traffic_ready": false, + "keyword_count": 0, + "latest_metric_date": "2026-04-13" + }, + { + "host": "lcdchq.com", + "site_name": "欧美影院", + "indexed_like": false, + "keyword_ready": false, + "traffic_ready": false, + "keyword_count": 0, + "latest_metric_date": "2026-04-13" + }, + { + "host": "jxxgygy.com", + "site_name": "广源影院", + "indexed_like": false, + "keyword_ready": false, + "traffic_ready": false, + "keyword_count": 0, + "latest_metric_date": "2026-04-13" + }, + { + "host": "leici1940.com", + "site_name": "仪电影院", + "indexed_like": false, + "keyword_ready": false, + "traffic_ready": false, + "keyword_count": 0, + "latest_metric_date": "2026-04-13" + }, + { + "host": "jingxifa.com", + "site_name": "京淅发影院", + "indexed_like": false, + "keyword_ready": false, + "traffic_ready": false, + "keyword_count": 0, + "latest_metric_date": "2026-04-13" + }, + { + "host": "sdxhtgcl.com", + "site_name": "时代影院", + "indexed_like": false, + "keyword_ready": false, + "traffic_ready": false, + "keyword_count": 0, + "latest_metric_date": "2026-04-13" + }, + { + "host": "jpjdxs.com", + "site_name": "天堂影院", + "indexed_like": false, + "keyword_ready": false, + "traffic_ready": false, + "keyword_count": 0, + "latest_metric_date": "2026-04-13" + }, + { + "host": "lsrxs.com", + "site_name": "91影院", + "indexed_like": false, + "keyword_ready": false, + "traffic_ready": false, + "keyword_count": 0, + "latest_metric_date": "2026-04-13" + }, + { + "host": "gxhongzhuang.com", + "site_name": "宏壮影院", + "indexed_like": false, + "keyword_ready": false, + "traffic_ready": false, + "keyword_count": 0, + "latest_metric_date": "2026-04-13" + }, + { + "host": "glae.cc", + "site_name": "格拉尔影院", + "indexed_like": false, + "keyword_ready": false, + "traffic_ready": false, + "keyword_count": 0, + "latest_metric_date": "2026-04-13" + }, + { + "host": "sjzyunyang.com", + "site_name": "云阳影院", + "indexed_like": false, + "keyword_ready": false, + "traffic_ready": false, + "keyword_count": 0, + "latest_metric_date": "2026-04-13" + }, + { + "host": "lmjcg.com", + "site_name": "欧美影院", + "indexed_like": false, + "keyword_ready": false, + "traffic_ready": false, + "keyword_count": 0, + "latest_metric_date": "2026-04-13" + } + ] +} diff --git a/code/data/seo_optimization_versions/v20260413-openai-batch-26/day1.md b/code/data/seo_optimization_versions/v20260413-openai-batch-26/day1.md new file mode 100644 index 0000000..56621ae --- /dev/null +++ b/code/data/seo_optimization_versions/v20260413-openai-batch-26/day1.md @@ -0,0 +1,46 @@ +# Day 1 观察基线 + +## 日期 +- 观察日期:`2026-04-14 00:34:51 +0800` +- 对应版本:`v20260413-openai-batch-26` + +## 收录 +- `site:` 已有结果的域名数:`0 / 26` +- 首页收录数:`0` +- 分类入口页收录数:`0` +- 分类列表页收录数:`0` +- 搜索页收录数:`0` +- 详情页收录数:`0` + +## 出词 +- 已起词域名数:`0 / 26` +- 新增长尾词数:`0` +- 先起词的域名:`暂无` + +## 站外反馈 +- `baidu_site` 活跃域名数:`0 / 26` +- `aizhan_keyword` 活跃域名数:`0 / 26` +- 最近热词 Top:`暂无真实域名热词;当前 only a.com 示例词` + +## 页面承接观察 +- 分类入口页是否先于详情页收录:`尚未出现` +- 分类列表页是否开始承接长尾:`尚未出现` +- 搜索页是否开始承接关键词:`尚未出现` + +## 需要关注的域名 +- 需要二次 AI 的域名:`暂无立即二次 AI 必要` +- 原因:`当前更像新站观察期,数据表明 26 个域名都还未进入首轮收录,不是单域名文案异常` + +## 当前判断 +- 26 个域名的站点链路、探测、Node 快照、资源池反哺已经打通。 +- 截至 Day1,搜索引擎反馈仍处于 `未收录 / 未起词 / 未出流量` 的统一早期阶段。 +- 这更像 `时间窗口未到`,暂时不像单页模板或单域名配置错误。 + +## 建议观察点 +- Day3:优先看 `site:` 是否先出现首页或分类入口页。 +- Day5:重点看 `baidu_site` 是否开始从 `false` 变 `true`。 +- Day7:看是否有个别域名先从分类页或搜索页起长尾词。 + +## 资料 +- 基线 JSON: + - [day1.baseline.json](/www/wwwroot/diff-maccms/SEONexus/code/data/seo_optimization_versions/v20260413-openai-batch-26/day1.baseline.json) diff --git a/code/data/seo_optimization_versions/v20260413-openai-batch-26/day3.md b/code/data/seo_optimization_versions/v20260413-openai-batch-26/day3.md new file mode 100644 index 0000000..01a8de4 --- /dev/null +++ b/code/data/seo_optimization_versions/v20260413-openai-batch-26/day3.md @@ -0,0 +1,33 @@ +# Day 3 观察模板 + +## 日期 +- 观察日期: + +## 收录变化 +- 已收录域名数: +- 相比 Day 1 增量: +- 聚合页收录是否明显增加: + +## 出词变化 +- 已起词域名数: +- 相比 Day 1 增量: +- 长尾词数量: +- 先起词的页面类型: + +## 样板域名 +- 起词最快的域名: +- 收录最快的域名: +- 页面承接最好的域名: + +## 问题域名 +- 收录慢的域名: +- 聚合页不动的域名: +- 需要单独重优化的域名: + +## 判断 +- 当前版本是否值得继续扩大: +- 是否需要开新一轮局部优化: + +## 备注 +- + diff --git a/code/data/seo_optimization_versions/v20260413-openai-batch-26/day7.md b/code/data/seo_optimization_versions/v20260413-openai-batch-26/day7.md new file mode 100644 index 0000000..1267670 --- /dev/null +++ b/code/data/seo_optimization_versions/v20260413-openai-batch-26/day7.md @@ -0,0 +1,32 @@ +# Day 7 观察模板 + +## 日期 +- 观察日期: + +## 一周结果 +- 已收录域名数: +- 已起词域名数: +- 长尾词总量: +- 点击 / 展现变化: + +## 页面类型对比 +- 首页表现: +- 分类入口页表现: +- 分类列表页表现: +- 搜索页表现: +- 详情页表现: + +## 与上一版本对比 +- 收录速度: +- 出词速度: +- 聚合页承接能力: +- 蜘蛛下探深度: + +## 决策建议 +- 继续沿用当前版本: +- 需要局部重优化: +- 需要回滚的表达: +- 下一版本应优先优化的点: + +## 备注 +- diff --git a/code/data/seo_optimization_versions/v20260413-openai-batch-26/domains.json b/code/data/seo_optimization_versions/v20260413-openai-batch-26/domains.json new file mode 100644 index 0000000..6f433d3 --- /dev/null +++ b/code/data/seo_optimization_versions/v20260413-openai-batch-26/domains.json @@ -0,0 +1,32 @@ +{ + "version": "v20260413-openai-batch-26", + "hosts": [ + "chuanjiafeng.net", + "cnzhenbang.com", + "hyjssb.com", + "sdxtwnc.com", + "hbczccq.com", + "lgyz.net", + "pcslcl.com", + "vikau.com", + "codohealth.com", + "nblssy.com", + "caosheninan.com", + "visitsumenep.com", + "oronorent.com", + "zbsv3.com", + "ukoys.com", + "lcdchq.com", + "jxxgygy.com", + "leici1940.com", + "jingxifa.com", + "sdxhtgcl.com", + "jpjdxs.com", + "lsrxs.com", + "gxhongzhuang.com", + "glae.cc", + "sjzyunyang.com", + "lmjcg.com" + ] +} + diff --git a/code/data/seo_optimization_versions/v20260413-openai-batch-26/metrics.json b/code/data/seo_optimization_versions/v20260413-openai-batch-26/metrics.json new file mode 100644 index 0000000..28c3183 --- /dev/null +++ b/code/data/seo_optimization_versions/v20260413-openai-batch-26/metrics.json @@ -0,0 +1,36 @@ +{ + "version": "v20260413-openai-batch-26", + "storage_metrics": { + "target_host_count": 26, + "published_file_count": 156, + "published_byte_count": 213101, + "published_avg_files_per_host": 6, + "published_avg_bytes_per_host": 8196, + "full_published_root_byte_count": 223775, + "seo_resource_root_byte_count": 45750 + }, + "observation_metrics": { + "day_0": { + "indexed_hosts": null, + "site_query_growth": null, + "keyword_growth": null, + "click_growth": null, + "notes": "版本刚发布,等待百度 site / 爱站 / 站外反馈继续累积。" + }, + "day_3": { + "indexed_hosts": null, + "site_query_growth": null, + "keyword_growth": null, + "click_growth": null, + "notes": "重点观察分类入口页、分类列表页、搜索页是否先出长尾。" + }, + "day_7": { + "indexed_hosts": null, + "site_query_growth": null, + "keyword_growth": null, + "click_growth": null, + "notes": "按版本与上一轮对比,决定是否继续抬高 AI 强度或回退某些表达。" + } + } +} + diff --git a/code/data/seo_optimization_versions/v20260413-openai-batch-26/notes.md b/code/data/seo_optimization_versions/v20260413-openai-batch-26/notes.md new file mode 100644 index 0000000..ebf18c0 --- /dev/null +++ b/code/data/seo_optimization_versions/v20260413-openai-batch-26/notes.md @@ -0,0 +1,38 @@ +# v20260413-openai-batch-26 + +## 版本目标 +- 优先优化 `category_index / category_list / search` +- 让内页更像: + - 分类入口页 + - 列表流量承接页 + - 站内搜索结果页 +- 重点服务: + - 尽快收录 + - 尽快出长尾词 + - 引导蜘蛛继续进入详情页与播放页 + +## 本轮结果 +- 初次批量结果:26 域名中 25 个 OpenAI 成功,1 个超时回退 +- 回退域名:`lmjcg.com` +- 后续单独补跑:`lmjcg.com` 已成功走通 OpenAI +- 最终状态:26 个域名全部完成正式 OpenAI 稿发布 + +## 关键优化点 +- 聚合页标题不再像普通栏目名,改为更强的搜索承接口吻 +- `category_list/default` 改为占位符安全版本,避免串类目 +- 搜索页 description 和 intro 强调: + - 先浏览结果 + - 再筛选 + - 再进入详情页/播放页 + +## 后续观察建议 +1. `site:` 收录量变化 +2. 分类页 / 搜索页是否先出长尾 +3. `baidu_site / aizhan_keyword` 是否持续变活跃 +4. 哪些域名最先起词,反过来作为下一个版本的样板站 + +## 结果来源 +- 批量结果文件: + - `/tmp/batch_optimize_1007_openai_rerun_result.json` +- 单独补跑: + - `lmjcg.com` diff --git a/code/data/seo_optimization_versions/v20260413-openai-batch-26/openai_batch_result.json b/code/data/seo_optimization_versions/v20260413-openai-batch-26/openai_batch_result.json new file mode 100644 index 0000000..f05ea01 --- /dev/null +++ b/code/data/seo_optimization_versions/v20260413-openai-batch-26/openai_batch_result.json @@ -0,0 +1,218 @@ +{ + "generated_at": "2026-04-13T02:19:39+08:00", + "provider": "openai", + "total": 26, + "success": 25, + "fallback": 1, + "error": 0, + "results": [ + { + "host": "chuanjiafeng.net", + "status": "success", + "provider_effective": "openai", + "ai_error": "", + "written_pages": 6, + "message": "已生成并发布首页/分类/搜索/详情/播放页文案。" + }, + { + "host": "cnzhenbang.com", + "status": "success", + "provider_effective": "openai", + "ai_error": "", + "written_pages": 6, + "message": "已生成并发布首页/分类/搜索/详情/播放页文案。" + }, + { + "host": "hyjssb.com", + "status": "success", + "provider_effective": "openai", + "ai_error": "", + "written_pages": 6, + "message": "已生成并发布首页/分类/搜索/详情/播放页文案。" + }, + { + "host": "sdxtwnc.com", + "status": "success", + "provider_effective": "openai", + "ai_error": "", + "written_pages": 6, + "message": "已生成并发布首页/分类/搜索/详情/播放页文案。" + }, + { + "host": "hbczccq.com", + "status": "success", + "provider_effective": "openai", + "ai_error": "", + "written_pages": 6, + "message": "已生成并发布首页/分类/搜索/详情/播放页文案。" + }, + { + "host": "lgyz.net", + "status": "success", + "provider_effective": "openai", + "ai_error": "", + "written_pages": 6, + "message": "已生成并发布首页/分类/搜索/详情/播放页文案。" + }, + { + "host": "pcslcl.com", + "status": "success", + "provider_effective": "openai", + "ai_error": "", + "written_pages": 6, + "message": "已生成并发布首页/分类/搜索/详情/播放页文案。" + }, + { + "host": "vikau.com", + "status": "success", + "provider_effective": "openai", + "ai_error": "", + "written_pages": 6, + "message": "已生成并发布首页/分类/搜索/详情/播放页文案。" + }, + { + "host": "codohealth.com", + "status": "success", + "provider_effective": "openai", + "ai_error": "", + "written_pages": 6, + "message": "已生成并发布首页/分类/搜索/详情/播放页文案。" + }, + { + "host": "nblssy.com", + "status": "success", + "provider_effective": "openai", + "ai_error": "", + "written_pages": 6, + "message": "已生成并发布首页/分类/搜索/详情/播放页文案。" + }, + { + "host": "caosheninan.com", + "status": "success", + "provider_effective": "openai", + "ai_error": "", + "written_pages": 6, + "message": "已生成并发布首页/分类/搜索/详情/播放页文案。" + }, + { + "host": "visitsumenep.com", + "status": "success", + "provider_effective": "openai", + "ai_error": "", + "written_pages": 6, + "message": "已生成并发布首页/分类/搜索/详情/播放页文案。" + }, + { + "host": "oronorent.com", + "status": "success", + "provider_effective": "openai", + "ai_error": "", + "written_pages": 6, + "message": "已生成并发布首页/分类/搜索/详情/播放页文案。" + }, + { + "host": "zbsv3.com", + "status": "success", + "provider_effective": "openai", + "ai_error": "", + "written_pages": 6, + "message": "已生成并发布首页/分类/搜索/详情/播放页文案。" + }, + { + "host": "ukoys.com", + "status": "success", + "provider_effective": "openai", + "ai_error": "", + "written_pages": 6, + "message": "已生成并发布首页/分类/搜索/详情/播放页文案。" + }, + { + "host": "lcdchq.com", + "status": "success", + "provider_effective": "openai", + "ai_error": "", + "written_pages": 6, + "message": "已生成并发布首页/分类/搜索/详情/播放页文案。" + }, + { + "host": "jxxgygy.com", + "status": "success", + "provider_effective": "openai", + "ai_error": "", + "written_pages": 6, + "message": "已生成并发布首页/分类/搜索/详情/播放页文案。" + }, + { + "host": "leici1940.com", + "status": "success", + "provider_effective": "openai", + "ai_error": "", + "written_pages": 6, + "message": "已生成并发布首页/分类/搜索/详情/播放页文案。" + }, + { + "host": "jingxifa.com", + "status": "success", + "provider_effective": "openai", + "ai_error": "", + "written_pages": 6, + "message": "已生成并发布首页/分类/搜索/详情/播放页文案。" + }, + { + "host": "sdxhtgcl.com", + "status": "success", + "provider_effective": "openai", + "ai_error": "", + "written_pages": 6, + "message": "已生成并发布首页/分类/搜索/详情/播放页文案。" + }, + { + "host": "jpjdxs.com", + "status": "success", + "provider_effective": "openai", + "ai_error": "", + "written_pages": 6, + "message": "已生成并发布首页/分类/搜索/详情/播放页文案。" + }, + { + "host": "lsrxs.com", + "status": "success", + "provider_effective": "openai", + "ai_error": "", + "written_pages": 6, + "message": "已生成并发布首页/分类/搜索/详情/播放页文案。" + }, + { + "host": "gxhongzhuang.com", + "status": "success", + "provider_effective": "openai", + "ai_error": "", + "written_pages": 6, + "message": "已生成并发布首页/分类/搜索/详情/播放页文案。" + }, + { + "host": "glae.cc", + "status": "success", + "provider_effective": "openai", + "ai_error": "", + "written_pages": 6, + "message": "已生成并发布首页/分类/搜索/详情/播放页文案。" + }, + { + "host": "sjzyunyang.com", + "status": "success", + "provider_effective": "openai", + "ai_error": "", + "written_pages": 6, + "message": "已生成并发布首页/分类/搜索/详情/播放页文案。" + }, + { + "host": "lmjcg.com", + "status": "fallback", + "provider_effective": "openai", + "ai_error": "OpenAI 请求失败:Operation timed out after 45001 milliseconds with 0 bytes received", + "written_pages": 6, + "message": "AI 请求失败,已按本地增强策略生成并发布文案。" + } + ] +} diff --git a/code/data/seo_optimization_versions/v20260413-openai-batch-26/openai_deep_batch_26_rerun_20260414.json b/code/data/seo_optimization_versions/v20260413-openai-batch-26/openai_deep_batch_26_rerun_20260414.json new file mode 100644 index 0000000..53876f5 --- /dev/null +++ b/code/data/seo_optimization_versions/v20260413-openai-batch-26/openai_deep_batch_26_rerun_20260414.json @@ -0,0 +1,218 @@ +{ + "generated_at": "2026-04-14T15:47:13+08:00", + "provider": "openai", + "total": 26, + "success": 26, + "fallback": 0, + "error": 0, + "results": [ + { + "host": "chuanjiafeng.net", + "status": "success", + "provider_effective": "openai", + "ai_error": "", + "written_pages": 6, + "message": "已生成并发布首页\/分类\/搜索\/详情\/播放页文案。" + }, + { + "host": "cnzhenbang.com", + "status": "success", + "provider_effective": "openai", + "ai_error": "", + "written_pages": 6, + "message": "已生成并发布首页\/分类\/搜索\/详情\/播放页文案。" + }, + { + "host": "hyjssb.com", + "status": "success", + "provider_effective": "openai", + "ai_error": "", + "written_pages": 6, + "message": "已生成并发布首页\/分类\/搜索\/详情\/播放页文案。" + }, + { + "host": "sdxtwnc.com", + "status": "success", + "provider_effective": "openai", + "ai_error": "", + "written_pages": 6, + "message": "已生成并发布首页\/分类\/搜索\/详情\/播放页文案。" + }, + { + "host": "hbczccq.com", + "status": "success", + "provider_effective": "openai", + "ai_error": "", + "written_pages": 6, + "message": "已生成并发布首页\/分类\/搜索\/详情\/播放页文案。" + }, + { + "host": "lgyz.net", + "status": "success", + "provider_effective": "openai", + "ai_error": "", + "written_pages": 6, + "message": "已生成并发布首页\/分类\/搜索\/详情\/播放页文案。" + }, + { + "host": "pcslcl.com", + "status": "success", + "provider_effective": "openai", + "ai_error": "", + "written_pages": 6, + "message": "已生成并发布首页\/分类\/搜索\/详情\/播放页文案。" + }, + { + "host": "vikau.com", + "status": "success", + "provider_effective": "openai", + "ai_error": "", + "written_pages": 6, + "message": "已生成并发布首页\/分类\/搜索\/详情\/播放页文案。" + }, + { + "host": "codohealth.com", + "status": "success", + "provider_effective": "openai", + "ai_error": "", + "written_pages": 6, + "message": "已生成并发布首页\/分类\/搜索\/详情\/播放页文案。" + }, + { + "host": "nblssy.com", + "status": "success", + "provider_effective": "openai", + "ai_error": "", + "written_pages": 6, + "message": "已生成并发布首页\/分类\/搜索\/详情\/播放页文案。" + }, + { + "host": "caosheninan.com", + "status": "success", + "provider_effective": "openai", + "ai_error": "", + "written_pages": 6, + "message": "已生成并发布首页\/分类\/搜索\/详情\/播放页文案。" + }, + { + "host": "visitsumenep.com", + "status": "success", + "provider_effective": "openai", + "ai_error": "", + "written_pages": 6, + "message": "已生成并发布首页\/分类\/搜索\/详情\/播放页文案。" + }, + { + "host": "oronorent.com", + "status": "success", + "provider_effective": "openai", + "ai_error": "", + "written_pages": 6, + "message": "已生成并发布首页\/分类\/搜索\/详情\/播放页文案。" + }, + { + "host": "zbsv3.com", + "status": "success", + "provider_effective": "openai", + "ai_error": "", + "written_pages": 6, + "message": "已生成并发布首页\/分类\/搜索\/详情\/播放页文案。" + }, + { + "host": "ukoys.com", + "status": "success", + "provider_effective": "openai", + "ai_error": "", + "written_pages": 6, + "message": "已生成并发布首页\/分类\/搜索\/详情\/播放页文案。" + }, + { + "host": "lcdchq.com", + "status": "success", + "provider_effective": "openai", + "ai_error": "", + "written_pages": 6, + "message": "已生成并发布首页\/分类\/搜索\/详情\/播放页文案。" + }, + { + "host": "jxxgygy.com", + "status": "success", + "provider_effective": "openai", + "ai_error": "", + "written_pages": 6, + "message": "已生成并发布首页\/分类\/搜索\/详情\/播放页文案。" + }, + { + "host": "leici1940.com", + "status": "success", + "provider_effective": "openai", + "ai_error": "", + "written_pages": 6, + "message": "已生成并发布首页\/分类\/搜索\/详情\/播放页文案。" + }, + { + "host": "jingxifa.com", + "status": "success", + "provider_effective": "openai", + "ai_error": "", + "written_pages": 6, + "message": "已生成并发布首页\/分类\/搜索\/详情\/播放页文案。" + }, + { + "host": "sdxhtgcl.com", + "status": "success", + "provider_effective": "openai", + "ai_error": "", + "written_pages": 6, + "message": "已生成并发布首页\/分类\/搜索\/详情\/播放页文案。" + }, + { + "host": "jpjdxs.com", + "status": "success", + "provider_effective": "openai", + "ai_error": "", + "written_pages": 6, + "message": "已生成并发布首页\/分类\/搜索\/详情\/播放页文案。" + }, + { + "host": "lsrxs.com", + "status": "success", + "provider_effective": "openai", + "ai_error": "", + "written_pages": 6, + "message": "已生成并发布首页\/分类\/搜索\/详情\/播放页文案。" + }, + { + "host": "gxhongzhuang.com", + "status": "success", + "provider_effective": "openai", + "ai_error": "", + "written_pages": 6, + "message": "已生成并发布首页\/分类\/搜索\/详情\/播放页文案。" + }, + { + "host": "glae.cc", + "status": "success", + "provider_effective": "openai", + "ai_error": "", + "written_pages": 6, + "message": "已生成并发布首页\/分类\/搜索\/详情\/播放页文案。" + }, + { + "host": "sjzyunyang.com", + "status": "success", + "provider_effective": "openai", + "ai_error": "", + "written_pages": 6, + "message": "已生成并发布首页\/分类\/搜索\/详情\/播放页文案。" + }, + { + "host": "lmjcg.com", + "status": "success", + "provider_effective": "openai", + "ai_error": "", + "written_pages": 6, + "message": "已生成并发布首页\/分类\/搜索\/详情\/播放页文案。" + } + ] +} \ No newline at end of file diff --git a/code/data/seo_optimization_versions/v20260413-openai-batch-26/summary.json b/code/data/seo_optimization_versions/v20260413-openai-batch-26/summary.json new file mode 100644 index 0000000..8885999 --- /dev/null +++ b/code/data/seo_optimization_versions/v20260413-openai-batch-26/summary.json @@ -0,0 +1,60 @@ +{ + "version": "v20260413-openai-batch-26", + "created_at": "2026-04-13T02:30:00+08:00", + "provider": "openai", + "provider_config": { + "provider": "openai", + "model": "gpt-5.4-mini", + "base_url": "https://api.openai.com/v1", + "timeout_ms": 45000 + }, + "scope": { + "template_id": 1007, + "host_count": 26, + "pages_per_host": 6, + "scenes": [ + "home/index", + "category_index/index", + "category_list/default", + "search/landing", + "detail/default", + "play/default" + ] + }, + "run_summary": { + "initial_batch_generated_at": "2026-04-13T02:19:39+08:00", + "initial_batch_total": 26, + "initial_batch_success": 25, + "initial_batch_fallback": 1, + "initial_batch_error": 0, + "fallback_host": "lmjcg.com", + "fallback_reason": "OpenAI 请求超时,45s 内未返回", + "follow_up_retry_host": "lmjcg.com", + "follow_up_retry_final_status": "success", + "final_effective_success": 26, + "final_effective_fallback": 0, + "final_effective_error": 0 + }, + "published_artifacts": { + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/data/seo_copy_published", + "target_host_file_count": 156, + "target_host_byte_count": 213101, + "full_published_root_byte_count": 223775, + "seo_resource_root_byte_count": 45750 + }, + "focus": { + "primary_goal": "尽快收录、尽快让分类页/搜索页承接长尾词,并引导蜘蛛继续进入详情页与播放页。", + "main_optimized_pages": [ + "category_index", + "category_list", + "search" + ], + "main_changes": [ + "强化聚合页 title 的搜索意图与入口感", + "强化 description 的继续浏览与深页引导", + "将内页导语从普通功能页口吻,调整为分类承接页/列表流量页/搜索结果页口吻", + "修正 category_list 默认稿的占位符安全性,避免串类目" + ] + } +} + diff --git a/code/data/seo_optimization_versions/versions.json b/code/data/seo_optimization_versions/versions.json new file mode 100644 index 0000000..06f4044 --- /dev/null +++ b/code/data/seo_optimization_versions/versions.json @@ -0,0 +1,14 @@ +[ + { + "version": "v20260413-openai-batch-26", + "created_at": "2026-04-13T02:30:00+08:00", + "status": "active", + "provider": "openai", + "model": "gpt-5.4-mini", + "host_count": 26, + "published_file_count": 156, + "published_bytes": 213101, + "note": "首个正式批量 OpenAI SEO 文案版本,完成 26 域名铺稿,并对 lmjcg.com 做单独补跑收口。" + } +] + diff --git a/code/public/_admin_templates/domain-import-reruns/20260412/141621_failed_queue_dc379f/hosts.txt b/code/public/_admin_templates/domain-import-reruns/20260412/141621_failed_queue_dc379f/hosts.txt new file mode 100644 index 0000000..e65dda2 --- /dev/null +++ b/code/public/_admin_templates/domain-import-reruns/20260412/141621_failed_queue_dc379f/hosts.txt @@ -0,0 +1 @@ +cnzhenbang.com diff --git a/code/public/_admin_templates/domain-import-reruns/20260412/141621_failed_queue_dc379f/import-rerun.summary.html b/code/public/_admin_templates/domain-import-reruns/20260412/141621_failed_queue_dc379f/import-rerun.summary.html new file mode 100644 index 0000000..9d3f725 --- /dev/null +++ b/code/public/_admin_templates/domain-import-reruns/20260412/141621_failed_queue_dc379f/import-rerun.summary.html @@ -0,0 +1 @@ +Domain Import Rerun Summary

Domain Import Rerun Summary

generated_at: 2026-04-12T14:16:21+08:00

processed: 1 / passed: 1 / failed: 0

hoststatusfailed_stagemessage
cnzhenbang.compassedTrajectory probe passed.
\ No newline at end of file diff --git a/code/public/_admin_templates/domain-import-reruns/20260412/141621_failed_queue_dc379f/import-rerun.summary.json b/code/public/_admin_templates/domain-import-reruns/20260412/141621_failed_queue_dc379f/import-rerun.summary.json new file mode 100644 index 0000000..90e49a9 --- /dev/null +++ b/code/public/_admin_templates/domain-import-reruns/20260412/141621_failed_queue_dc379f/import-rerun.summary.json @@ -0,0 +1,91 @@ +{ + "processed_count": 1, + "passed_count": 1, + "failed_count": 0, + "items": [ + { + "host": "cnzhenbang.com", + "status": "passed", + "message": "Trajectory probe passed.", + "sample": { + "host": "cnzhenbang.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "国产在线观看免费全集电视" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + }, + "checks": { + "home": { + "label": "首页", + "passed": true, + "url": "https://cnzhenbang.com/", + "path": "/", + "status": 200, + "detail": "ok" + }, + "search": { + "label": "搜索", + "passed": true, + "url": "https://cnzhenbang.com/query?keyword=%E5%9B%BD%E4%BA%A7%E5%9C%A8%E7%BA%BF%E8%A7%82%E7%9C%8B%E5%85%8D%E8%B4%B9%E5%85%A8%E9%9B%86%E7%94%B5%E8%A7%86", + "path": "/query?keyword=%E5%9B%BD%E4%BA%A7%E5%9C%A8%E7%BA%BF%E8%A7%82%E7%9C%8B%E5%85%8D%E8%B4%B9%E5%85%A8%E9%9B%86%E7%94%B5%E8%A7%86", + "status": 200, + "detail": "ok" + }, + "detail": { + "label": "详情", + "passed": true, + "url": "https://cnzhenbang.com/detail/xiang-feng-bu-shi-jiu-shi-ren-154229", + "path": "/detail/xiang-feng-bu-shi-jiu-shi-ren-154229", + "status": 200, + "detail": "ok" + }, + "play": { + "label": "播放", + "passed": true, + "url": "https://cnzhenbang.com/play/xiang-feng-bu-shi-jiu-shi-ren-154229-douban-1", + "path": "/play/xiang-feng-bu-shi-jiu-shi-ren-154229-douban-1", + "status": 200, + "detail": "ok" + } + }, + "failed_stage": "", + "failed_stages": [], + "all_passed": true, + "probed_at": "2026-04-12T14:16:21+08:00" + } + ], + "queue_count": 1, + "generated_at": "2026-04-12T14:16:21+08:00", + "meta": { + "queue_count": 1, + "selected_host": "cnzhenbang.com", + "run_root": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-import-runs" + }, + "summary_json_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-import-reruns/20260412/141621_failed_queue_dc379f/import-rerun.summary.json", + "summary_html_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-import-reruns/20260412/141621_failed_queue_dc379f/import-rerun.summary.html" +} diff --git a/code/public/_admin_templates/domain-import-reruns/20260412/152933_failed_queue_fe998e/hosts.txt b/code/public/_admin_templates/domain-import-reruns/20260412/152933_failed_queue_fe998e/hosts.txt new file mode 100644 index 0000000..e7999cd --- /dev/null +++ b/code/public/_admin_templates/domain-import-reruns/20260412/152933_failed_queue_fe998e/hosts.txt @@ -0,0 +1,24 @@ +hyjssb.com +sdxtwnc.com +hbczccq.com +lgyz.net +pcslcl.com +vikau.com +codohealth.com +nblssy.com +caosheninan.com +visitsumenep.com +oronorent.com +zbsv3.com +ukoys.com +lcdchq.com +jxxgygy.com +leici1940.com +jingxifa.com +sdxhtgcl.com +jpjdxs.com +lsrxs.com +gxhongzhuang.com +glae.cc +sjzyunyang.com +lmjcg.com diff --git a/code/public/_admin_templates/domain-import-reruns/20260412/152933_failed_queue_fe998e/import-rerun.summary.html b/code/public/_admin_templates/domain-import-reruns/20260412/152933_failed_queue_fe998e/import-rerun.summary.html new file mode 100644 index 0000000..cd914d6 --- /dev/null +++ b/code/public/_admin_templates/domain-import-reruns/20260412/152933_failed_queue_fe998e/import-rerun.summary.html @@ -0,0 +1 @@ +站点导入重跑摘要

站点导入重跑摘要

生成时间:2026-04-12 15:29:33

处理总数:24 / 通过:19 / 失败:5

域名状态失败阶段说明
hyjssb.com通过-页面链路探测通过。
sdxtwnc.com通过-页面链路探测通过。
hbczccq.com失败详情页页面链路探测发现失败阶段。
lgyz.net通过-页面链路探测通过。
pcslcl.com通过-页面链路探测通过。
vikau.com失败详情页页面链路探测发现失败阶段。
codohealth.com通过-页面链路探测通过。
nblssy.com通过-页面链路探测通过。
caosheninan.com通过-页面链路探测通过。
visitsumenep.com通过-页面链路探测通过。
oronorent.com通过-页面链路探测通过。
zbsv3.com通过-页面链路探测通过。
ukoys.com通过-页面链路探测通过。
lcdchq.com通过-页面链路探测通过。
jxxgygy.com通过-页面链路探测通过。
leici1940.com通过-页面链路探测通过。
jingxifa.com失败详情页页面链路探测发现失败阶段。
sdxhtgcl.com通过-页面链路探测通过。
jpjdxs.com通过-页面链路探测通过。
lsrxs.com通过-页面链路探测通过。
gxhongzhuang.com通过-页面链路探测通过。
glae.cc失败详情页页面链路探测发现失败阶段。
sjzyunyang.com通过-页面链路探测通过。
lmjcg.com失败详情页页面链路探测发现失败阶段。
\ No newline at end of file diff --git a/code/public/_admin_templates/domain-import-reruns/20260412/152933_failed_queue_fe998e/import-rerun.summary.json b/code/public/_admin_templates/domain-import-reruns/20260412/152933_failed_queue_fe998e/import-rerun.summary.json new file mode 100644 index 0000000..0df6517 --- /dev/null +++ b/code/public/_admin_templates/domain-import-reruns/20260412/152933_failed_queue_fe998e/import-rerun.summary.json @@ -0,0 +1,1826 @@ +{ + "processed_count": 24, + "passed_count": 19, + "failed_count": 5, + "items": [ + { + "host": "hyjssb.com", + "status": "passed", + "message": "Trajectory probe passed.", + "sample": { + "host": "hyjssb.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "中文在线字幕免费观看电视" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + }, + "checks": { + "home": { + "label": "首页", + "passed": true, + "url": "https://hyjssb.com/", + "path": "/", + "status": 200, + "detail": "ok" + }, + "search": { + "label": "搜索", + "passed": true, + "url": "https://hyjssb.com/get/index?keyword=%E4%B8%AD%E6%96%87%E5%9C%A8%E7%BA%BF%E5%AD%97%E5%B9%95%E5%85%8D%E8%B4%B9%E8%A7%82%E7%9C%8B%E7%94%B5%E8%A7%86", + "path": "/get/index?keyword=%E4%B8%AD%E6%96%87%E5%9C%A8%E7%BA%BF%E5%AD%97%E5%B9%95%E5%85%8D%E8%B4%B9%E8%A7%82%E7%9C%8B%E7%94%B5%E8%A7%86", + "status": 200, + "detail": "ok" + }, + "detail": { + "label": "详情", + "passed": true, + "url": "https://hyjssb.com/movie/xiang-feng-bu-shi-jiu-shi-ren/154229", + "path": "/movie/xiang-feng-bu-shi-jiu-shi-ren/154229", + "status": 200, + "detail": "ok" + }, + "play": { + "label": "播放", + "passed": true, + "url": "https://hyjssb.com/kan/154229-douban-1", + "path": "/kan/154229-douban-1", + "status": 200, + "detail": "ok" + } + }, + "failed_stage": "", + "failed_stages": [], + "all_passed": true, + "probed_at": "2026-04-12T15:21:25+08:00" + }, + { + "host": "sdxtwnc.com", + "status": "passed", + "message": "Trajectory probe passed.", + "sample": { + "host": "sdxtwnc.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "国产欧美日韩久久久久韩剧" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + }, + "checks": { + "home": { + "label": "首页", + "passed": true, + "url": "https://sdxtwnc.com/", + "path": "/", + "status": 200, + "detail": "ok" + }, + "search": { + "label": "搜索", + "passed": true, + "url": "https://sdxtwnc.com/query?keyword=%E5%9B%BD%E4%BA%A7%E6%AC%A7%E7%BE%8E%E6%97%A5%E9%9F%A9%E4%B9%85%E4%B9%85%E4%B9%85%E4%B9%85%E9%9F%A9%E5%89%A7", + "path": "/query?keyword=%E5%9B%BD%E4%BA%A7%E6%AC%A7%E7%BE%8E%E6%97%A5%E9%9F%A9%E4%B9%85%E4%B9%85%E4%B9%85%E4%B9%85%E9%9F%A9%E5%89%A7", + "status": 200, + "detail": "ok" + }, + "detail": { + "label": "详情", + "passed": true, + "url": "https://sdxtwnc.com/detail/xiang-feng-bu-shi-jiu-shi-ren-154229", + "path": "/detail/xiang-feng-bu-shi-jiu-shi-ren-154229", + "status": 200, + "detail": "ok" + }, + "play": { + "label": "播放", + "passed": true, + "url": "https://sdxtwnc.com/play/xiang-feng-bu-shi-jiu-shi-ren-154229-douban-1", + "path": "/play/xiang-feng-bu-shi-jiu-shi-ren-154229-douban-1", + "status": 200, + "detail": "ok" + } + }, + "failed_stage": "", + "failed_stages": [], + "all_passed": true, + "probed_at": "2026-04-12T15:21:48+08:00" + }, + { + "host": "hbczccq.com", + "status": "failed", + "message": "Trajectory probe found failed stages.", + "sample": { + "host": "hbczccq.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "国产精品亚洲综合飘雪日本" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + }, + "checks": { + "home": { + "label": "首页", + "passed": true, + "url": "https://hbczccq.com/", + "path": "/", + "status": 200, + "detail": "ok" + }, + "search": { + "label": "搜索", + "passed": true, + "url": "https://hbczccq.com/find-keywords?keyword=%E5%9B%BD%E4%BA%A7%E7%B2%BE%E5%93%81%E4%BA%9A%E6%B4%B2%E7%BB%BC%E5%90%88%E9%A3%98%E9%9B%AA%E6%97%A5%E6%9C%AC", + "path": "/find-keywords?keyword=%E5%9B%BD%E4%BA%A7%E7%B2%BE%E5%93%81%E4%BA%9A%E6%B4%B2%E7%BB%BC%E5%90%88%E9%A3%98%E9%9B%AA%E6%97%A5%E6%9C%AC", + "status": 200, + "detail": "ok" + }, + "detail": { + "label": "详情", + "passed": false, + "url": "https://hbczccq.com/vod/pinyin-xiang-feng-bu-shi-jiu-shi-ren", + "path": "/vod/pinyin-xiang-feng-bu-shi-jiu-shi-ren", + "status": 404, + "detail": "http_404" + }, + "play": { + "label": "播放", + "passed": true, + "url": "https://hbczccq.com/watch-154229/douban-1", + "path": "/watch-154229/douban-1", + "status": 200, + "detail": "ok" + } + }, + "failed_stage": "detail", + "failed_stages": [ + "detail" + ], + "all_passed": false, + "probed_at": "2026-04-12T15:22:11+08:00" + }, + { + "host": "lgyz.net", + "status": "passed", + "message": "Trajectory probe passed.", + "sample": { + "host": "lgyz.net", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "亚洲精品高清视频在线观看" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + }, + "checks": { + "home": { + "label": "首页", + "passed": true, + "url": "https://lgyz.net/", + "path": "/", + "status": 200, + "detail": "ok" + }, + "search": { + "label": "搜索", + "passed": true, + "url": "https://lgyz.net/get.html?keyword=%E4%BA%9A%E6%B4%B2%E7%B2%BE%E5%93%81%E9%AB%98%E6%B8%85%E8%A7%86%E9%A2%91%E5%9C%A8%E7%BA%BF%E8%A7%82%E7%9C%8B", + "path": "/get.html?keyword=%E4%BA%9A%E6%B4%B2%E7%B2%BE%E5%93%81%E9%AB%98%E6%B8%85%E8%A7%86%E9%A2%91%E5%9C%A8%E7%BA%BF%E8%A7%82%E7%9C%8B", + "status": 200, + "detail": "ok" + }, + "detail": { + "label": "详情", + "passed": true, + "url": "https://lgyz.net/movie/154229-xiang-feng-bu-shi-jiu-shi-ren", + "path": "/movie/154229-xiang-feng-bu-shi-jiu-shi-ren", + "status": 200, + "detail": "ok" + }, + "play": { + "label": "播放", + "passed": true, + "url": "https://lgyz.net/kan/xiang-feng-bu-shi-jiu-shi-ren-154229/douban-1", + "path": "/kan/xiang-feng-bu-shi-jiu-shi-ren-154229/douban-1", + "status": 200, + "detail": "ok" + } + }, + "failed_stage": "", + "failed_stages": [], + "all_passed": true, + "probed_at": "2026-04-12T15:22:35+08:00" + }, + { + "host": "pcslcl.com", + "status": "passed", + "message": "Trajectory probe passed.", + "sample": { + "host": "pcslcl.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "99国产在线99在线视频" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + }, + "checks": { + "home": { + "label": "首页", + "passed": true, + "url": "https://pcslcl.com/", + "path": "/", + "status": 200, + "detail": "ok" + }, + "search": { + "label": "搜索", + "passed": true, + "url": "https://pcslcl.com/get/keywords?keyword=99%E5%9B%BD%E4%BA%A7%E5%9C%A8%E7%BA%BF99%E5%9C%A8%E7%BA%BF%E8%A7%86%E9%A2%91", + "path": "/get/keywords?keyword=99%E5%9B%BD%E4%BA%A7%E5%9C%A8%E7%BA%BF99%E5%9C%A8%E7%BA%BF%E8%A7%86%E9%A2%91", + "status": 200, + "detail": "ok" + }, + "detail": { + "label": "详情", + "passed": true, + "url": "https://pcslcl.com/dianying-xiang-feng-bu-shi-jiu-shi-ren-154229", + "path": "/dianying-xiang-feng-bu-shi-jiu-shi-ren-154229", + "status": 200, + "detail": "ok" + }, + "play": { + "label": "播放", + "passed": true, + "url": "https://pcslcl.com/bf-xiang-feng-bu-shi-jiu-shi-ren-154229-douban-1", + "path": "/bf-xiang-feng-bu-shi-jiu-shi-ren-154229-douban-1", + "status": 200, + "detail": "ok" + } + }, + "failed_stage": "", + "failed_stages": [], + "all_passed": true, + "probed_at": "2026-04-12T15:22:43+08:00" + }, + { + "host": "vikau.com", + "status": "failed", + "message": "Trajectory probe found failed stages.", + "sample": { + "host": "vikau.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "日韩欧美亚洲国产精品字幕" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + }, + "checks": { + "home": { + "label": "首页", + "passed": true, + "url": "https://vikau.com/", + "path": "/", + "status": 200, + "detail": "ok" + }, + "search": { + "label": "搜索", + "passed": true, + "url": "https://vikau.com/search-keywords?keyword=%E6%97%A5%E9%9F%A9%E6%AC%A7%E7%BE%8E%E4%BA%9A%E6%B4%B2%E5%9B%BD%E4%BA%A7%E7%B2%BE%E5%93%81%E5%AD%97%E5%B9%95", + "path": "/search-keywords?keyword=%E6%97%A5%E9%9F%A9%E6%AC%A7%E7%BE%8E%E4%BA%9A%E6%B4%B2%E5%9B%BD%E4%BA%A7%E7%B2%BE%E5%93%81%E5%AD%97%E5%B9%95", + "status": 200, + "detail": "ok" + }, + "detail": { + "label": "详情", + "passed": false, + "url": "https://vikau.com/video/pinyin-xiang-feng-bu-shi-jiu-shi-ren", + "path": "/video/pinyin-xiang-feng-bu-shi-jiu-shi-ren", + "status": 404, + "detail": "http_404" + }, + "play": { + "label": "播放", + "passed": true, + "url": "https://vikau.com/video-154229/douban-1", + "path": "/video-154229/douban-1", + "status": 200, + "detail": "ok" + } + }, + "failed_stage": "detail", + "failed_stages": [ + "detail" + ], + "all_passed": false, + "probed_at": "2026-04-12T15:22:52+08:00" + }, + { + "host": "codohealth.com", + "status": "passed", + "message": "Trajectory probe passed.", + "sample": { + "host": "codohealth.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "中文字幕在线电影网" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + }, + "checks": { + "home": { + "label": "首页", + "passed": true, + "url": "https://codohealth.com/", + "path": "/", + "status": 200, + "detail": "ok" + }, + "search": { + "label": "搜索", + "passed": true, + "url": "https://codohealth.com/get-home?keyword=%E4%B8%AD%E6%96%87%E5%AD%97%E5%B9%95%E5%9C%A8%E7%BA%BF%E7%94%B5%E5%BD%B1%E7%BD%91", + "path": "/get-home?keyword=%E4%B8%AD%E6%96%87%E5%AD%97%E5%B9%95%E5%9C%A8%E7%BA%BF%E7%94%B5%E5%BD%B1%E7%BD%91", + "status": 200, + "detail": "ok" + }, + "detail": { + "label": "详情", + "passed": true, + "url": "https://codohealth.com/film/id-154229", + "path": "/film/id-154229", + "status": 200, + "detail": "ok" + }, + "play": { + "label": "播放", + "passed": true, + "url": "https://codohealth.com/player-154229-douban-1", + "path": "/player-154229-douban-1", + "status": 200, + "detail": "ok" + } + }, + "failed_stage": "", + "failed_stages": [], + "all_passed": true, + "probed_at": "2026-04-12T15:23:10+08:00" + }, + { + "host": "nblssy.com", + "status": "passed", + "message": "Trajectory probe passed.", + "sample": { + "host": "nblssy.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "青苹果乐园影院电视剧免费" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + }, + "checks": { + "home": { + "label": "首页", + "passed": true, + "url": "https://nblssy.com/", + "path": "/", + "status": 200, + "detail": "ok" + }, + "search": { + "label": "搜索", + "passed": true, + "url": "https://nblssy.com/get-index?keyword=%E9%9D%92%E8%8B%B9%E6%9E%9C%E4%B9%90%E5%9B%AD%E5%BD%B1%E9%99%A2%E7%94%B5%E8%A7%86%E5%89%A7%E5%85%8D%E8%B4%B9", + "path": "/get-index?keyword=%E9%9D%92%E8%8B%B9%E6%9E%9C%E4%B9%90%E5%9B%AD%E5%BD%B1%E9%99%A2%E7%94%B5%E8%A7%86%E5%89%A7%E5%85%8D%E8%B4%B9", + "status": 200, + "detail": "ok" + }, + "detail": { + "label": "详情", + "passed": true, + "url": "https://nblssy.com/film-154229-xiang-feng-bu-shi-jiu-shi-ren", + "path": "/film-154229-xiang-feng-bu-shi-jiu-shi-ren", + "status": 200, + "detail": "ok" + }, + "play": { + "label": "播放", + "passed": true, + "url": "https://nblssy.com/player-154229-xiang-feng-bu-shi-jiu-shi-ren/douban-1", + "path": "/player-154229-xiang-feng-bu-shi-jiu-shi-ren/douban-1", + "status": 200, + "detail": "ok" + } + }, + "failed_stage": "", + "failed_stages": [], + "all_passed": true, + "probed_at": "2026-04-12T15:23:34+08:00" + }, + { + "host": "caosheninan.com", + "status": "passed", + "message": "Trajectory probe passed.", + "sample": { + "host": "caosheninan.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "精品久久久久中文字幕电视" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + }, + "checks": { + "home": { + "label": "首页", + "passed": true, + "url": "https://caosheninan.com/", + "path": "/", + "status": 200, + "detail": "ok" + }, + "search": { + "label": "搜索", + "passed": true, + "url": "https://caosheninan.com/search?keyword=%E7%B2%BE%E5%93%81%E4%B9%85%E4%B9%85%E4%B9%85%E4%B9%85%E4%B8%AD%E6%96%87%E5%AD%97%E5%B9%95%E7%94%B5%E8%A7%86", + "path": "/search?keyword=%E7%B2%BE%E5%93%81%E4%B9%85%E4%B9%85%E4%B9%85%E4%B9%85%E4%B8%AD%E6%96%87%E5%AD%97%E5%B9%95%E7%94%B5%E8%A7%86", + "status": 200, + "detail": "ok" + }, + "detail": { + "label": "详情", + "passed": true, + "url": "https://caosheninan.com/video/xiang-feng-bu-shi-jiu-shi-ren-154229", + "path": "/video/xiang-feng-bu-shi-jiu-shi-ren-154229", + "status": 200, + "detail": "ok" + }, + "play": { + "label": "播放", + "passed": true, + "url": "https://caosheninan.com/video/xiang-feng-bu-shi-jiu-shi-ren-154229-douban-1", + "path": "/video/xiang-feng-bu-shi-jiu-shi-ren-154229-douban-1", + "status": 200, + "detail": "ok" + } + }, + "failed_stage": "", + "failed_stages": [], + "all_passed": true, + "probed_at": "2026-04-12T15:23:57+08:00" + }, + { + "host": "visitsumenep.com", + "status": "passed", + "message": "Trajectory probe passed.", + "sample": { + "host": "visitsumenep.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "国产精品人成视频免费播放" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + }, + "checks": { + "home": { + "label": "首页", + "passed": true, + "url": "https://visitsumenep.com/", + "path": "/", + "status": 200, + "detail": "ok" + }, + "search": { + "label": "搜索", + "passed": true, + "url": "https://visitsumenep.com/get/index?keyword=%E5%9B%BD%E4%BA%A7%E7%B2%BE%E5%93%81%E4%BA%BA%E6%88%90%E8%A7%86%E9%A2%91%E5%85%8D%E8%B4%B9%E6%92%AD%E6%94%BE", + "path": "/get/index?keyword=%E5%9B%BD%E4%BA%A7%E7%B2%BE%E5%93%81%E4%BA%BA%E6%88%90%E8%A7%86%E9%A2%91%E5%85%8D%E8%B4%B9%E6%92%AD%E6%94%BE", + "status": 200, + "detail": "ok" + }, + "detail": { + "label": "详情", + "passed": true, + "url": "https://visitsumenep.com/neirong/xiang-feng-bu-shi-jiu-shi-ren/154229", + "path": "/neirong/xiang-feng-bu-shi-jiu-shi-ren/154229", + "status": 200, + "detail": "ok" + }, + "play": { + "label": "播放", + "passed": true, + "url": "https://visitsumenep.com/bf/154229-douban-1", + "path": "/bf/154229-douban-1", + "status": 200, + "detail": "ok" + } + }, + "failed_stage": "", + "failed_stages": [], + "all_passed": true, + "probed_at": "2026-04-12T15:24:20+08:00" + }, + { + "host": "oronorent.com", + "status": "passed", + "message": "Trajectory probe passed.", + "sample": { + "host": "oronorent.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "精品欧美成人高清视频在线" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + }, + "checks": { + "home": { + "label": "首页", + "passed": true, + "url": "https://oronorent.com/", + "path": "/", + "status": 200, + "detail": "ok" + }, + "search": { + "label": "搜索", + "passed": true, + "url": "https://oronorent.com/get.html?keyword=%E7%B2%BE%E5%93%81%E6%AC%A7%E7%BE%8E%E6%88%90%E4%BA%BA%E9%AB%98%E6%B8%85%E8%A7%86%E9%A2%91%E5%9C%A8%E7%BA%BF", + "path": "/get.html?keyword=%E7%B2%BE%E5%93%81%E6%AC%A7%E7%BE%8E%E6%88%90%E4%BA%BA%E9%AB%98%E6%B8%85%E8%A7%86%E9%A2%91%E5%9C%A8%E7%BA%BF", + "status": 200, + "detail": "ok" + }, + "detail": { + "label": "详情", + "passed": true, + "url": "https://oronorent.com/shipin/154229-xiang-feng-bu-shi-jiu-shi-ren", + "path": "/shipin/154229-xiang-feng-bu-shi-jiu-shi-ren", + "status": 200, + "detail": "ok" + }, + "play": { + "label": "播放", + "passed": true, + "url": "https://oronorent.com/m3u8/xiang-feng-bu-shi-jiu-shi-ren-154229/douban-1", + "path": "/m3u8/xiang-feng-bu-shi-jiu-shi-ren-154229/douban-1", + "status": 200, + "detail": "ok" + } + }, + "failed_stage": "", + "failed_stages": [], + "all_passed": true, + "probed_at": "2026-04-12T15:24:44+08:00" + }, + { + "host": "zbsv3.com", + "status": "passed", + "message": "Trajectory probe passed.", + "sample": { + "host": "zbsv3.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "欧美在线综合中文字幕超清" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + }, + "checks": { + "home": { + "label": "首页", + "passed": true, + "url": "https://zbsv3.com/", + "path": "/", + "status": 200, + "detail": "ok" + }, + "search": { + "label": "搜索", + "passed": true, + "url": "https://zbsv3.com/get-home?keyword=%E6%AC%A7%E7%BE%8E%E5%9C%A8%E7%BA%BF%E7%BB%BC%E5%90%88%E4%B8%AD%E6%96%87%E5%AD%97%E5%B9%95%E8%B6%85%E6%B8%85", + "path": "/get-home?keyword=%E6%AC%A7%E7%BE%8E%E5%9C%A8%E7%BA%BF%E7%BB%BC%E5%90%88%E4%B8%AD%E6%96%87%E5%AD%97%E5%B9%95%E8%B6%85%E6%B8%85", + "status": 200, + "detail": "ok" + }, + "detail": { + "label": "详情", + "passed": true, + "url": "https://zbsv3.com/neirong/id-154229", + "path": "/neirong/id-154229", + "status": 200, + "detail": "ok" + }, + "play": { + "label": "播放", + "passed": true, + "url": "https://zbsv3.com/bf-154229-douban-1", + "path": "/bf-154229-douban-1", + "status": 200, + "detail": "ok" + } + }, + "failed_stage": "", + "failed_stages": [], + "all_passed": true, + "probed_at": "2026-04-12T15:25:07+08:00" + }, + { + "host": "ukoys.com", + "status": "passed", + "message": "Trajectory probe passed.", + "sample": { + "host": "ukoys.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "久久精品国产精品中文字幕" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + }, + "checks": { + "home": { + "label": "首页", + "passed": true, + "url": "https://ukoys.com/", + "path": "/", + "status": 200, + "detail": "ok" + }, + "search": { + "label": "搜索", + "passed": true, + "url": "https://ukoys.com/get/index?keyword=%E4%B9%85%E4%B9%85%E7%B2%BE%E5%93%81%E5%9B%BD%E4%BA%A7%E7%B2%BE%E5%93%81%E4%B8%AD%E6%96%87%E5%AD%97%E5%B9%95", + "path": "/get/index?keyword=%E4%B9%85%E4%B9%85%E7%B2%BE%E5%93%81%E5%9B%BD%E4%BA%A7%E7%B2%BE%E5%93%81%E4%B8%AD%E6%96%87%E5%AD%97%E5%B9%95", + "status": 200, + "detail": "ok" + }, + "detail": { + "label": "详情", + "passed": true, + "url": "https://ukoys.com/shipin/xiang-feng-bu-shi-jiu-shi-ren/154229", + "path": "/shipin/xiang-feng-bu-shi-jiu-shi-ren/154229", + "status": 200, + "detail": "ok" + }, + "play": { + "label": "播放", + "passed": true, + "url": "https://ukoys.com/m3u8/154229-douban-1", + "path": "/m3u8/154229-douban-1", + "status": 200, + "detail": "ok" + } + }, + "failed_stage": "", + "failed_stages": [], + "all_passed": true, + "probed_at": "2026-04-12T15:25:31+08:00" + }, + { + "host": "lcdchq.com", + "status": "passed", + "message": "Trajectory probe passed.", + "sample": { + "host": "lcdchq.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "欧美国产精品一区三区欧美" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + }, + "checks": { + "home": { + "label": "首页", + "passed": true, + "url": "https://lcdchq.com/", + "path": "/", + "status": 200, + "detail": "ok" + }, + "search": { + "label": "搜索", + "passed": true, + "url": "https://lcdchq.com/get.html?keyword=%E6%AC%A7%E7%BE%8E%E5%9B%BD%E4%BA%A7%E7%B2%BE%E5%93%81%E4%B8%80%E5%8C%BA%E4%B8%89%E5%8C%BA%E6%AC%A7%E7%BE%8E", + "path": "/get.html?keyword=%E6%AC%A7%E7%BE%8E%E5%9B%BD%E4%BA%A7%E7%B2%BE%E5%93%81%E4%B8%80%E5%8C%BA%E4%B8%89%E5%8C%BA%E6%AC%A7%E7%BE%8E", + "status": 200, + "detail": "ok" + }, + "detail": { + "label": "详情", + "passed": true, + "url": "https://lcdchq.com/movie/154229-xiang-feng-bu-shi-jiu-shi-ren", + "path": "/movie/154229-xiang-feng-bu-shi-jiu-shi-ren", + "status": 200, + "detail": "ok" + }, + "play": { + "label": "播放", + "passed": true, + "url": "https://lcdchq.com/kan/xiang-feng-bu-shi-jiu-shi-ren-154229/douban-1", + "path": "/kan/xiang-feng-bu-shi-jiu-shi-ren-154229/douban-1", + "status": 200, + "detail": "ok" + } + }, + "failed_stage": "", + "failed_stages": [], + "all_passed": true, + "probed_at": "2026-04-12T15:25:55+08:00" + }, + { + "host": "jxxgygy.com", + "status": "passed", + "message": "Trajectory probe passed.", + "sample": { + "host": "jxxgygy.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "久久久久国产一区二区三区" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + }, + "checks": { + "home": { + "label": "首页", + "passed": true, + "url": "https://jxxgygy.com/", + "path": "/", + "status": 200, + "detail": "ok" + }, + "search": { + "label": "搜索", + "passed": true, + "url": "https://jxxgygy.com/get-home?keyword=%E4%B9%85%E4%B9%85%E4%B9%85%E4%B9%85%E5%9B%BD%E4%BA%A7%E4%B8%80%E5%8C%BA%E4%BA%8C%E5%8C%BA%E4%B8%89%E5%8C%BA", + "path": "/get-home?keyword=%E4%B9%85%E4%B9%85%E4%B9%85%E4%B9%85%E5%9B%BD%E4%BA%A7%E4%B8%80%E5%8C%BA%E4%BA%8C%E5%8C%BA%E4%B8%89%E5%8C%BA", + "status": 200, + "detail": "ok" + }, + "detail": { + "label": "详情", + "passed": true, + "url": "https://jxxgygy.com/shipin/id-154229", + "path": "/shipin/id-154229", + "status": 200, + "detail": "ok" + }, + "play": { + "label": "播放", + "passed": true, + "url": "https://jxxgygy.com/m3u8-154229-douban-1", + "path": "/m3u8-154229-douban-1", + "status": 200, + "detail": "ok" + } + }, + "failed_stage": "", + "failed_stages": [], + "all_passed": true, + "probed_at": "2026-04-12T15:26:18+08:00" + }, + { + "host": "leici1940.com", + "status": "passed", + "message": "Trajectory probe passed.", + "sample": { + "host": "leici1940.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "亚洲国产欧美在线日韩免费" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + }, + "checks": { + "home": { + "label": "首页", + "passed": true, + "url": "https://leici1940.com/", + "path": "/", + "status": 200, + "detail": "ok" + }, + "search": { + "label": "搜索", + "passed": true, + "url": "https://leici1940.com/find?keyword=%E4%BA%9A%E6%B4%B2%E5%9B%BD%E4%BA%A7%E6%AC%A7%E7%BE%8E%E5%9C%A8%E7%BA%BF%E6%97%A5%E9%9F%A9%E5%85%8D%E8%B4%B9", + "path": "/find?keyword=%E4%BA%9A%E6%B4%B2%E5%9B%BD%E4%BA%A7%E6%AC%A7%E7%BE%8E%E5%9C%A8%E7%BA%BF%E6%97%A5%E9%9F%A9%E5%85%8D%E8%B4%B9", + "status": 200, + "detail": "ok" + }, + "detail": { + "label": "详情", + "passed": true, + "url": "https://leici1940.com/vod/xiang-feng-bu-shi-jiu-shi-ren-154229", + "path": "/vod/xiang-feng-bu-shi-jiu-shi-ren-154229", + "status": 200, + "detail": "ok" + }, + "play": { + "label": "播放", + "passed": true, + "url": "https://leici1940.com/watch/xiang-feng-bu-shi-jiu-shi-ren-154229-douban-1", + "path": "/watch/xiang-feng-bu-shi-jiu-shi-ren-154229-douban-1", + "status": 200, + "detail": "ok" + } + }, + "failed_stage": "", + "failed_stages": [], + "all_passed": true, + "probed_at": "2026-04-12T15:26:32+08:00" + }, + { + "host": "jingxifa.com", + "status": "failed", + "message": "Trajectory probe found failed stages.", + "sample": { + "host": "jingxifa.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "日韩欧美中文字幕电影日韩" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + }, + "checks": { + "home": { + "label": "首页", + "passed": true, + "url": "https://jingxifa.com/", + "path": "/", + "status": 200, + "detail": "ok" + }, + "search": { + "label": "搜索", + "passed": true, + "url": "https://jingxifa.com/get-index?keyword=%E6%97%A5%E9%9F%A9%E6%AC%A7%E7%BE%8E%E4%B8%AD%E6%96%87%E5%AD%97%E5%B9%95%E7%94%B5%E5%BD%B1%E6%97%A5%E9%9F%A9", + "path": "/get-index?keyword=%E6%97%A5%E9%9F%A9%E6%AC%A7%E7%BE%8E%E4%B8%AD%E6%96%87%E5%AD%97%E5%B9%95%E7%94%B5%E5%BD%B1%E6%97%A5%E9%9F%A9", + "status": 200, + "detail": "ok" + }, + "detail": { + "label": "详情", + "passed": false, + "url": "https://jingxifa.com/xiangqing-154229-xiang-feng-bu-shi-jiu-shi-ren", + "path": "/xiangqing-154229-xiang-feng-bu-shi-jiu-shi-ren", + "status": 500, + "detail": "http_500" + }, + "play": { + "label": "播放", + "passed": true, + "url": "https://jingxifa.com/bofang-154229-xiang-feng-bu-shi-jiu-shi-ren/douban-1", + "path": "/bofang-154229-xiang-feng-bu-shi-jiu-shi-ren/douban-1", + "status": 200, + "detail": "ok" + } + }, + "failed_stage": "detail", + "failed_stages": [ + "detail" + ], + "all_passed": false, + "probed_at": "2026-04-12T15:26:51+08:00" + }, + { + "host": "sdxhtgcl.com", + "status": "passed", + "message": "Trajectory probe passed.", + "sample": { + "host": "sdxhtgcl.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "国产福利在线观看" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + }, + "checks": { + "home": { + "label": "首页", + "passed": true, + "url": "https://sdxhtgcl.com/", + "path": "/", + "status": 200, + "detail": "ok" + }, + "search": { + "label": "搜索", + "passed": true, + "url": "https://sdxhtgcl.com/get.html?keyword=%E5%9B%BD%E4%BA%A7%E7%A6%8F%E5%88%A9%E5%9C%A8%E7%BA%BF%E8%A7%82%E7%9C%8B", + "path": "/get.html?keyword=%E5%9B%BD%E4%BA%A7%E7%A6%8F%E5%88%A9%E5%9C%A8%E7%BA%BF%E8%A7%82%E7%9C%8B", + "status": 200, + "detail": "ok" + }, + "detail": { + "label": "详情", + "passed": true, + "url": "https://sdxhtgcl.com/neirong/154229-xiang-feng-bu-shi-jiu-shi-ren", + "path": "/neirong/154229-xiang-feng-bu-shi-jiu-shi-ren", + "status": 200, + "detail": "ok" + }, + "play": { + "label": "播放", + "passed": true, + "url": "https://sdxhtgcl.com/bf/xiang-feng-bu-shi-jiu-shi-ren-154229/douban-1", + "path": "/bf/xiang-feng-bu-shi-jiu-shi-ren-154229/douban-1", + "status": 200, + "detail": "ok" + } + }, + "failed_stage": "", + "failed_stages": [], + "all_passed": true, + "probed_at": "2026-04-12T15:27:14+08:00" + }, + { + "host": "jpjdxs.com", + "status": "passed", + "message": "Trajectory probe passed.", + "sample": { + "host": "jpjdxs.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "亚洲天堂精品视频" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + }, + "checks": { + "home": { + "label": "首页", + "passed": true, + "url": "https://jpjdxs.com/", + "path": "/", + "status": 200, + "detail": "ok" + }, + "search": { + "label": "搜索", + "passed": true, + "url": "https://jpjdxs.com/get-index?keyword=%E4%BA%9A%E6%B4%B2%E5%A4%A9%E5%A0%82%E7%B2%BE%E5%93%81%E8%A7%86%E9%A2%91", + "path": "/get-index?keyword=%E4%BA%9A%E6%B4%B2%E5%A4%A9%E5%A0%82%E7%B2%BE%E5%93%81%E8%A7%86%E9%A2%91", + "status": 200, + "detail": "ok" + }, + "detail": { + "label": "详情", + "passed": true, + "url": "https://jpjdxs.com/neirong-154229-xiang-feng-bu-shi-jiu-shi-ren", + "path": "/neirong-154229-xiang-feng-bu-shi-jiu-shi-ren", + "status": 200, + "detail": "ok" + }, + "play": { + "label": "播放", + "passed": true, + "url": "https://jpjdxs.com/bf-154229-xiang-feng-bu-shi-jiu-shi-ren/douban-1", + "path": "/bf-154229-xiang-feng-bu-shi-jiu-shi-ren/douban-1", + "status": 200, + "detail": "ok" + } + }, + "failed_stage": "", + "failed_stages": [], + "all_passed": true, + "probed_at": "2026-04-12T15:27:37+08:00" + }, + { + "host": "lsrxs.com", + "status": "passed", + "message": "Trajectory probe passed.", + "sample": { + "host": "lsrxs.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "国产91在线播放" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + }, + "checks": { + "home": { + "label": "首页", + "passed": true, + "url": "https://lsrxs.com/", + "path": "/", + "status": 200, + "detail": "ok" + }, + "search": { + "label": "搜索", + "passed": true, + "url": "https://lsrxs.com/search-index?keyword=%E5%9B%BD%E4%BA%A791%E5%9C%A8%E7%BA%BF%E6%92%AD%E6%94%BE", + "path": "/search-index?keyword=%E5%9B%BD%E4%BA%A791%E5%9C%A8%E7%BA%BF%E6%92%AD%E6%94%BE", + "status": 200, + "detail": "ok" + }, + "detail": { + "label": "详情", + "passed": true, + "url": "https://lsrxs.com/video-154229-xiang-feng-bu-shi-jiu-shi-ren", + "path": "/video-154229-xiang-feng-bu-shi-jiu-shi-ren", + "status": 200, + "detail": "ok" + }, + "play": { + "label": "播放", + "passed": true, + "url": "https://lsrxs.com/video-154229-xiang-feng-bu-shi-jiu-shi-ren/douban-1", + "path": "/video-154229-xiang-feng-bu-shi-jiu-shi-ren/douban-1", + "status": 200, + "detail": "ok" + } + }, + "failed_stage": "", + "failed_stages": [], + "all_passed": true, + "probed_at": "2026-04-12T15:28:00+08:00" + }, + { + "host": "gxhongzhuang.com", + "status": "passed", + "message": "Trajectory probe passed.", + "sample": { + "host": "gxhongzhuang.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "91视频在线免费观看" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + }, + "checks": { + "home": { + "label": "首页", + "passed": true, + "url": "https://gxhongzhuang.com/", + "path": "/", + "status": 200, + "detail": "ok" + }, + "search": { + "label": "搜索", + "passed": true, + "url": "https://gxhongzhuang.com/search/home?keyword=91%E8%A7%86%E9%A2%91%E5%9C%A8%E7%BA%BF%E5%85%8D%E8%B4%B9%E8%A7%82%E7%9C%8B", + "path": "/search/home?keyword=91%E8%A7%86%E9%A2%91%E5%9C%A8%E7%BA%BF%E5%85%8D%E8%B4%B9%E8%A7%82%E7%9C%8B", + "status": 200, + "detail": "ok" + }, + "detail": { + "label": "详情", + "passed": true, + "url": "https://gxhongzhuang.com/video/154229", + "path": "/video/154229", + "status": 200, + "detail": "ok" + }, + "play": { + "label": "播放", + "passed": true, + "url": "https://gxhongzhuang.com/video/154229/douban-1", + "path": "/video/154229/douban-1", + "status": 200, + "detail": "ok" + } + }, + "failed_stage": "", + "failed_stages": [], + "all_passed": true, + "probed_at": "2026-04-12T15:28:23+08:00" + }, + { + "host": "glae.cc", + "status": "failed", + "message": "Trajectory probe found failed stages.", + "sample": { + "host": "glae.cc", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "日韩剧在线观看高清版电视" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + }, + "checks": { + "home": { + "label": "首页", + "passed": true, + "url": "https://glae.cc/", + "path": "/", + "status": 200, + "detail": "ok" + }, + "search": { + "label": "搜索", + "passed": true, + "url": "https://glae.cc/get/keywords?keyword=%E6%97%A5%E9%9F%A9%E5%89%A7%E5%9C%A8%E7%BA%BF%E8%A7%82%E7%9C%8B%E9%AB%98%E6%B8%85%E7%89%88%E7%94%B5%E8%A7%86", + "path": "/get/keywords?keyword=%E6%97%A5%E9%9F%A9%E5%89%A7%E5%9C%A8%E7%BA%BF%E8%A7%82%E7%9C%8B%E9%AB%98%E6%B8%85%E7%89%88%E7%94%B5%E8%A7%86", + "status": 200, + "detail": "ok" + }, + "detail": { + "label": "详情", + "passed": false, + "url": "https://glae.cc/xiangqing-xiang-feng-bu-shi-jiu-shi-ren-154229", + "path": "/xiangqing-xiang-feng-bu-shi-jiu-shi-ren-154229", + "status": 500, + "detail": "http_500" + }, + "play": { + "label": "播放", + "passed": true, + "url": "https://glae.cc/bofang-xiang-feng-bu-shi-jiu-shi-ren-154229-douban-1", + "path": "/bofang-xiang-feng-bu-shi-jiu-shi-ren-154229-douban-1", + "status": 200, + "detail": "ok" + } + }, + "failed_stage": "detail", + "failed_stages": [ + "detail" + ], + "all_passed": false, + "probed_at": "2026-04-12T15:28:46+08:00" + }, + { + "host": "sjzyunyang.com", + "status": "passed", + "message": "Trajectory probe passed.", + "sample": { + "host": "sjzyunyang.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "欧美视频在线播放" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + }, + "checks": { + "home": { + "label": "首页", + "passed": true, + "url": "https://sjzyunyang.com/", + "path": "/", + "status": 200, + "detail": "ok" + }, + "search": { + "label": "搜索", + "passed": true, + "url": "https://sjzyunyang.com/query/keywords?keyword=%E6%AC%A7%E7%BE%8E%E8%A7%86%E9%A2%91%E5%9C%A8%E7%BA%BF%E6%92%AD%E6%94%BE", + "path": "/query/keywords?keyword=%E6%AC%A7%E7%BE%8E%E8%A7%86%E9%A2%91%E5%9C%A8%E7%BA%BF%E6%92%AD%E6%94%BE", + "status": 200, + "detail": "ok" + }, + "detail": { + "label": "详情", + "passed": true, + "url": "https://sjzyunyang.com/detail-xiang-feng-bu-shi-jiu-shi-ren-154229", + "path": "/detail-xiang-feng-bu-shi-jiu-shi-ren-154229", + "status": 200, + "detail": "ok" + }, + "play": { + "label": "播放", + "passed": true, + "url": "https://sjzyunyang.com/play-xiang-feng-bu-shi-jiu-shi-ren-154229-douban-1", + "path": "/play-xiang-feng-bu-shi-jiu-shi-ren-154229-douban-1", + "status": 200, + "detail": "ok" + } + }, + "failed_stage": "", + "failed_stages": [], + "all_passed": true, + "probed_at": "2026-04-12T15:29:10+08:00" + }, + { + "host": "lmjcg.com", + "status": "failed", + "message": "Trajectory probe found failed stages.", + "sample": { + "host": "lmjcg.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "欧美视频在线观看" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + }, + "checks": { + "home": { + "label": "首页", + "passed": true, + "url": "https://lmjcg.com/", + "path": "/", + "status": 200, + "detail": "ok" + }, + "search": { + "label": "搜索", + "passed": true, + "url": "https://lmjcg.com/get-keywords?keyword=%E6%AC%A7%E7%BE%8E%E8%A7%86%E9%A2%91%E5%9C%A8%E7%BA%BF%E8%A7%82%E7%9C%8B", + "path": "/get-keywords?keyword=%E6%AC%A7%E7%BE%8E%E8%A7%86%E9%A2%91%E5%9C%A8%E7%BA%BF%E8%A7%82%E7%9C%8B", + "status": 200, + "detail": "ok" + }, + "detail": { + "label": "详情", + "passed": false, + "url": "https://lmjcg.com/film/pinyin-xiang-feng-bu-shi-jiu-shi-ren", + "path": "/film/pinyin-xiang-feng-bu-shi-jiu-shi-ren", + "status": 404, + "detail": "http_404" + }, + "play": { + "label": "播放", + "passed": true, + "url": "https://lmjcg.com/player-154229/douban-1", + "path": "/player-154229/douban-1", + "status": 200, + "detail": "ok" + } + }, + "failed_stage": "detail", + "failed_stages": [ + "detail" + ], + "all_passed": false, + "probed_at": "2026-04-12T15:29:33+08:00" + } + ], + "queue_count": 24, + "generated_at": "2026-04-12T15:29:33+08:00", + "meta": { + "queue_count": 24, + "selected_host": "", + "run_root": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-import-runs" + }, + "summary_json_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-import-reruns/20260412/152933_failed_queue_fe998e/import-rerun.summary.json", + "summary_html_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-import-reruns/20260412/152933_failed_queue_fe998e/import-rerun.summary.html" +} diff --git a/code/public/_admin_templates/domain-import-reruns/20260412/155443_failed_queue_5d092b/hosts.txt b/code/public/_admin_templates/domain-import-reruns/20260412/155443_failed_queue_5d092b/hosts.txt new file mode 100644 index 0000000..b84daa1 --- /dev/null +++ b/code/public/_admin_templates/domain-import-reruns/20260412/155443_failed_queue_5d092b/hosts.txt @@ -0,0 +1,5 @@ +hbczccq.com +vikau.com +jingxifa.com +glae.cc +lmjcg.com diff --git a/code/public/_admin_templates/domain-import-reruns/20260412/155443_failed_queue_5d092b/import-rerun.summary.html b/code/public/_admin_templates/domain-import-reruns/20260412/155443_failed_queue_5d092b/import-rerun.summary.html new file mode 100644 index 0000000..948f552 --- /dev/null +++ b/code/public/_admin_templates/domain-import-reruns/20260412/155443_failed_queue_5d092b/import-rerun.summary.html @@ -0,0 +1 @@ +站点导入重跑摘要

站点导入重跑摘要

生成时间:2026-04-12 15:54:43

处理总数:5 / 通过:5 / 失败:0

域名状态失败阶段说明
hbczccq.com通过-页面链路探测通过。
vikau.com通过-页面链路探测通过。
jingxifa.com通过-页面链路探测通过。
glae.cc通过-页面链路探测通过。
lmjcg.com通过-页面链路探测通过。
\ No newline at end of file diff --git a/code/public/_admin_templates/domain-import-reruns/20260412/155443_failed_queue_5d092b/import-rerun.summary.json b/code/public/_admin_templates/domain-import-reruns/20260412/155443_failed_queue_5d092b/import-rerun.summary.json new file mode 100644 index 0000000..30aad03 --- /dev/null +++ b/code/public/_admin_templates/domain-import-reruns/20260412/155443_failed_queue_5d092b/import-rerun.summary.json @@ -0,0 +1,391 @@ +{ + "processed_count": 5, + "passed_count": 5, + "failed_count": 0, + "items": [ + { + "host": "hbczccq.com", + "status": "passed", + "message": "Trajectory probe passed.", + "sample": { + "host": "hbczccq.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "国产精品亚洲综合飘雪日本" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + }, + "checks": { + "home": { + "label": "首页", + "passed": true, + "url": "https://hbczccq.com/", + "path": "/", + "status": 200, + "detail": "ok" + }, + "search": { + "label": "搜索", + "passed": true, + "url": "https://hbczccq.com/find-keywords?keyword=%E5%9B%BD%E4%BA%A7%E7%B2%BE%E5%93%81%E4%BA%9A%E6%B4%B2%E7%BB%BC%E5%90%88%E9%A3%98%E9%9B%AA%E6%97%A5%E6%9C%AC", + "path": "/find-keywords?keyword=%E5%9B%BD%E4%BA%A7%E7%B2%BE%E5%93%81%E4%BA%9A%E6%B4%B2%E7%BB%BC%E5%90%88%E9%A3%98%E9%9B%AA%E6%97%A5%E6%9C%AC", + "status": 200, + "detail": "ok" + }, + "detail": { + "label": "详情", + "passed": true, + "url": "https://hbczccq.com/vod/pinyin-xiang-feng-bu-shi-jiu-shi-ren-154229", + "path": "/vod/pinyin-xiang-feng-bu-shi-jiu-shi-ren-154229", + "status": 200, + "detail": "ok" + }, + "play": { + "label": "播放", + "passed": true, + "url": "https://hbczccq.com/watch-154229/douban-1", + "path": "/watch-154229/douban-1", + "status": 200, + "detail": "ok" + } + }, + "failed_stage": "", + "failed_stages": [], + "all_passed": true, + "probed_at": "2026-04-12T15:54:08+08:00" + }, + { + "host": "vikau.com", + "status": "passed", + "message": "Trajectory probe passed.", + "sample": { + "host": "vikau.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "日韩欧美亚洲国产精品字幕" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + }, + "checks": { + "home": { + "label": "首页", + "passed": true, + "url": "https://vikau.com/", + "path": "/", + "status": 200, + "detail": "ok" + }, + "search": { + "label": "搜索", + "passed": true, + "url": "https://vikau.com/search-keywords?keyword=%E6%97%A5%E9%9F%A9%E6%AC%A7%E7%BE%8E%E4%BA%9A%E6%B4%B2%E5%9B%BD%E4%BA%A7%E7%B2%BE%E5%93%81%E5%AD%97%E5%B9%95", + "path": "/search-keywords?keyword=%E6%97%A5%E9%9F%A9%E6%AC%A7%E7%BE%8E%E4%BA%9A%E6%B4%B2%E5%9B%BD%E4%BA%A7%E7%B2%BE%E5%93%81%E5%AD%97%E5%B9%95", + "status": 200, + "detail": "ok" + }, + "detail": { + "label": "详情", + "passed": true, + "url": "https://vikau.com/video/pinyin-xiang-feng-bu-shi-jiu-shi-ren-154229", + "path": "/video/pinyin-xiang-feng-bu-shi-jiu-shi-ren-154229", + "status": 200, + "detail": "ok" + }, + "play": { + "label": "播放", + "passed": true, + "url": "https://vikau.com/video-154229/douban-1", + "path": "/video-154229/douban-1", + "status": 200, + "detail": "ok" + } + }, + "failed_stage": "", + "failed_stages": [], + "all_passed": true, + "probed_at": "2026-04-12T15:54:20+08:00" + }, + { + "host": "jingxifa.com", + "status": "passed", + "message": "Trajectory probe passed.", + "sample": { + "host": "jingxifa.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "日韩欧美中文字幕电影日韩" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + }, + "checks": { + "home": { + "label": "首页", + "passed": true, + "url": "https://jingxifa.com/", + "path": "/", + "status": 200, + "detail": "ok" + }, + "search": { + "label": "搜索", + "passed": true, + "url": "https://jingxifa.com/get-index?keyword=%E6%97%A5%E9%9F%A9%E6%AC%A7%E7%BE%8E%E4%B8%AD%E6%96%87%E5%AD%97%E5%B9%95%E7%94%B5%E5%BD%B1%E6%97%A5%E9%9F%A9", + "path": "/get-index?keyword=%E6%97%A5%E9%9F%A9%E6%AC%A7%E7%BE%8E%E4%B8%AD%E6%96%87%E5%AD%97%E5%B9%95%E7%94%B5%E5%BD%B1%E6%97%A5%E9%9F%A9", + "status": 200, + "detail": "ok" + }, + "detail": { + "label": "详情", + "passed": true, + "url": "https://jingxifa.com/xiangqing-154229-xiang-feng-bu-shi-jiu-shi-ren", + "path": "/xiangqing-154229-xiang-feng-bu-shi-jiu-shi-ren", + "status": 200, + "detail": "ok" + }, + "play": { + "label": "播放", + "passed": true, + "url": "https://jingxifa.com/bofang-154229-xiang-feng-bu-shi-jiu-shi-ren/douban-1", + "path": "/bofang-154229-xiang-feng-bu-shi-jiu-shi-ren/douban-1", + "status": 200, + "detail": "ok" + } + }, + "failed_stage": "", + "failed_stages": [], + "all_passed": true, + "probed_at": "2026-04-12T15:54:26+08:00" + }, + { + "host": "glae.cc", + "status": "passed", + "message": "Trajectory probe passed.", + "sample": { + "host": "glae.cc", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "日韩剧在线观看高清版电视" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + }, + "checks": { + "home": { + "label": "首页", + "passed": true, + "url": "https://glae.cc/", + "path": "/", + "status": 200, + "detail": "ok" + }, + "search": { + "label": "搜索", + "passed": true, + "url": "https://glae.cc/get/keywords?keyword=%E6%97%A5%E9%9F%A9%E5%89%A7%E5%9C%A8%E7%BA%BF%E8%A7%82%E7%9C%8B%E9%AB%98%E6%B8%85%E7%89%88%E7%94%B5%E8%A7%86", + "path": "/get/keywords?keyword=%E6%97%A5%E9%9F%A9%E5%89%A7%E5%9C%A8%E7%BA%BF%E8%A7%82%E7%9C%8B%E9%AB%98%E6%B8%85%E7%89%88%E7%94%B5%E8%A7%86", + "status": 200, + "detail": "ok" + }, + "detail": { + "label": "详情", + "passed": true, + "url": "https://glae.cc/xiangqing-xiang-feng-bu-shi-jiu-shi-ren-154229", + "path": "/xiangqing-xiang-feng-bu-shi-jiu-shi-ren-154229", + "status": 200, + "detail": "ok" + }, + "play": { + "label": "播放", + "passed": true, + "url": "https://glae.cc/bofang-xiang-feng-bu-shi-jiu-shi-ren-154229-douban-1", + "path": "/bofang-xiang-feng-bu-shi-jiu-shi-ren-154229-douban-1", + "status": 200, + "detail": "ok" + } + }, + "failed_stage": "", + "failed_stages": [], + "all_passed": true, + "probed_at": "2026-04-12T15:54:31+08:00" + }, + { + "host": "lmjcg.com", + "status": "passed", + "message": "Trajectory probe passed.", + "sample": { + "host": "lmjcg.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "欧美视频在线观看" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + }, + "checks": { + "home": { + "label": "首页", + "passed": true, + "url": "https://lmjcg.com/", + "path": "/", + "status": 200, + "detail": "ok" + }, + "search": { + "label": "搜索", + "passed": true, + "url": "https://lmjcg.com/get-keywords?keyword=%E6%AC%A7%E7%BE%8E%E8%A7%86%E9%A2%91%E5%9C%A8%E7%BA%BF%E8%A7%82%E7%9C%8B", + "path": "/get-keywords?keyword=%E6%AC%A7%E7%BE%8E%E8%A7%86%E9%A2%91%E5%9C%A8%E7%BA%BF%E8%A7%82%E7%9C%8B", + "status": 200, + "detail": "ok" + }, + "detail": { + "label": "详情", + "passed": true, + "url": "https://lmjcg.com/film/pinyin-xiang-feng-bu-shi-jiu-shi-ren-154229", + "path": "/film/pinyin-xiang-feng-bu-shi-jiu-shi-ren-154229", + "status": 200, + "detail": "ok" + }, + "play": { + "label": "播放", + "passed": true, + "url": "https://lmjcg.com/player-154229/douban-1", + "path": "/player-154229/douban-1", + "status": 200, + "detail": "ok" + } + }, + "failed_stage": "", + "failed_stages": [], + "all_passed": true, + "probed_at": "2026-04-12T15:54:43+08:00" + } + ], + "queue_count": 5, + "generated_at": "2026-04-12T15:54:43+08:00", + "meta": { + "queue_count": 5, + "selected_host": "", + "run_root": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-import-runs" + }, + "summary_json_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-import-reruns/20260412/155443_failed_queue_5d092b/import-rerun.summary.json", + "summary_html_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-import-reruns/20260412/155443_failed_queue_5d092b/import-rerun.summary.html" +} diff --git a/code/public/_admin_templates/domain-import-reruns/20260412/162227_failed_queue_3e4122/hosts.txt b/code/public/_admin_templates/domain-import-reruns/20260412/162227_failed_queue_3e4122/hosts.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/code/public/_admin_templates/domain-import-reruns/20260412/162227_failed_queue_3e4122/hosts.txt @@ -0,0 +1 @@ + diff --git a/code/public/_admin_templates/domain-import-reruns/20260412/162227_failed_queue_3e4122/import-rerun.summary.html b/code/public/_admin_templates/domain-import-reruns/20260412/162227_failed_queue_3e4122/import-rerun.summary.html new file mode 100644 index 0000000..9bc297d --- /dev/null +++ b/code/public/_admin_templates/domain-import-reruns/20260412/162227_failed_queue_3e4122/import-rerun.summary.html @@ -0,0 +1 @@ +站点导入重跑摘要

站点导入重跑摘要

生成时间:2026-04-12 16:22:27

处理总数:0 / 通过:0 / 失败:0

域名状态失败阶段说明
\ No newline at end of file diff --git a/code/public/_admin_templates/domain-import-reruns/20260412/162227_failed_queue_3e4122/import-rerun.summary.json b/code/public/_admin_templates/domain-import-reruns/20260412/162227_failed_queue_3e4122/import-rerun.summary.json new file mode 100644 index 0000000..59538a1 --- /dev/null +++ b/code/public/_admin_templates/domain-import-reruns/20260412/162227_failed_queue_3e4122/import-rerun.summary.json @@ -0,0 +1,15 @@ +{ + "processed_count": 0, + "passed_count": 0, + "failed_count": 0, + "items": [], + "queue_count": 0, + "generated_at": "2026-04-12T16:22:27+08:00", + "meta": { + "queue_count": 0, + "selected_host": "", + "run_root": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-import-runs" + }, + "summary_json_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-import-reruns/20260412/162227_failed_queue_3e4122/import-rerun.summary.json", + "summary_html_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-import-reruns/20260412/162227_failed_queue_3e4122/import-rerun.summary.html" +} diff --git a/code/public/_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/hosts.txt b/code/public/_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/hosts.txt new file mode 100644 index 0000000..8dab5e0 --- /dev/null +++ b/code/public/_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/hosts.txt @@ -0,0 +1,25 @@ +cnzhenbang.com +hyjssb.com +sdxtwnc.com +hbczccq.com +lgyz.net +pcslcl.com +vikau.com +codohealth.com +nblssy.com +caosheninan.com +visitsumenep.com +oronorent.com +zbsv3.com +ukoys.com +lcdchq.com +jxxgygy.com +leici1940.com +jingxifa.com +sdxhtgcl.com +jpjdxs.com +lsrxs.com +gxhongzhuang.com +glae.cc +sjzyunyang.com +lmjcg.com diff --git a/code/public/_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/import-probe.summary.html b/code/public/_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/import-probe.summary.html new file mode 100644 index 0000000..f04c1fb --- /dev/null +++ b/code/public/_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/import-probe.summary.html @@ -0,0 +1 @@ +站点导入探测摘要

站点导入探测摘要

生成时间:2026-04-12 02:28:56

状态:失败

处理总数:25 / 通过:0 / 失败:25

域名状态失败阶段说明检查结果
cnzhenbang.com失败首页页面链路探测发现失败阶段。首页:HTTP 响应异常 0(失败)
搜索页:HTTP 响应异常 0(失败)
详情页:HTTP 响应异常 0(失败)
播放页:HTTP 响应异常 0(失败)
hyjssb.com失败首页页面链路探测发现失败阶段。首页:HTTP 响应异常 0(失败)
搜索页:HTTP 响应异常 0(失败)
详情页:HTTP 响应异常 0(失败)
播放页:HTTP 响应异常 0(失败)
sdxtwnc.com失败首页页面链路探测发现失败阶段。首页:HTTP 响应异常 0(失败)
搜索页:HTTP 响应异常 0(失败)
详情页:HTTP 响应异常 0(失败)
播放页:HTTP 响应异常 0(失败)
hbczccq.com失败首页页面链路探测发现失败阶段。首页:HTTP 响应异常 0(失败)
搜索页:HTTP 响应异常 0(失败)
详情页:HTTP 响应异常 0(失败)
播放页:HTTP 响应异常 0(失败)
lgyz.net失败首页页面链路探测发现失败阶段。首页:HTTP 响应异常 0(失败)
搜索页:HTTP 响应异常 0(失败)
详情页:HTTP 响应异常 0(失败)
播放页:HTTP 响应异常 0(失败)
pcslcl.com失败首页页面链路探测发现失败阶段。首页:HTTP 响应异常 0(失败)
搜索页:HTTP 响应异常 0(失败)
详情页:HTTP 响应异常 0(失败)
播放页:HTTP 响应异常 0(失败)
vikau.com失败首页页面链路探测发现失败阶段。首页:HTTP 响应异常 0(失败)
搜索页:HTTP 响应异常 0(失败)
详情页:HTTP 响应异常 0(失败)
播放页:HTTP 响应异常 0(失败)
codohealth.com失败首页页面链路探测发现失败阶段。首页:HTTP 响应异常 0(失败)
搜索页:HTTP 响应异常 0(失败)
详情页:HTTP 响应异常 0(失败)
播放页:HTTP 响应异常 0(失败)
nblssy.com失败首页页面链路探测发现失败阶段。首页:HTTP 响应异常 0(失败)
搜索页:HTTP 响应异常 0(失败)
详情页:HTTP 响应异常 0(失败)
播放页:HTTP 响应异常 0(失败)
caosheninan.com失败首页页面链路探测发现失败阶段。首页:HTTP 响应异常 0(失败)
搜索页:HTTP 响应异常 0(失败)
详情页:HTTP 响应异常 0(失败)
播放页:HTTP 响应异常 0(失败)
visitsumenep.com失败首页页面链路探测发现失败阶段。首页:HTTP 响应异常 0(失败)
搜索页:HTTP 响应异常 0(失败)
详情页:HTTP 响应异常 0(失败)
播放页:HTTP 响应异常 0(失败)
oronorent.com失败首页页面链路探测发现失败阶段。首页:HTTP 响应异常 0(失败)
搜索页:HTTP 响应异常 0(失败)
详情页:HTTP 响应异常 0(失败)
播放页:HTTP 响应异常 0(失败)
zbsv3.com失败首页页面链路探测发现失败阶段。首页:HTTP 响应异常 0(失败)
搜索页:HTTP 响应异常 0(失败)
详情页:HTTP 响应异常 0(失败)
播放页:HTTP 响应异常 0(失败)
ukoys.com失败首页页面链路探测发现失败阶段。首页:HTTP 响应异常 0(失败)
搜索页:HTTP 响应异常 0(失败)
详情页:HTTP 响应异常 0(失败)
播放页:HTTP 响应异常 0(失败)
lcdchq.com失败首页页面链路探测发现失败阶段。首页:HTTP 响应异常 0(失败)
搜索页:HTTP 响应异常 0(失败)
详情页:HTTP 响应异常 0(失败)
播放页:HTTP 响应异常 0(失败)
jxxgygy.com失败首页页面链路探测发现失败阶段。首页:HTTP 响应异常 0(失败)
搜索页:HTTP 响应异常 0(失败)
详情页:HTTP 响应异常 0(失败)
播放页:HTTP 响应异常 0(失败)
leici1940.com失败首页页面链路探测发现失败阶段。首页:HTTP 响应异常 0(失败)
搜索页:HTTP 响应异常 0(失败)
详情页:HTTP 响应异常 0(失败)
播放页:HTTP 响应异常 0(失败)
jingxifa.com失败首页页面链路探测发现失败阶段。首页:HTTP 响应异常 0(失败)
搜索页:HTTP 响应异常 0(失败)
详情页:HTTP 响应异常 0(失败)
播放页:HTTP 响应异常 0(失败)
sdxhtgcl.com失败首页页面链路探测发现失败阶段。首页:HTTP 响应异常 0(失败)
搜索页:HTTP 响应异常 0(失败)
详情页:HTTP 响应异常 0(失败)
播放页:HTTP 响应异常 0(失败)
jpjdxs.com失败首页页面链路探测发现失败阶段。首页:HTTP 响应异常 0(失败)
搜索页:HTTP 响应异常 0(失败)
详情页:HTTP 响应异常 0(失败)
播放页:HTTP 响应异常 0(失败)
lsrxs.com失败首页页面链路探测发现失败阶段。首页:HTTP 响应异常 0(失败)
搜索页:HTTP 响应异常 0(失败)
详情页:HTTP 响应异常 0(失败)
播放页:HTTP 响应异常 0(失败)
gxhongzhuang.com失败首页页面链路探测发现失败阶段。首页:HTTP 响应异常 0(失败)
搜索页:HTTP 响应异常 0(失败)
详情页:HTTP 响应异常 0(失败)
播放页:HTTP 响应异常 0(失败)
glae.cc失败首页页面链路探测发现失败阶段。首页:HTTP 响应异常 0(失败)
搜索页:HTTP 响应异常 0(失败)
详情页:HTTP 响应异常 0(失败)
播放页:HTTP 响应异常 0(失败)
sjzyunyang.com失败首页页面链路探测发现失败阶段。首页:HTTP 响应异常 0(失败)
搜索页:HTTP 响应异常 0(失败)
详情页:HTTP 响应异常 0(失败)
播放页:HTTP 响应异常 0(失败)
lmjcg.com失败首页页面链路探测发现失败阶段。首页:HTTP 响应异常 0(失败)
搜索页:HTTP 响应异常 0(失败)
详情页:HTTP 响应异常 0(失败)
播放页:HTTP 响应异常 0(失败)
\ No newline at end of file diff --git a/code/public/_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/import-probe.summary.json b/code/public/_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/import-probe.summary.json new file mode 100644 index 0000000..ccb6abf --- /dev/null +++ b/code/public/_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/import-probe.summary.json @@ -0,0 +1,2997 @@ +{ + "status": "failed", + "processed_count": 25, + "passed_count": 0, + "failed_count": 25, + "items": [ + { + "host": "cnzhenbang.com", + "status": "failed", + "message": "Trajectory probe found failed stages.", + "sample": { + "host": "cnzhenbang.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "相逢不识旧时人" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + }, + "checks": { + "home": { + "label": "首页", + "passed": false, + "url": "https://cnzhenbang.com/", + "path": "/", + "status": 0, + "detail": "http_0" + }, + "search": { + "label": "搜索", + "passed": false, + "url": "https://cnzhenbang.com/query?keyword=%E7%9B%B8%E9%80%A2%E4%B8%8D%E8%AF%86%E6%97%A7%E6%97%B6%E4%BA%BA", + "path": "/query?keyword=%E7%9B%B8%E9%80%A2%E4%B8%8D%E8%AF%86%E6%97%A7%E6%97%B6%E4%BA%BA", + "status": 0, + "detail": "http_0" + }, + "detail": { + "label": "详情", + "passed": false, + "url": "https://cnzhenbang.com/detail/xiang-feng-bu-shi-jiu-shi-ren-154229", + "path": "/detail/xiang-feng-bu-shi-jiu-shi-ren-154229", + "status": 0, + "detail": "http_0" + }, + "play": { + "label": "播放", + "passed": false, + "url": "https://cnzhenbang.com/play/xiang-feng-bu-shi-jiu-shi-ren-154229-douban-1", + "path": "/play/xiang-feng-bu-shi-jiu-shi-ren-154229-douban-1", + "status": 0, + "detail": "http_0" + } + }, + "failed_stage": "home", + "failed_stages": [ + "home", + "search", + "detail", + "play" + ], + "all_passed": false, + "probed_at": "2026-04-12T02:27:13+08:00", + "sample_result": { + "host": "cnzhenbang.com", + "status": "passed", + "message": "Auto sample discovered from video library.", + "sample_source": "video_auto_discovery", + "checked_candidates": 1, + "sample": { + "host": "cnzhenbang.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "相逢不识旧时人" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + } + } + }, + { + "host": "hyjssb.com", + "status": "failed", + "message": "Trajectory probe found failed stages.", + "sample": { + "host": "hyjssb.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "相逢不识旧时人" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + }, + "checks": { + "home": { + "label": "首页", + "passed": false, + "url": "https://hyjssb.com/", + "path": "/", + "status": 0, + "detail": "http_0" + }, + "search": { + "label": "搜索", + "passed": false, + "url": "https://hyjssb.com/get/index?keyword=%E7%9B%B8%E9%80%A2%E4%B8%8D%E8%AF%86%E6%97%A7%E6%97%B6%E4%BA%BA", + "path": "/get/index?keyword=%E7%9B%B8%E9%80%A2%E4%B8%8D%E8%AF%86%E6%97%A7%E6%97%B6%E4%BA%BA", + "status": 0, + "detail": "http_0" + }, + "detail": { + "label": "详情", + "passed": false, + "url": "https://hyjssb.com/movie/xiang-feng-bu-shi-jiu-shi-ren/154229", + "path": "/movie/xiang-feng-bu-shi-jiu-shi-ren/154229", + "status": 0, + "detail": "http_0" + }, + "play": { + "label": "播放", + "passed": false, + "url": "https://hyjssb.com/kan/154229-douban-1", + "path": "/kan/154229-douban-1", + "status": 0, + "detail": "http_0" + } + }, + "failed_stage": "home", + "failed_stages": [ + "home", + "search", + "detail", + "play" + ], + "all_passed": false, + "probed_at": "2026-04-12T02:27:17+08:00", + "sample_result": { + "host": "hyjssb.com", + "status": "passed", + "message": "Auto sample discovered from video library.", + "sample_source": "video_auto_discovery", + "checked_candidates": 1, + "sample": { + "host": "hyjssb.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "相逢不识旧时人" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + } + } + }, + { + "host": "sdxtwnc.com", + "status": "failed", + "message": "Trajectory probe found failed stages.", + "sample": { + "host": "sdxtwnc.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "相逢不识旧时人" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + }, + "checks": { + "home": { + "label": "首页", + "passed": false, + "url": "https://sdxtwnc.com/", + "path": "/", + "status": 0, + "detail": "http_0" + }, + "search": { + "label": "搜索", + "passed": false, + "url": "https://sdxtwnc.com/query?keyword=%E7%9B%B8%E9%80%A2%E4%B8%8D%E8%AF%86%E6%97%A7%E6%97%B6%E4%BA%BA", + "path": "/query?keyword=%E7%9B%B8%E9%80%A2%E4%B8%8D%E8%AF%86%E6%97%A7%E6%97%B6%E4%BA%BA", + "status": 0, + "detail": "http_0" + }, + "detail": { + "label": "详情", + "passed": false, + "url": "https://sdxtwnc.com/detail/xiang-feng-bu-shi-jiu-shi-ren-154229", + "path": "/detail/xiang-feng-bu-shi-jiu-shi-ren-154229", + "status": 0, + "detail": "http_0" + }, + "play": { + "label": "播放", + "passed": false, + "url": "https://sdxtwnc.com/play/xiang-feng-bu-shi-jiu-shi-ren-154229-douban-1", + "path": "/play/xiang-feng-bu-shi-jiu-shi-ren-154229-douban-1", + "status": 0, + "detail": "http_0" + } + }, + "failed_stage": "home", + "failed_stages": [ + "home", + "search", + "detail", + "play" + ], + "all_passed": false, + "probed_at": "2026-04-12T02:27:22+08:00", + "sample_result": { + "host": "sdxtwnc.com", + "status": "passed", + "message": "Auto sample discovered from video library.", + "sample_source": "video_auto_discovery", + "checked_candidates": 1, + "sample": { + "host": "sdxtwnc.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "相逢不识旧时人" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + } + } + }, + { + "host": "hbczccq.com", + "status": "failed", + "message": "Trajectory probe found failed stages.", + "sample": { + "host": "hbczccq.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "相逢不识旧时人" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + }, + "checks": { + "home": { + "label": "首页", + "passed": false, + "url": "https://hbczccq.com/", + "path": "/", + "status": 0, + "detail": "http_0" + }, + "search": { + "label": "搜索", + "passed": false, + "url": "https://hbczccq.com/find-keywords?keyword=%E7%9B%B8%E9%80%A2%E4%B8%8D%E8%AF%86%E6%97%A7%E6%97%B6%E4%BA%BA", + "path": "/find-keywords?keyword=%E7%9B%B8%E9%80%A2%E4%B8%8D%E8%AF%86%E6%97%A7%E6%97%B6%E4%BA%BA", + "status": 0, + "detail": "http_0" + }, + "detail": { + "label": "详情", + "passed": false, + "url": "https://hbczccq.com/vod/pinyin-xiang-feng-bu-shi-jiu-shi-ren", + "path": "/vod/pinyin-xiang-feng-bu-shi-jiu-shi-ren", + "status": 0, + "detail": "http_0" + }, + "play": { + "label": "播放", + "passed": false, + "url": "https://hbczccq.com/watch-154229/douban-1", + "path": "/watch-154229/douban-1", + "status": 0, + "detail": "http_0" + } + }, + "failed_stage": "home", + "failed_stages": [ + "home", + "search", + "detail", + "play" + ], + "all_passed": false, + "probed_at": "2026-04-12T02:27:26+08:00", + "sample_result": { + "host": "hbczccq.com", + "status": "passed", + "message": "Auto sample discovered from video library.", + "sample_source": "video_auto_discovery", + "checked_candidates": 1, + "sample": { + "host": "hbczccq.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "相逢不识旧时人" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + } + } + }, + { + "host": "lgyz.net", + "status": "failed", + "message": "Trajectory probe found failed stages.", + "sample": { + "host": "lgyz.net", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "相逢不识旧时人" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + }, + "checks": { + "home": { + "label": "首页", + "passed": false, + "url": "https://lgyz.net/", + "path": "/", + "status": 0, + "detail": "http_0" + }, + "search": { + "label": "搜索", + "passed": false, + "url": "https://lgyz.net/get.html?keyword=%E7%9B%B8%E9%80%A2%E4%B8%8D%E8%AF%86%E6%97%A7%E6%97%B6%E4%BA%BA", + "path": "/get.html?keyword=%E7%9B%B8%E9%80%A2%E4%B8%8D%E8%AF%86%E6%97%A7%E6%97%B6%E4%BA%BA", + "status": 0, + "detail": "http_0" + }, + "detail": { + "label": "详情", + "passed": false, + "url": "https://lgyz.net/movie/154229-xiang-feng-bu-shi-jiu-shi-ren", + "path": "/movie/154229-xiang-feng-bu-shi-jiu-shi-ren", + "status": 0, + "detail": "http_0" + }, + "play": { + "label": "播放", + "passed": false, + "url": "https://lgyz.net/kan/xiang-feng-bu-shi-jiu-shi-ren-154229/douban-1", + "path": "/kan/xiang-feng-bu-shi-jiu-shi-ren-154229/douban-1", + "status": 0, + "detail": "http_0" + } + }, + "failed_stage": "home", + "failed_stages": [ + "home", + "search", + "detail", + "play" + ], + "all_passed": false, + "probed_at": "2026-04-12T02:27:30+08:00", + "sample_result": { + "host": "lgyz.net", + "status": "passed", + "message": "Auto sample discovered from video library.", + "sample_source": "video_auto_discovery", + "checked_candidates": 1, + "sample": { + "host": "lgyz.net", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "相逢不识旧时人" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + } + } + }, + { + "host": "pcslcl.com", + "status": "failed", + "message": "Trajectory probe found failed stages.", + "sample": { + "host": "pcslcl.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "相逢不识旧时人" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + }, + "checks": { + "home": { + "label": "首页", + "passed": false, + "url": "https://pcslcl.com/", + "path": "/", + "status": 0, + "detail": "http_0" + }, + "search": { + "label": "搜索", + "passed": false, + "url": "https://pcslcl.com/get/keywords?keyword=%E7%9B%B8%E9%80%A2%E4%B8%8D%E8%AF%86%E6%97%A7%E6%97%B6%E4%BA%BA", + "path": "/get/keywords?keyword=%E7%9B%B8%E9%80%A2%E4%B8%8D%E8%AF%86%E6%97%A7%E6%97%B6%E4%BA%BA", + "status": 0, + "detail": "http_0" + }, + "detail": { + "label": "详情", + "passed": false, + "url": "https://pcslcl.com/dianying-xiang-feng-bu-shi-jiu-shi-ren-154229", + "path": "/dianying-xiang-feng-bu-shi-jiu-shi-ren-154229", + "status": 0, + "detail": "http_0" + }, + "play": { + "label": "播放", + "passed": false, + "url": "https://pcslcl.com/bf-xiang-feng-bu-shi-jiu-shi-ren-154229-douban-1", + "path": "/bf-xiang-feng-bu-shi-jiu-shi-ren-154229-douban-1", + "status": 0, + "detail": "http_0" + } + }, + "failed_stage": "home", + "failed_stages": [ + "home", + "search", + "detail", + "play" + ], + "all_passed": false, + "probed_at": "2026-04-12T02:27:35+08:00", + "sample_result": { + "host": "pcslcl.com", + "status": "passed", + "message": "Auto sample discovered from video library.", + "sample_source": "video_auto_discovery", + "checked_candidates": 1, + "sample": { + "host": "pcslcl.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "相逢不识旧时人" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + } + } + }, + { + "host": "vikau.com", + "status": "failed", + "message": "Trajectory probe found failed stages.", + "sample": { + "host": "vikau.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "相逢不识旧时人" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + }, + "checks": { + "home": { + "label": "首页", + "passed": false, + "url": "https://vikau.com/", + "path": "/", + "status": 0, + "detail": "http_0" + }, + "search": { + "label": "搜索", + "passed": false, + "url": "https://vikau.com/search-keywords?keyword=%E7%9B%B8%E9%80%A2%E4%B8%8D%E8%AF%86%E6%97%A7%E6%97%B6%E4%BA%BA", + "path": "/search-keywords?keyword=%E7%9B%B8%E9%80%A2%E4%B8%8D%E8%AF%86%E6%97%A7%E6%97%B6%E4%BA%BA", + "status": 0, + "detail": "http_0" + }, + "detail": { + "label": "详情", + "passed": false, + "url": "https://vikau.com/video/pinyin-xiang-feng-bu-shi-jiu-shi-ren", + "path": "/video/pinyin-xiang-feng-bu-shi-jiu-shi-ren", + "status": 0, + "detail": "http_0" + }, + "play": { + "label": "播放", + "passed": false, + "url": "https://vikau.com/video-154229/douban-1", + "path": "/video-154229/douban-1", + "status": 0, + "detail": "http_0" + } + }, + "failed_stage": "home", + "failed_stages": [ + "home", + "search", + "detail", + "play" + ], + "all_passed": false, + "probed_at": "2026-04-12T02:27:39+08:00", + "sample_result": { + "host": "vikau.com", + "status": "passed", + "message": "Auto sample discovered from video library.", + "sample_source": "video_auto_discovery", + "checked_candidates": 1, + "sample": { + "host": "vikau.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "相逢不识旧时人" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + } + } + }, + { + "host": "codohealth.com", + "status": "failed", + "message": "Trajectory probe found failed stages.", + "sample": { + "host": "codohealth.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "相逢不识旧时人" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + }, + "checks": { + "home": { + "label": "首页", + "passed": false, + "url": "https://codohealth.com/", + "path": "/", + "status": 0, + "detail": "http_0" + }, + "search": { + "label": "搜索", + "passed": false, + "url": "https://codohealth.com/get-home?keyword=%E7%9B%B8%E9%80%A2%E4%B8%8D%E8%AF%86%E6%97%A7%E6%97%B6%E4%BA%BA", + "path": "/get-home?keyword=%E7%9B%B8%E9%80%A2%E4%B8%8D%E8%AF%86%E6%97%A7%E6%97%B6%E4%BA%BA", + "status": 0, + "detail": "http_0" + }, + "detail": { + "label": "详情", + "passed": false, + "url": "https://codohealth.com/film/id-154229", + "path": "/film/id-154229", + "status": 0, + "detail": "http_0" + }, + "play": { + "label": "播放", + "passed": false, + "url": "https://codohealth.com/player-154229-douban-1", + "path": "/player-154229-douban-1", + "status": 0, + "detail": "http_0" + } + }, + "failed_stage": "home", + "failed_stages": [ + "home", + "search", + "detail", + "play" + ], + "all_passed": false, + "probed_at": "2026-04-12T02:27:43+08:00", + "sample_result": { + "host": "codohealth.com", + "status": "passed", + "message": "Auto sample discovered from video library.", + "sample_source": "video_auto_discovery", + "checked_candidates": 1, + "sample": { + "host": "codohealth.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "相逢不识旧时人" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + } + } + }, + { + "host": "nblssy.com", + "status": "failed", + "message": "Trajectory probe found failed stages.", + "sample": { + "host": "nblssy.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "相逢不识旧时人" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + }, + "checks": { + "home": { + "label": "首页", + "passed": false, + "url": "https://nblssy.com/", + "path": "/", + "status": 0, + "detail": "http_0" + }, + "search": { + "label": "搜索", + "passed": false, + "url": "https://nblssy.com/get-index?keyword=%E7%9B%B8%E9%80%A2%E4%B8%8D%E8%AF%86%E6%97%A7%E6%97%B6%E4%BA%BA", + "path": "/get-index?keyword=%E7%9B%B8%E9%80%A2%E4%B8%8D%E8%AF%86%E6%97%A7%E6%97%B6%E4%BA%BA", + "status": 0, + "detail": "http_0" + }, + "detail": { + "label": "详情", + "passed": false, + "url": "https://nblssy.com/film-154229-xiang-feng-bu-shi-jiu-shi-ren", + "path": "/film-154229-xiang-feng-bu-shi-jiu-shi-ren", + "status": 0, + "detail": "http_0" + }, + "play": { + "label": "播放", + "passed": false, + "url": "https://nblssy.com/player-154229-xiang-feng-bu-shi-jiu-shi-ren/douban-1", + "path": "/player-154229-xiang-feng-bu-shi-jiu-shi-ren/douban-1", + "status": 0, + "detail": "http_0" + } + }, + "failed_stage": "home", + "failed_stages": [ + "home", + "search", + "detail", + "play" + ], + "all_passed": false, + "probed_at": "2026-04-12T02:27:48+08:00", + "sample_result": { + "host": "nblssy.com", + "status": "passed", + "message": "Auto sample discovered from video library.", + "sample_source": "video_auto_discovery", + "checked_candidates": 1, + "sample": { + "host": "nblssy.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "相逢不识旧时人" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + } + } + }, + { + "host": "caosheninan.com", + "status": "failed", + "message": "Trajectory probe found failed stages.", + "sample": { + "host": "caosheninan.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "相逢不识旧时人" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + }, + "checks": { + "home": { + "label": "首页", + "passed": false, + "url": "https://caosheninan.com/", + "path": "/", + "status": 0, + "detail": "http_0" + }, + "search": { + "label": "搜索", + "passed": false, + "url": "https://caosheninan.com/search?keyword=%E7%9B%B8%E9%80%A2%E4%B8%8D%E8%AF%86%E6%97%A7%E6%97%B6%E4%BA%BA", + "path": "/search?keyword=%E7%9B%B8%E9%80%A2%E4%B8%8D%E8%AF%86%E6%97%A7%E6%97%B6%E4%BA%BA", + "status": 0, + "detail": "http_0" + }, + "detail": { + "label": "详情", + "passed": false, + "url": "https://caosheninan.com/video/xiang-feng-bu-shi-jiu-shi-ren-154229", + "path": "/video/xiang-feng-bu-shi-jiu-shi-ren-154229", + "status": 0, + "detail": "http_0" + }, + "play": { + "label": "播放", + "passed": false, + "url": "https://caosheninan.com/video/xiang-feng-bu-shi-jiu-shi-ren-154229-douban-1", + "path": "/video/xiang-feng-bu-shi-jiu-shi-ren-154229-douban-1", + "status": 0, + "detail": "http_0" + } + }, + "failed_stage": "home", + "failed_stages": [ + "home", + "search", + "detail", + "play" + ], + "all_passed": false, + "probed_at": "2026-04-12T02:27:52+08:00", + "sample_result": { + "host": "caosheninan.com", + "status": "passed", + "message": "Auto sample discovered from video library.", + "sample_source": "video_auto_discovery", + "checked_candidates": 1, + "sample": { + "host": "caosheninan.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "相逢不识旧时人" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + } + } + }, + { + "host": "visitsumenep.com", + "status": "failed", + "message": "Trajectory probe found failed stages.", + "sample": { + "host": "visitsumenep.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "相逢不识旧时人" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + }, + "checks": { + "home": { + "label": "首页", + "passed": false, + "url": "https://visitsumenep.com/", + "path": "/", + "status": 0, + "detail": "http_0" + }, + "search": { + "label": "搜索", + "passed": false, + "url": "https://visitsumenep.com/get/index?keyword=%E7%9B%B8%E9%80%A2%E4%B8%8D%E8%AF%86%E6%97%A7%E6%97%B6%E4%BA%BA", + "path": "/get/index?keyword=%E7%9B%B8%E9%80%A2%E4%B8%8D%E8%AF%86%E6%97%A7%E6%97%B6%E4%BA%BA", + "status": 0, + "detail": "http_0" + }, + "detail": { + "label": "详情", + "passed": false, + "url": "https://visitsumenep.com/neirong/xiang-feng-bu-shi-jiu-shi-ren/154229", + "path": "/neirong/xiang-feng-bu-shi-jiu-shi-ren/154229", + "status": 0, + "detail": "http_0" + }, + "play": { + "label": "播放", + "passed": false, + "url": "https://visitsumenep.com/bf/154229-douban-1", + "path": "/bf/154229-douban-1", + "status": 0, + "detail": "http_0" + } + }, + "failed_stage": "home", + "failed_stages": [ + "home", + "search", + "detail", + "play" + ], + "all_passed": false, + "probed_at": "2026-04-12T02:27:56+08:00", + "sample_result": { + "host": "visitsumenep.com", + "status": "passed", + "message": "Auto sample discovered from video library.", + "sample_source": "video_auto_discovery", + "checked_candidates": 1, + "sample": { + "host": "visitsumenep.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "相逢不识旧时人" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + } + } + }, + { + "host": "oronorent.com", + "status": "failed", + "message": "Trajectory probe found failed stages.", + "sample": { + "host": "oronorent.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "相逢不识旧时人" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + }, + "checks": { + "home": { + "label": "首页", + "passed": false, + "url": "https://oronorent.com/", + "path": "/", + "status": 0, + "detail": "http_0" + }, + "search": { + "label": "搜索", + "passed": false, + "url": "https://oronorent.com/get.html?keyword=%E7%9B%B8%E9%80%A2%E4%B8%8D%E8%AF%86%E6%97%A7%E6%97%B6%E4%BA%BA", + "path": "/get.html?keyword=%E7%9B%B8%E9%80%A2%E4%B8%8D%E8%AF%86%E6%97%A7%E6%97%B6%E4%BA%BA", + "status": 0, + "detail": "http_0" + }, + "detail": { + "label": "详情", + "passed": false, + "url": "https://oronorent.com/shipin/154229-xiang-feng-bu-shi-jiu-shi-ren", + "path": "/shipin/154229-xiang-feng-bu-shi-jiu-shi-ren", + "status": 0, + "detail": "http_0" + }, + "play": { + "label": "播放", + "passed": false, + "url": "https://oronorent.com/m3u8/xiang-feng-bu-shi-jiu-shi-ren-154229/douban-1", + "path": "/m3u8/xiang-feng-bu-shi-jiu-shi-ren-154229/douban-1", + "status": 0, + "detail": "http_0" + } + }, + "failed_stage": "home", + "failed_stages": [ + "home", + "search", + "detail", + "play" + ], + "all_passed": false, + "probed_at": "2026-04-12T02:28:00+08:00", + "sample_result": { + "host": "oronorent.com", + "status": "passed", + "message": "Auto sample discovered from video library.", + "sample_source": "video_auto_discovery", + "checked_candidates": 1, + "sample": { + "host": "oronorent.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "相逢不识旧时人" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + } + } + }, + { + "host": "zbsv3.com", + "status": "failed", + "message": "Trajectory probe found failed stages.", + "sample": { + "host": "zbsv3.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "相逢不识旧时人" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + }, + "checks": { + "home": { + "label": "首页", + "passed": false, + "url": "https://zbsv3.com/", + "path": "/", + "status": 0, + "detail": "http_0" + }, + "search": { + "label": "搜索", + "passed": false, + "url": "https://zbsv3.com/get-home?keyword=%E7%9B%B8%E9%80%A2%E4%B8%8D%E8%AF%86%E6%97%A7%E6%97%B6%E4%BA%BA", + "path": "/get-home?keyword=%E7%9B%B8%E9%80%A2%E4%B8%8D%E8%AF%86%E6%97%A7%E6%97%B6%E4%BA%BA", + "status": 0, + "detail": "http_0" + }, + "detail": { + "label": "详情", + "passed": false, + "url": "https://zbsv3.com/neirong/id-154229", + "path": "/neirong/id-154229", + "status": 0, + "detail": "http_0" + }, + "play": { + "label": "播放", + "passed": false, + "url": "https://zbsv3.com/bf-154229-douban-1", + "path": "/bf-154229-douban-1", + "status": 0, + "detail": "http_0" + } + }, + "failed_stage": "home", + "failed_stages": [ + "home", + "search", + "detail", + "play" + ], + "all_passed": false, + "probed_at": "2026-04-12T02:28:04+08:00", + "sample_result": { + "host": "zbsv3.com", + "status": "passed", + "message": "Auto sample discovered from video library.", + "sample_source": "video_auto_discovery", + "checked_candidates": 1, + "sample": { + "host": "zbsv3.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "相逢不识旧时人" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + } + } + }, + { + "host": "ukoys.com", + "status": "failed", + "message": "Trajectory probe found failed stages.", + "sample": { + "host": "ukoys.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "相逢不识旧时人" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + }, + "checks": { + "home": { + "label": "首页", + "passed": false, + "url": "https://ukoys.com/", + "path": "/", + "status": 0, + "detail": "http_0" + }, + "search": { + "label": "搜索", + "passed": false, + "url": "https://ukoys.com/get/index?keyword=%E7%9B%B8%E9%80%A2%E4%B8%8D%E8%AF%86%E6%97%A7%E6%97%B6%E4%BA%BA", + "path": "/get/index?keyword=%E7%9B%B8%E9%80%A2%E4%B8%8D%E8%AF%86%E6%97%A7%E6%97%B6%E4%BA%BA", + "status": 0, + "detail": "http_0" + }, + "detail": { + "label": "详情", + "passed": false, + "url": "https://ukoys.com/shipin/xiang-feng-bu-shi-jiu-shi-ren/154229", + "path": "/shipin/xiang-feng-bu-shi-jiu-shi-ren/154229", + "status": 0, + "detail": "http_0" + }, + "play": { + "label": "播放", + "passed": false, + "url": "https://ukoys.com/m3u8/154229-douban-1", + "path": "/m3u8/154229-douban-1", + "status": 0, + "detail": "http_0" + } + }, + "failed_stage": "home", + "failed_stages": [ + "home", + "search", + "detail", + "play" + ], + "all_passed": false, + "probed_at": "2026-04-12T02:28:09+08:00", + "sample_result": { + "host": "ukoys.com", + "status": "passed", + "message": "Auto sample discovered from video library.", + "sample_source": "video_auto_discovery", + "checked_candidates": 1, + "sample": { + "host": "ukoys.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "相逢不识旧时人" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + } + } + }, + { + "host": "lcdchq.com", + "status": "failed", + "message": "Trajectory probe found failed stages.", + "sample": { + "host": "lcdchq.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "相逢不识旧时人" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + }, + "checks": { + "home": { + "label": "首页", + "passed": false, + "url": "https://lcdchq.com/", + "path": "/", + "status": 0, + "detail": "http_0" + }, + "search": { + "label": "搜索", + "passed": false, + "url": "https://lcdchq.com/get.html?keyword=%E7%9B%B8%E9%80%A2%E4%B8%8D%E8%AF%86%E6%97%A7%E6%97%B6%E4%BA%BA", + "path": "/get.html?keyword=%E7%9B%B8%E9%80%A2%E4%B8%8D%E8%AF%86%E6%97%A7%E6%97%B6%E4%BA%BA", + "status": 0, + "detail": "http_0" + }, + "detail": { + "label": "详情", + "passed": false, + "url": "https://lcdchq.com/movie/154229-xiang-feng-bu-shi-jiu-shi-ren", + "path": "/movie/154229-xiang-feng-bu-shi-jiu-shi-ren", + "status": 0, + "detail": "http_0" + }, + "play": { + "label": "播放", + "passed": false, + "url": "https://lcdchq.com/kan/xiang-feng-bu-shi-jiu-shi-ren-154229/douban-1", + "path": "/kan/xiang-feng-bu-shi-jiu-shi-ren-154229/douban-1", + "status": 0, + "detail": "http_0" + } + }, + "failed_stage": "home", + "failed_stages": [ + "home", + "search", + "detail", + "play" + ], + "all_passed": false, + "probed_at": "2026-04-12T02:28:13+08:00", + "sample_result": { + "host": "lcdchq.com", + "status": "passed", + "message": "Auto sample discovered from video library.", + "sample_source": "video_auto_discovery", + "checked_candidates": 1, + "sample": { + "host": "lcdchq.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "相逢不识旧时人" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + } + } + }, + { + "host": "jxxgygy.com", + "status": "failed", + "message": "Trajectory probe found failed stages.", + "sample": { + "host": "jxxgygy.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "相逢不识旧时人" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + }, + "checks": { + "home": { + "label": "首页", + "passed": false, + "url": "https://jxxgygy.com/", + "path": "/", + "status": 0, + "detail": "http_0" + }, + "search": { + "label": "搜索", + "passed": false, + "url": "https://jxxgygy.com/get-home?keyword=%E7%9B%B8%E9%80%A2%E4%B8%8D%E8%AF%86%E6%97%A7%E6%97%B6%E4%BA%BA", + "path": "/get-home?keyword=%E7%9B%B8%E9%80%A2%E4%B8%8D%E8%AF%86%E6%97%A7%E6%97%B6%E4%BA%BA", + "status": 0, + "detail": "http_0" + }, + "detail": { + "label": "详情", + "passed": false, + "url": "https://jxxgygy.com/shipin/id-154229", + "path": "/shipin/id-154229", + "status": 0, + "detail": "http_0" + }, + "play": { + "label": "播放", + "passed": false, + "url": "https://jxxgygy.com/m3u8-154229-douban-1", + "path": "/m3u8-154229-douban-1", + "status": 0, + "detail": "http_0" + } + }, + "failed_stage": "home", + "failed_stages": [ + "home", + "search", + "detail", + "play" + ], + "all_passed": false, + "probed_at": "2026-04-12T02:28:17+08:00", + "sample_result": { + "host": "jxxgygy.com", + "status": "passed", + "message": "Auto sample discovered from video library.", + "sample_source": "video_auto_discovery", + "checked_candidates": 1, + "sample": { + "host": "jxxgygy.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "相逢不识旧时人" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + } + } + }, + { + "host": "leici1940.com", + "status": "failed", + "message": "Trajectory probe found failed stages.", + "sample": { + "host": "leici1940.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "相逢不识旧时人" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + }, + "checks": { + "home": { + "label": "首页", + "passed": false, + "url": "https://leici1940.com/", + "path": "/", + "status": 0, + "detail": "http_0" + }, + "search": { + "label": "搜索", + "passed": false, + "url": "https://leici1940.com/find?keyword=%E7%9B%B8%E9%80%A2%E4%B8%8D%E8%AF%86%E6%97%A7%E6%97%B6%E4%BA%BA", + "path": "/find?keyword=%E7%9B%B8%E9%80%A2%E4%B8%8D%E8%AF%86%E6%97%A7%E6%97%B6%E4%BA%BA", + "status": 0, + "detail": "http_0" + }, + "detail": { + "label": "详情", + "passed": false, + "url": "https://leici1940.com/vod/xiang-feng-bu-shi-jiu-shi-ren-154229", + "path": "/vod/xiang-feng-bu-shi-jiu-shi-ren-154229", + "status": 0, + "detail": "http_0" + }, + "play": { + "label": "播放", + "passed": false, + "url": "https://leici1940.com/watch/xiang-feng-bu-shi-jiu-shi-ren-154229-douban-1", + "path": "/watch/xiang-feng-bu-shi-jiu-shi-ren-154229-douban-1", + "status": 0, + "detail": "http_0" + } + }, + "failed_stage": "home", + "failed_stages": [ + "home", + "search", + "detail", + "play" + ], + "all_passed": false, + "probed_at": "2026-04-12T02:28:22+08:00", + "sample_result": { + "host": "leici1940.com", + "status": "passed", + "message": "Auto sample discovered from video library.", + "sample_source": "video_auto_discovery", + "checked_candidates": 1, + "sample": { + "host": "leici1940.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "相逢不识旧时人" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + } + } + }, + { + "host": "jingxifa.com", + "status": "failed", + "message": "Trajectory probe found failed stages.", + "sample": { + "host": "jingxifa.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "相逢不识旧时人" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + }, + "checks": { + "home": { + "label": "首页", + "passed": false, + "url": "https://jingxifa.com/", + "path": "/", + "status": 0, + "detail": "http_0" + }, + "search": { + "label": "搜索", + "passed": false, + "url": "https://jingxifa.com/get-index?keyword=%E7%9B%B8%E9%80%A2%E4%B8%8D%E8%AF%86%E6%97%A7%E6%97%B6%E4%BA%BA", + "path": "/get-index?keyword=%E7%9B%B8%E9%80%A2%E4%B8%8D%E8%AF%86%E6%97%A7%E6%97%B6%E4%BA%BA", + "status": 0, + "detail": "http_0" + }, + "detail": { + "label": "详情", + "passed": false, + "url": "https://jingxifa.com/xiangqing-154229-xiang-feng-bu-shi-jiu-shi-ren", + "path": "/xiangqing-154229-xiang-feng-bu-shi-jiu-shi-ren", + "status": 0, + "detail": "http_0" + }, + "play": { + "label": "播放", + "passed": false, + "url": "https://jingxifa.com/bofang-154229-xiang-feng-bu-shi-jiu-shi-ren/douban-1", + "path": "/bofang-154229-xiang-feng-bu-shi-jiu-shi-ren/douban-1", + "status": 0, + "detail": "http_0" + } + }, + "failed_stage": "home", + "failed_stages": [ + "home", + "search", + "detail", + "play" + ], + "all_passed": false, + "probed_at": "2026-04-12T02:28:26+08:00", + "sample_result": { + "host": "jingxifa.com", + "status": "passed", + "message": "Auto sample discovered from video library.", + "sample_source": "video_auto_discovery", + "checked_candidates": 1, + "sample": { + "host": "jingxifa.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "相逢不识旧时人" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + } + } + }, + { + "host": "sdxhtgcl.com", + "status": "failed", + "message": "Trajectory probe found failed stages.", + "sample": { + "host": "sdxhtgcl.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "相逢不识旧时人" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + }, + "checks": { + "home": { + "label": "首页", + "passed": false, + "url": "https://sdxhtgcl.com/", + "path": "/", + "status": 0, + "detail": "http_0" + }, + "search": { + "label": "搜索", + "passed": false, + "url": "https://sdxhtgcl.com/get.html?keyword=%E7%9B%B8%E9%80%A2%E4%B8%8D%E8%AF%86%E6%97%A7%E6%97%B6%E4%BA%BA", + "path": "/get.html?keyword=%E7%9B%B8%E9%80%A2%E4%B8%8D%E8%AF%86%E6%97%A7%E6%97%B6%E4%BA%BA", + "status": 0, + "detail": "http_0" + }, + "detail": { + "label": "详情", + "passed": false, + "url": "https://sdxhtgcl.com/neirong/154229-xiang-feng-bu-shi-jiu-shi-ren", + "path": "/neirong/154229-xiang-feng-bu-shi-jiu-shi-ren", + "status": 0, + "detail": "http_0" + }, + "play": { + "label": "播放", + "passed": false, + "url": "https://sdxhtgcl.com/bf/xiang-feng-bu-shi-jiu-shi-ren-154229/douban-1", + "path": "/bf/xiang-feng-bu-shi-jiu-shi-ren-154229/douban-1", + "status": 0, + "detail": "http_0" + } + }, + "failed_stage": "home", + "failed_stages": [ + "home", + "search", + "detail", + "play" + ], + "all_passed": false, + "probed_at": "2026-04-12T02:28:30+08:00", + "sample_result": { + "host": "sdxhtgcl.com", + "status": "passed", + "message": "Auto sample discovered from video library.", + "sample_source": "video_auto_discovery", + "checked_candidates": 1, + "sample": { + "host": "sdxhtgcl.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "相逢不识旧时人" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + } + } + }, + { + "host": "jpjdxs.com", + "status": "failed", + "message": "Trajectory probe found failed stages.", + "sample": { + "host": "jpjdxs.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "相逢不识旧时人" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + }, + "checks": { + "home": { + "label": "首页", + "passed": false, + "url": "https://jpjdxs.com/", + "path": "/", + "status": 0, + "detail": "http_0" + }, + "search": { + "label": "搜索", + "passed": false, + "url": "https://jpjdxs.com/get-index?keyword=%E7%9B%B8%E9%80%A2%E4%B8%8D%E8%AF%86%E6%97%A7%E6%97%B6%E4%BA%BA", + "path": "/get-index?keyword=%E7%9B%B8%E9%80%A2%E4%B8%8D%E8%AF%86%E6%97%A7%E6%97%B6%E4%BA%BA", + "status": 0, + "detail": "http_0" + }, + "detail": { + "label": "详情", + "passed": false, + "url": "https://jpjdxs.com/neirong-154229-xiang-feng-bu-shi-jiu-shi-ren", + "path": "/neirong-154229-xiang-feng-bu-shi-jiu-shi-ren", + "status": 0, + "detail": "http_0" + }, + "play": { + "label": "播放", + "passed": false, + "url": "https://jpjdxs.com/bf-154229-xiang-feng-bu-shi-jiu-shi-ren/douban-1", + "path": "/bf-154229-xiang-feng-bu-shi-jiu-shi-ren/douban-1", + "status": 0, + "detail": "http_0" + } + }, + "failed_stage": "home", + "failed_stages": [ + "home", + "search", + "detail", + "play" + ], + "all_passed": false, + "probed_at": "2026-04-12T02:28:35+08:00", + "sample_result": { + "host": "jpjdxs.com", + "status": "passed", + "message": "Auto sample discovered from video library.", + "sample_source": "video_auto_discovery", + "checked_candidates": 1, + "sample": { + "host": "jpjdxs.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "相逢不识旧时人" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + } + } + }, + { + "host": "lsrxs.com", + "status": "failed", + "message": "Trajectory probe found failed stages.", + "sample": { + "host": "lsrxs.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "相逢不识旧时人" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + }, + "checks": { + "home": { + "label": "首页", + "passed": false, + "url": "https://lsrxs.com/", + "path": "/", + "status": 0, + "detail": "http_0" + }, + "search": { + "label": "搜索", + "passed": false, + "url": "https://lsrxs.com/search-index?keyword=%E7%9B%B8%E9%80%A2%E4%B8%8D%E8%AF%86%E6%97%A7%E6%97%B6%E4%BA%BA", + "path": "/search-index?keyword=%E7%9B%B8%E9%80%A2%E4%B8%8D%E8%AF%86%E6%97%A7%E6%97%B6%E4%BA%BA", + "status": 0, + "detail": "http_0" + }, + "detail": { + "label": "详情", + "passed": false, + "url": "https://lsrxs.com/video-154229-xiang-feng-bu-shi-jiu-shi-ren", + "path": "/video-154229-xiang-feng-bu-shi-jiu-shi-ren", + "status": 0, + "detail": "http_0" + }, + "play": { + "label": "播放", + "passed": false, + "url": "https://lsrxs.com/video-154229-xiang-feng-bu-shi-jiu-shi-ren/douban-1", + "path": "/video-154229-xiang-feng-bu-shi-jiu-shi-ren/douban-1", + "status": 0, + "detail": "http_0" + } + }, + "failed_stage": "home", + "failed_stages": [ + "home", + "search", + "detail", + "play" + ], + "all_passed": false, + "probed_at": "2026-04-12T02:28:39+08:00", + "sample_result": { + "host": "lsrxs.com", + "status": "passed", + "message": "Auto sample discovered from video library.", + "sample_source": "video_auto_discovery", + "checked_candidates": 1, + "sample": { + "host": "lsrxs.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "相逢不识旧时人" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + } + } + }, + { + "host": "gxhongzhuang.com", + "status": "failed", + "message": "Trajectory probe found failed stages.", + "sample": { + "host": "gxhongzhuang.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "相逢不识旧时人" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + }, + "checks": { + "home": { + "label": "首页", + "passed": false, + "url": "https://gxhongzhuang.com/", + "path": "/", + "status": 0, + "detail": "http_0" + }, + "search": { + "label": "搜索", + "passed": false, + "url": "https://gxhongzhuang.com/search/home?keyword=%E7%9B%B8%E9%80%A2%E4%B8%8D%E8%AF%86%E6%97%A7%E6%97%B6%E4%BA%BA", + "path": "/search/home?keyword=%E7%9B%B8%E9%80%A2%E4%B8%8D%E8%AF%86%E6%97%A7%E6%97%B6%E4%BA%BA", + "status": 0, + "detail": "http_0" + }, + "detail": { + "label": "详情", + "passed": false, + "url": "https://gxhongzhuang.com/video/154229", + "path": "/video/154229", + "status": 0, + "detail": "http_0" + }, + "play": { + "label": "播放", + "passed": false, + "url": "https://gxhongzhuang.com/video/154229/douban-1", + "path": "/video/154229/douban-1", + "status": 0, + "detail": "http_0" + } + }, + "failed_stage": "home", + "failed_stages": [ + "home", + "search", + "detail", + "play" + ], + "all_passed": false, + "probed_at": "2026-04-12T02:28:43+08:00", + "sample_result": { + "host": "gxhongzhuang.com", + "status": "passed", + "message": "Auto sample discovered from video library.", + "sample_source": "video_auto_discovery", + "checked_candidates": 1, + "sample": { + "host": "gxhongzhuang.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "相逢不识旧时人" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + } + } + }, + { + "host": "glae.cc", + "status": "failed", + "message": "Trajectory probe found failed stages.", + "sample": { + "host": "glae.cc", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "相逢不识旧时人" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + }, + "checks": { + "home": { + "label": "首页", + "passed": false, + "url": "https://glae.cc/", + "path": "/", + "status": 0, + "detail": "http_0" + }, + "search": { + "label": "搜索", + "passed": false, + "url": "https://glae.cc/get/keywords?keyword=%E7%9B%B8%E9%80%A2%E4%B8%8D%E8%AF%86%E6%97%A7%E6%97%B6%E4%BA%BA", + "path": "/get/keywords?keyword=%E7%9B%B8%E9%80%A2%E4%B8%8D%E8%AF%86%E6%97%A7%E6%97%B6%E4%BA%BA", + "status": 0, + "detail": "http_0" + }, + "detail": { + "label": "详情", + "passed": false, + "url": "https://glae.cc/xiangqing-xiang-feng-bu-shi-jiu-shi-ren-154229", + "path": "/xiangqing-xiang-feng-bu-shi-jiu-shi-ren-154229", + "status": 0, + "detail": "http_0" + }, + "play": { + "label": "播放", + "passed": false, + "url": "https://glae.cc/bofang-xiang-feng-bu-shi-jiu-shi-ren-154229-douban-1", + "path": "/bofang-xiang-feng-bu-shi-jiu-shi-ren-154229-douban-1", + "status": 0, + "detail": "http_0" + } + }, + "failed_stage": "home", + "failed_stages": [ + "home", + "search", + "detail", + "play" + ], + "all_passed": false, + "probed_at": "2026-04-12T02:28:47+08:00", + "sample_result": { + "host": "glae.cc", + "status": "passed", + "message": "Auto sample discovered from video library.", + "sample_source": "video_auto_discovery", + "checked_candidates": 1, + "sample": { + "host": "glae.cc", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "相逢不识旧时人" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + } + } + }, + { + "host": "sjzyunyang.com", + "status": "failed", + "message": "Trajectory probe found failed stages.", + "sample": { + "host": "sjzyunyang.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "相逢不识旧时人" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + }, + "checks": { + "home": { + "label": "首页", + "passed": false, + "url": "https://sjzyunyang.com/", + "path": "/", + "status": 0, + "detail": "http_0" + }, + "search": { + "label": "搜索", + "passed": false, + "url": "https://sjzyunyang.com/query/keywords?keyword=%E7%9B%B8%E9%80%A2%E4%B8%8D%E8%AF%86%E6%97%A7%E6%97%B6%E4%BA%BA", + "path": "/query/keywords?keyword=%E7%9B%B8%E9%80%A2%E4%B8%8D%E8%AF%86%E6%97%A7%E6%97%B6%E4%BA%BA", + "status": 0, + "detail": "http_0" + }, + "detail": { + "label": "详情", + "passed": false, + "url": "https://sjzyunyang.com/detail-xiang-feng-bu-shi-jiu-shi-ren-154229", + "path": "/detail-xiang-feng-bu-shi-jiu-shi-ren-154229", + "status": 0, + "detail": "http_0" + }, + "play": { + "label": "播放", + "passed": false, + "url": "https://sjzyunyang.com/play-xiang-feng-bu-shi-jiu-shi-ren-154229-douban-1", + "path": "/play-xiang-feng-bu-shi-jiu-shi-ren-154229-douban-1", + "status": 0, + "detail": "http_0" + } + }, + "failed_stage": "home", + "failed_stages": [ + "home", + "search", + "detail", + "play" + ], + "all_passed": false, + "probed_at": "2026-04-12T02:28:52+08:00", + "sample_result": { + "host": "sjzyunyang.com", + "status": "passed", + "message": "Auto sample discovered from video library.", + "sample_source": "video_auto_discovery", + "checked_candidates": 1, + "sample": { + "host": "sjzyunyang.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "相逢不识旧时人" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + } + } + }, + { + "host": "lmjcg.com", + "status": "failed", + "message": "Trajectory probe found failed stages.", + "sample": { + "host": "lmjcg.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "相逢不识旧时人" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + }, + "checks": { + "home": { + "label": "首页", + "passed": false, + "url": "https://lmjcg.com/", + "path": "/", + "status": 0, + "detail": "http_0" + }, + "search": { + "label": "搜索", + "passed": false, + "url": "https://lmjcg.com/get-keywords?keyword=%E7%9B%B8%E9%80%A2%E4%B8%8D%E8%AF%86%E6%97%A7%E6%97%B6%E4%BA%BA", + "path": "/get-keywords?keyword=%E7%9B%B8%E9%80%A2%E4%B8%8D%E8%AF%86%E6%97%A7%E6%97%B6%E4%BA%BA", + "status": 0, + "detail": "http_0" + }, + "detail": { + "label": "详情", + "passed": false, + "url": "https://lmjcg.com/film/pinyin-xiang-feng-bu-shi-jiu-shi-ren", + "path": "/film/pinyin-xiang-feng-bu-shi-jiu-shi-ren", + "status": 0, + "detail": "http_0" + }, + "play": { + "label": "播放", + "passed": false, + "url": "https://lmjcg.com/player-154229/douban-1", + "path": "/player-154229/douban-1", + "status": 0, + "detail": "http_0" + } + }, + "failed_stage": "home", + "failed_stages": [ + "home", + "search", + "detail", + "play" + ], + "all_passed": false, + "probed_at": "2026-04-12T02:28:56+08:00", + "sample_result": { + "host": "lmjcg.com", + "status": "passed", + "message": "Auto sample discovered from video library.", + "sample_source": "video_auto_discovery", + "checked_candidates": 1, + "sample": { + "host": "lmjcg.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "相逢不识旧时人" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + } + } + } + ], + "meta": { + "rows_total": 25, + "inserted_count": 25, + "skipped_existing_count": 0, + "skipped_empty_domain_count": 0, + "skipped_template_missing_count": 0, + "skipped_duplicate_in_file_count": 0, + "strategy_profile_counts": { + "standard": 25 + } + }, + "generated_at": "2026-04-12T02:28:56+08:00", + "summary_json_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/import-probe.summary.json", + "summary_html_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/import-probe.summary.html" +} diff --git a/code/public/_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/uploaded.xlsx b/code/public/_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/uploaded.xlsx new file mode 100644 index 0000000..451146b Binary files /dev/null and b/code/public/_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/uploaded.xlsx differ diff --git a/code/public/_admin_templates/domain-import-runs/20260412/022856_excel_import_0b446f/uploaded.xlsx b/code/public/_admin_templates/domain-import-runs/20260412/022856_excel_import_0b446f/uploaded.xlsx new file mode 100644 index 0000000..451146b Binary files /dev/null and b/code/public/_admin_templates/domain-import-runs/20260412/022856_excel_import_0b446f/uploaded.xlsx differ diff --git a/code/public/_admin_templates/domain-import-runs/20260414/205224_excel_import_c12775/hosts.txt b/code/public/_admin_templates/domain-import-runs/20260414/205224_excel_import_c12775/hosts.txt new file mode 100644 index 0000000..b8f64c9 --- /dev/null +++ b/code/public/_admin_templates/domain-import-runs/20260414/205224_excel_import_c12775/hosts.txt @@ -0,0 +1 @@ +gz-yxsw.com diff --git a/code/public/_admin_templates/domain-import-runs/20260414/205224_excel_import_c12775/import-probe.summary.html b/code/public/_admin_templates/domain-import-runs/20260414/205224_excel_import_c12775/import-probe.summary.html new file mode 100644 index 0000000..f6084fd --- /dev/null +++ b/code/public/_admin_templates/domain-import-runs/20260414/205224_excel_import_c12775/import-probe.summary.html @@ -0,0 +1 @@ +站点导入探测摘要

站点导入探测摘要

生成时间:2026-04-14 20:53:09

状态:失败

处理总数:1 / 通过:0 / 失败:1

域名状态失败阶段说明检查结果
gz-yxsw.com失败首页页面链路探测发现失败阶段。首页:HTTP 响应异常 0(失败)
搜索页:正常(失败)
详情页:正常(失败)
播放页:正常(失败)
\ No newline at end of file diff --git a/code/public/_admin_templates/domain-import-runs/20260414/205224_excel_import_c12775/import-probe.summary.json b/code/public/_admin_templates/domain-import-runs/20260414/205224_excel_import_c12775/import-probe.summary.json new file mode 100644 index 0000000..edda32f --- /dev/null +++ b/code/public/_admin_templates/domain-import-runs/20260414/205224_excel_import_c12775/import-probe.summary.json @@ -0,0 +1,138 @@ +{ + "status": "failed", + "processed_count": 1, + "passed_count": 0, + "failed_count": 1, + "items": [ + { + "host": "gz-yxsw.com", + "status": "failed", + "message": "Trajectory probe found failed stages.", + "sample": { + "host": "gz-yxsw.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "欧美日韩精品在线观看" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + }, + "checks": { + "home": { + "label": "首页", + "passed": false, + "url": "https://gz-yxsw.com/", + "path": "/", + "status": 0, + "detail": "http_0" + }, + "search": { + "label": "搜索", + "passed": true, + "url": "https://gz-yxsw.com/get/keywords?keyword=%E6%AC%A7%E7%BE%8E%E6%97%A5%E9%9F%A9%E7%B2%BE%E5%93%81%E5%9C%A8%E7%BA%BF%E8%A7%82%E7%9C%8B", + "path": "/get/keywords?keyword=%E6%AC%A7%E7%BE%8E%E6%97%A5%E9%9F%A9%E7%B2%BE%E5%93%81%E5%9C%A8%E7%BA%BF%E8%A7%82%E7%9C%8B", + "status": 200, + "detail": "ok" + }, + "detail": { + "label": "详情", + "passed": true, + "url": "https://gz-yxsw.com/shipin-xiang-feng-bu-shi-jiu-shi-ren-154229", + "path": "/shipin-xiang-feng-bu-shi-jiu-shi-ren-154229", + "status": 200, + "detail": "ok" + }, + "play": { + "label": "播放", + "passed": true, + "url": "https://gz-yxsw.com/m3u8-xiang-feng-bu-shi-jiu-shi-ren-154229-douban-1", + "path": "/m3u8-xiang-feng-bu-shi-jiu-shi-ren-154229-douban-1", + "status": 200, + "detail": "ok" + } + }, + "failed_stage": "home", + "failed_stages": [ + "home" + ], + "all_passed": false, + "probed_at": "2026-04-14T20:53:09+08:00", + "sample_result": { + "host": "gz-yxsw.com", + "status": "passed", + "message": "Auto sample discovered from video library.", + "sample_source": "video_auto_discovery", + "checked_candidates": 1, + "sample": { + "host": "gz-yxsw.com", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "欧美日韩精品在线观看" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + } + } + } + ], + "meta": { + "rows_total": 1, + "inserted_count": 1, + "skipped_existing_count": 0, + "skipped_empty_domain_count": 0, + "skipped_template_missing_count": 0, + "skipped_duplicate_in_file_count": 0, + "strategy_profile_counts": { + "standard": 1 + } + }, + "generated_at": "2026-04-14T20:53:09+08:00", + "summary_json_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-import-runs/20260414/205224_excel_import_c12775/import-probe.summary.json", + "summary_html_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-import-runs/20260414/205224_excel_import_c12775/import-probe.summary.html" +} diff --git a/code/public/_admin_templates/domain-import-runs/20260414/205224_excel_import_c12775/uploaded.xlsx b/code/public/_admin_templates/domain-import-runs/20260414/205224_excel_import_c12775/uploaded.xlsx new file mode 100644 index 0000000..b5d4292 Binary files /dev/null and b/code/public/_admin_templates/domain-import-runs/20260414/205224_excel_import_c12775/uploaded.xlsx differ diff --git a/code/public/_admin_templates/domain-import-runs/manual_test/hosts.txt b/code/public/_admin_templates/domain-import-runs/manual_test/hosts.txt new file mode 100644 index 0000000..140ebf8 --- /dev/null +++ b/code/public/_admin_templates/domain-import-runs/manual_test/hosts.txt @@ -0,0 +1 @@ +chuanjiafeng.net diff --git a/code/public/_admin_templates/domain-import-runs/manual_test/import-probe.summary.html b/code/public/_admin_templates/domain-import-runs/manual_test/import-probe.summary.html new file mode 100644 index 0000000..5f42b95 --- /dev/null +++ b/code/public/_admin_templates/domain-import-runs/manual_test/import-probe.summary.html @@ -0,0 +1 @@ +Domain Import Probe Summary

Domain Import Probe Summary

generated_at: 2026-04-10T14:59:37+08:00

status: passed

processed: 1 / passed: 1 / failed: 0

hoststatusfailed_stagemessagechecks
chuanjiafeng.netpassedTrajectory probe passed.home:ok@200
search:ok@200
detail:ok@200
play:ok@200
\ No newline at end of file diff --git a/code/public/_admin_templates/domain-import-runs/manual_test/import-probe.summary.json b/code/public/_admin_templates/domain-import-runs/manual_test/import-probe.summary.json new file mode 100644 index 0000000..ccc268f --- /dev/null +++ b/code/public/_admin_templates/domain-import-runs/manual_test/import-probe.summary.json @@ -0,0 +1,126 @@ +{ + "status": "passed", + "processed_count": 1, + "passed_count": 1, + "failed_count": 0, + "items": [ + { + "host": "chuanjiafeng.net", + "status": "passed", + "message": "Trajectory probe passed.", + "sample": { + "host": "chuanjiafeng.net", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "相逢不识旧时人" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + }, + "checks": { + "home": { + "label": "首页", + "passed": true, + "url": "https://chuanjiafeng.net/", + "path": "/", + "status": 200, + "detail": "ok" + }, + "search": { + "label": "搜索", + "passed": true, + "url": "https://chuanjiafeng.net/get.html?keyword=%E7%9B%B8%E9%80%A2%E4%B8%8D%E8%AF%86%E6%97%A7%E6%97%B6%E4%BA%BA", + "path": "/get.html?keyword=%E7%9B%B8%E9%80%A2%E4%B8%8D%E8%AF%86%E6%97%A7%E6%97%B6%E4%BA%BA", + "status": 200, + "detail": "ok" + }, + "detail": { + "label": "详情", + "passed": true, + "url": "https://chuanjiafeng.net/film/154229-xiang-feng-bu-shi-jiu-shi-ren", + "path": "/film/154229-xiang-feng-bu-shi-jiu-shi-ren", + "status": 200, + "detail": "ok" + }, + "play": { + "label": "播放", + "passed": true, + "url": "https://chuanjiafeng.net/player/xiang-feng-bu-shi-jiu-shi-ren-154229/douban-1", + "path": "/player/xiang-feng-bu-shi-jiu-shi-ren-154229/douban-1", + "status": 200, + "detail": "ok" + } + }, + "failed_stage": "", + "failed_stages": [], + "all_passed": true, + "probed_at": "2026-04-10T14:59:37+08:00", + "sample_result": { + "host": "chuanjiafeng.net", + "status": "passed", + "message": "Auto sample discovered from video library.", + "sample_source": "video_auto_discovery", + "checked_candidates": 1, + "sample": { + "host": "chuanjiafeng.net", + "video": { + "v_id": 154229, + "v_name": "相逢不识旧时人", + "v_name_en": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "detail": { + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren" + }, + "search": { + "search_keyword": "相逢不识旧时人" + }, + "category": { + "category_parent": "duan-ju-da-quan", + "category_child": "gu-zhuang-xian-xia" + }, + "play": { + "play_type": "douban", + "play_index": 1, + "episode_name": "全集完结" + }, + "runtime_acceptance": { + "samples": [ + { + "video_id": 154229, + "forge_id": 1 + } + ] + } + } + } + } + ], + "meta": [], + "generated_at": "2026-04-10T14:59:37+08:00", + "summary_json_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-import-runs/manual_test/import-probe.summary.json", + "summary_html_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-import-runs/manual_test/import-probe.summary.html" +} diff --git a/code/public/_admin_templates/domain-seo-external/latest/aizhan-keyword-attention.summary.html b/code/public/_admin_templates/domain-seo-external/latest/aizhan-keyword-attention.summary.html new file mode 100644 index 0000000..3440d77 --- /dev/null +++ b/code/public/_admin_templates/domain-seo-external/latest/aizhan-keyword-attention.summary.html @@ -0,0 +1 @@ +Aizhan Keyword Attention Queue

Aizhan Keyword Attention Queue

当前队列优先收爱站关键词结果面里需要关注的域名:验证码、抓取阻塞、0词、0来路。

host_count
46
queue_count
44
ready_count
46
captcha_count
0
blocked_count
0
hostlevelreasonsbaidu_pc_ip_rangebaidu_mobile_ip_rangepc_keyword_countmobile_keyword_countrecommended_action
aleliked.comwarningkeyword_zero, traffic_zero0 ~ 00 ~ 000当前更像冷启动阶段,建议继续观察收录探测和页面供给,再看爱站词数是否开始抬升。
\ No newline at end of file diff --git a/code/public/_admin_templates/domain-seo-external/latest/aizhan-keyword-attention.summary.json b/code/public/_admin_templates/domain-seo-external/latest/aizhan-keyword-attention.summary.json new file mode 100644 index 0000000..d871fd0 --- /dev/null +++ b/code/public/_admin_templates/domain-seo-external/latest/aizhan-keyword-attention.summary.json @@ -0,0 +1,33 @@ +{ + "generated_at": "2026-04-10T17:58:03+08:00", + "mode": "aizhan_keyword_attention", + "host_count": 46, + "queue_count": 44, + "ready_count": 46, + "captcha_count": 0, + "blocked_count": 0, + "items": [ + { + "host": "aleliked.com", + "attention_level": "warning", + "reason_codes": [ + "keyword_zero", + "traffic_zero" + ], + "reason_summary": "PC/移动词数均为 0;百度来路区间仍为 0 ~ 0", + "recommended_action": "当前更像冷启动阶段,建议继续观察收录探测和页面供给,再看爱站词数是否开始抬升。", + "status": "ready", + "site_title": "", + "baidu_pc_ip_range": "0 ~ 0", + "baidu_mobile_ip_range": "0 ~ 0", + "pc_keyword_count": 0, + "mobile_keyword_count": 0, + "pc_rank_url": "https://baidurank.aizhan.com/baidu/aleliked.com", + "mobile_rank_url": "https://baidurank.aizhan.com/mobile/aleliked.com", + "probed_at": "2026-04-10T17:57:27+08:00" + } + ], + "note": "当前队列优先收爱站关键词结果面里需要关注的域名:验证码、抓取阻塞、0词、0来路。", + "summary_json_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-seo-external/latest/aizhan-keyword-attention.summary.json", + "summary_html_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-seo-external/latest/aizhan-keyword-attention.summary.html" +} diff --git a/code/public/_admin_templates/domain-seo-external/latest/aizhan-keyword-probe.summary.html b/code/public/_admin_templates/domain-seo-external/latest/aizhan-keyword-probe.summary.html new file mode 100644 index 0000000..7fbb376 --- /dev/null +++ b/code/public/_admin_templates/domain-seo-external/latest/aizhan-keyword-probe.summary.html @@ -0,0 +1 @@ +Aizhan Keyword Probe Summary

爱站关键词摘要

generated_at: 2026-04-10T17:52:15+08:00

当前第一版优先抓爱站综合查询页里的可见基础指标:百度来路区间、PC/移动关键词数、对应排名页入口。如果命中风控或结构异常,也会明确沉淀状态。

host_count
3
ready
3
captcha
0
blocked
0
hoststatussite_titlebaidu_pc_ip_rangebaidu_mobile_ip_rangepc_keyword_countmobile_keyword_countpage_titleprobed_at
aleliked.comready0 ~ 00 ~ 000aleliked.com的综合查询_爱站网2026-04-10T17:52:13+08:00
beikaifloors.comready湖州优越木业有限公司0 ~ 00 ~ 000beikaifloors.com的综合查询_湖州优越木业有限公司_爱站网2026-04-10T17:52:14+08:00
caufe.comready0 ~ 00 ~ 000caufe.com的综合查询_爱站网2026-04-10T17:52:15+08:00
\ No newline at end of file diff --git a/code/public/_admin_templates/domain-seo-external/latest/aizhan-keyword-probe.summary.json b/code/public/_admin_templates/domain-seo-external/latest/aizhan-keyword-probe.summary.json new file mode 100644 index 0000000..72535ab --- /dev/null +++ b/code/public/_admin_templates/domain-seo-external/latest/aizhan-keyword-probe.summary.json @@ -0,0 +1,68 @@ +{ + "generated_at": "2026-04-10T17:52:15+08:00", + "mode": "aizhan_keyword_probe", + "engine": "aizhan_cha", + "host_count": 3, + "status_buckets": { + "ready": 3, + "captcha": 0, + "blocked": 0, + "unknown": 0 + }, + "items": [ + { + "host": "aleliked.com", + "status": "ready", + "http_status": 200, + "final_url": "https://www.aizhan.com/cha/aleliked.com/", + "page_title": "aleliked.com的综合查询_爱站网", + "site_title": "", + "query_page_url": "https://www.aizhan.com/cha/aleliked.com/", + "baidu_pc_ip_range": "0 ~ 0", + "baidu_mobile_ip_range": "0 ~ 0", + "pc_keyword_count": 0, + "mobile_keyword_count": 0, + "pc_rank_url": "https://baidurank.aizhan.com/baidu/aleliked.com", + "mobile_rank_url": "https://baidurank.aizhan.com/mobile/aleliked.com", + "error_message": "", + "probed_at": "2026-04-10T17:52:13+08:00" + }, + { + "host": "beikaifloors.com", + "status": "ready", + "http_status": 200, + "final_url": "https://www.aizhan.com/cha/beikaifloors.com/", + "page_title": "beikaifloors.com的综合查询_湖州优越木业有限公司_爱站网", + "site_title": "湖州优越木业有限公司", + "query_page_url": "https://www.aizhan.com/cha/beikaifloors.com/", + "baidu_pc_ip_range": "0 ~ 0", + "baidu_mobile_ip_range": "0 ~ 0", + "pc_keyword_count": 0, + "mobile_keyword_count": 0, + "pc_rank_url": "https://baidurank.aizhan.com/baidu/beikaifloors.com", + "mobile_rank_url": "https://baidurank.aizhan.com/mobile/beikaifloors.com", + "error_message": "", + "probed_at": "2026-04-10T17:52:14+08:00" + }, + { + "host": "caufe.com", + "status": "ready", + "http_status": 200, + "final_url": "https://www.aizhan.com/cha/caufe.com/", + "page_title": "caufe.com的综合查询_爱站网", + "site_title": "", + "query_page_url": "https://www.aizhan.com/cha/caufe.com/", + "baidu_pc_ip_range": "0 ~ 0", + "baidu_mobile_ip_range": "0 ~ 0", + "pc_keyword_count": 0, + "mobile_keyword_count": 0, + "pc_rank_url": "https://baidurank.aizhan.com/baidu/caufe.com", + "mobile_rank_url": "https://baidurank.aizhan.com/mobile/caufe.com", + "error_message": "", + "probed_at": "2026-04-10T17:52:15+08:00" + } + ], + "note": "当前第一版优先抓爱站综合查询页里的可见基础指标:百度来路区间、PC/移动关键词数、对应排名页入口。如果命中风控或结构异常,也会明确沉淀状态。", + "summary_json_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-seo-external/latest/aizhan-keyword-probe.summary.json", + "summary_html_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-seo-external/latest/aizhan-keyword-probe.summary.html" +} diff --git a/code/public/_admin_templates/domain-seo-external/latest/aizhan-keyword-trend.summary.html b/code/public/_admin_templates/domain-seo-external/latest/aizhan-keyword-trend.summary.html new file mode 100644 index 0000000..9a3a16d --- /dev/null +++ b/code/public/_admin_templates/domain-seo-external/latest/aizhan-keyword-trend.summary.html @@ -0,0 +1 @@ +Aizhan Keyword Trend Summary

Aizhan Keyword Trend Summary

当前趋势是爱站关键词 proxy trend:复用摘要和异常队列,优先判断这批域名当前处于 active、warmup、cold 还是 blocked。

health_label
active
ready_count
46
queue_count
44
keyword_ready_count
2
traffic_ready_count
7
zero_keyword_count
44
hostbaidu_pc_ip_rangebaidu_mobile_ip_rangepc_keyword_countmobile_keyword_countprobed_at
duoguli.net1 ~ 11 ~ 1012026-04-10T17:57:32+08:00
\ No newline at end of file diff --git a/code/public/_admin_templates/domain-seo-external/latest/aizhan-keyword-trend.summary.json b/code/public/_admin_templates/domain-seo-external/latest/aizhan-keyword-trend.summary.json new file mode 100644 index 0000000..dff0255 --- /dev/null +++ b/code/public/_admin_templates/domain-seo-external/latest/aizhan-keyword-trend.summary.json @@ -0,0 +1,27 @@ +{ + "generated_at": "2026-04-10T17:58:41+08:00", + "mode": "aizhan_keyword_proxy_trend", + "host_count": 46, + "ready_count": 46, + "captcha_count": 0, + "blocked_count": 0, + "queue_count": 44, + "keyword_ready_count": 2, + "traffic_ready_count": 7, + "zero_keyword_count": 44, + "zero_traffic_count": 39, + "health_label": "active", + "ready_items": [ + { + "host": "duoguli.net", + "baidu_pc_ip_range": "1 ~ 1", + "baidu_mobile_ip_range": "1 ~ 1", + "pc_keyword_count": 0, + "mobile_keyword_count": 1, + "probed_at": "2026-04-10T17:57:32+08:00" + } + ], + "note": "当前趋势是爱站关键词 proxy trend:复用摘要和异常队列,优先判断这批域名当前处于 active、warmup、cold 还是 blocked。", + "summary_json_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-seo-external/latest/aizhan-keyword-trend.summary.json", + "summary_html_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-seo-external/latest/aizhan-keyword-trend.summary.html" +} diff --git a/code/public/_admin_templates/domain-seo-external/latest/baidu-feedback.summary.html b/code/public/_admin_templates/domain-seo-external/latest/baidu-feedback.summary.html new file mode 100644 index 0000000..45791c5 --- /dev/null +++ b/code/public/_admin_templates/domain-seo-external/latest/baidu-feedback.summary.html @@ -0,0 +1 @@ +Baidu Feedback Summary

Baidu Feedback Summary

当前手工报表已存在,但还没有 provider 包含 baidu 的数据行。后续导入百度资源平台导出的报表时,请把 provider 写成 baidu_webmaster 或带 baidu 标识的值。

status
no_baidu_rows
hosts_count
0
impressions
0
clicks
0
ctr
0
avg_position
-
rows_count
0
providers
hostproviderrowsimpressionsclicksctravg_position
\ No newline at end of file diff --git a/code/public/_admin_templates/domain-seo-external/latest/baidu-feedback.summary.json b/code/public/_admin_templates/domain-seo-external/latest/baidu-feedback.summary.json new file mode 100644 index 0000000..738c1ce --- /dev/null +++ b/code/public/_admin_templates/domain-seo-external/latest/baidu-feedback.summary.json @@ -0,0 +1,20 @@ +{ + "generated_at": "2026-04-10T17:29:42+08:00", + "mode": "baidu_feedback_manual_summary", + "status": "no_baidu_rows", + "rows_count": 0, + "hosts_count": 0, + "providers": [], + "metrics": { + "impressions": 0, + "clicks": 0, + "ctr": 0, + "avg_position": null + }, + "host_rows": [], + "top_queries": [], + "top_pages": [], + "note": "当前手工报表已存在,但还没有 provider 包含 baidu 的数据行。后续导入百度资源平台导出的报表时,请把 provider 写成 baidu_webmaster 或带 baidu 标识的值。", + "summary_json_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-seo-external/latest/baidu-feedback.summary.json", + "summary_html_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-seo-external/latest/baidu-feedback.summary.html" +} diff --git a/code/public/_admin_templates/domain-seo-external/latest/baidu-provider-plan.summary.html b/code/public/_admin_templates/domain-seo-external/latest/baidu-provider-plan.summary.html new file mode 100644 index 0000000..11e1a99 --- /dev/null +++ b/code/public/_admin_templates/domain-seo-external/latest/baidu-provider-plan.summary.html @@ -0,0 +1 @@ +Baidu Provider Plan

Baidu Provider Plan

当前是百度 provider 计划层:它聚焦大陆 SEO 主线下的百度推送 / 提交 / 收录反馈准备态。百度推送执行层已在 PlanTask 中存在,这里不重复造执行链,只补准备态和观察层。

status
planned
credential_ready
no
credential_size
0
updated_at

credential_path:

submission_scope: push, submission_status, resource_feedback

Next Steps

\ No newline at end of file diff --git a/code/public/_admin_templates/domain-seo-external/latest/baidu-provider-plan.summary.json b/code/public/_admin_templates/domain-seo-external/latest/baidu-provider-plan.summary.json new file mode 100644 index 0000000..f5786c0 --- /dev/null +++ b/code/public/_admin_templates/domain-seo-external/latest/baidu-provider-plan.summary.json @@ -0,0 +1,26 @@ +{ + "generated_at": "2026-04-12T16:31:30+08:00", + "provider_key": "baidu_webmaster", + "provider_label": "百度搜索资源平台", + "status": "planned", + "credential_ready": false, + "credential_path": "", + "credential_updated_at": "", + "credential_file_size": 0, + "submission_scope": { + "capabilities": [ + "push", + "submission_status", + "resource_feedback" + ], + "note": "当前百度主线优先复用既有推送任务,再补提交状态 / 收录反馈;不把它当成点击 / 展现主报表。" + }, + "next_steps": [ + "当前先复用现有 PlanTask 的百度推送执行链", + "再补百度资源平台凭证文件", + "最后再补提交状态 / 收录反馈观察层" + ], + "note": "当前是百度 provider 计划层:它聚焦大陆 SEO 主线下的百度推送 / 提交 / 收录反馈准备态。百度推送执行层已在 PlanTask 中存在,这里不重复造执行链,只补准备态和观察层。", + "summary_json_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-seo-external/latest/baidu-provider-plan.summary.json", + "summary_html_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-seo-external/latest/baidu-provider-plan.summary.html" +} diff --git a/code/public/_admin_templates/domain-seo-external/latest/baidu-push-attention.summary.html b/code/public/_admin_templates/domain-seo-external/latest/baidu-push-attention.summary.html new file mode 100644 index 0000000..bc6e034 --- /dev/null +++ b/code/public/_admin_templates/domain-seo-external/latest/baidu-push-attention.summary.html @@ -0,0 +1 @@ +Baidu Push Attention Queue

Baidu Push Attention Queue

当前队列复用已存在的百度推送执行链和观察摘要,不重做推送逻辑,只把需要人工关注的系统级和域名级问题收出来。

queue_count
49
system_attention_count
1
task_enabled
no
db_ready
yes

task_last_exec: 2026-03-04T15:20:51+08:00

db_error:

System Attention

levelreasonssummaryrecommended_actiondb_error
warningtask_disabledPUSH_BAIDU_VIDEO_URL 任务当前未启用。先确认 PlanTask 里的百度推送任务是否应恢复为启用态。

Domain Queue

domainlevelreasonstokenstatetxt_fileslatest_txt_filerecommended_action
*.expand-supply.example.comcriticaltoken_missing, txt_missingnono0先补站点 d_baidu_token,再看推送链是否继续产出 state。
*.expand-supply2.example.comcriticaltoken_missing, txt_missingnono0先补站点 d_baidu_token,再看推送链是否继续产出 state。
*.expand-supply3.example.comcriticaltoken_missing, txt_missingnono0先补站点 d_baidu_token,再看推送链是否继续产出 state。
aleliked.comcriticaltoken_missing, txt_missingnono0先补站点 d_baidu_token,再看推送链是否继续产出 state。
beikaifloors.comcriticaltoken_missing, txt_missingnono0先补站点 d_baidu_token,再看推送链是否继续产出 state。
caufe.comcriticaltoken_missing, txt_missingnono0先补站点 d_baidu_token,再看推送链是否继续产出 state。
chuanjiafeng.netcriticaltoken_missing, txt_missingnono0先补站点 d_baidu_token,再看推送链是否继续产出 state。
cynepray.comcriticaltoken_missing, txt_missingnono0先补站点 d_baidu_token,再看推送链是否继续产出 state。
demo.example.comcriticaltoken_missing, txt_missingnono0先补站点 d_baidu_token,再看推送链是否继续产出 state。
dongbe.comcriticaltoken_missing, txt_missingnono0先补站点 d_baidu_token,再看推送链是否继续产出 state。
duoguli.netcriticaltoken_missing, txt_missingnono0先补站点 d_baidu_token,再看推送链是否继续产出 state。
fashionbao.comcriticaltoken_missing, txt_missingnono0先补站点 d_baidu_token,再看推送链是否继续产出 state。
fubaoyuan.comcriticaltoken_missing, txt_missingnono0先补站点 d_baidu_token,再看推送链是否继续产出 state。
gdjuke.comcriticaltoken_missing, txt_missingnono0先补站点 d_baidu_token,再看推送链是否继续产出 state。
gdwelkin.comcriticaltoken_missing, txt_missingnono0先补站点 d_baidu_token,再看推送链是否继续产出 state。
gzkxpz.comcriticaltoken_missing, txt_missingnono0先补站点 d_baidu_token,再看推送链是否继续产出 state。
hbjiahejixie.comcriticaltoken_missing, txt_missingnono0先补站点 d_baidu_token,再看推送链是否继续产出 state。
hfintel.comcriticaltoken_missing, txt_missingnono0先补站点 d_baidu_token,再看推送链是否继续产出 state。
hnyegoo.comcriticaltoken_missing, txt_missingnono0先补站点 d_baidu_token,再看推送链是否继续产出 state。
jajdsb.comcriticaltoken_missing, txt_missingnono0先补站点 d_baidu_token,再看推送链是否继续产出 state。
jujukang.comcriticaltoken_missing, txt_missingnono0先补站点 d_baidu_token,再看推送链是否继续产出 state。
kaximan.netcriticaltoken_missing, txt_missingnono0先补站点 d_baidu_token,再看推送链是否继续产出 state。
liangzuan.netcriticaltoken_missing, txt_missingnono0先补站点 d_baidu_token,再看推送链是否继续产出 state。
ljzgwhcm888.comcriticaltoken_missing, txt_missingnono0先补站点 d_baidu_token,再看推送链是否继续产出 state。
lnzhsy.comcriticaltoken_missing, txt_missingnono0先补站点 d_baidu_token,再看推送链是否继续产出 state。
luojieer.comcriticaltoken_missing, txt_missingnono0先补站点 d_baidu_token,再看推送链是否继续产出 state。
mfyoufu.comcriticaltoken_missing, txt_missingnono0先补站点 d_baidu_token,再看推送链是否继续产出 state。
minigs.comcriticaltoken_missing, txt_missingnono0先补站点 d_baidu_token,再看推送链是否继续产出 state。
moviesfeel.comcriticaltoken_missing, txt_missingnono0先补站点 d_baidu_token,再看推送链是否继续产出 state。
phpaigc.comcriticaltoken_missing, txt_missingnono0先补站点 d_baidu_token,再看推送链是否继续产出 state。
sanmudc.comcriticaltoken_missing, txt_missingnono0先补站点 d_baidu_token,再看推送链是否继续产出 state。
sanmumei.comcriticaltoken_missing, txt_missingnono0先补站点 d_baidu_token,再看推送链是否继续产出 state。
shuzilehuo.comcriticaltoken_missing, txt_missingnono0先补站点 d_baidu_token,再看推送链是否继续产出 state。
siqiake.comcriticaltoken_missing, txt_missingnono0先补站点 d_baidu_token,再看推送链是否继续产出 state。
szyaskawa.comcriticaltoken_missing, txt_missingnono0先补站点 d_baidu_token,再看推送链是否继续产出 state。
traffic-supply.example.comcriticaltoken_missing, txt_missingnono0先补站点 d_baidu_token,再看推送链是否继续产出 state。
uplinkiptv.comcriticaltoken_missing, txt_missingnono0先补站点 d_baidu_token,再看推送链是否继续产出 state。
video-test.comcriticaltoken_missing, txt_missingnono0先补站点 d_baidu_token,再看推送链是否继续产出 state。
whjiuxun.comcriticaltoken_missing, txt_missingnono0先补站点 d_baidu_token,再看推送链是否继续产出 state。
xianweibufengguan.comcriticaltoken_missing, txt_missingnono0先补站点 d_baidu_token,再看推送链是否继续产出 state。
xinhuiying.comcriticaltoken_missing, txt_missingnono0先补站点 d_baidu_token,再看推送链是否继续产出 state。
xiyanya.comcriticaltoken_missing, txt_missingnono0先补站点 d_baidu_token,再看推送链是否继续产出 state。
xmfuzhen.comcriticaltoken_missing, txt_missingnono0先补站点 d_baidu_token,再看推送链是否继续产出 state。
xuanwoying.comcriticaltoken_missing, txt_missingnono0先补站点 d_baidu_token,再看推送链是否继续产出 state。
yifoutech.comcriticaltoken_missing, txt_missingnono0先补站点 d_baidu_token,再看推送链是否继续产出 state。
ykned.comcriticaltoken_missing, txt_missingnono0先补站点 d_baidu_token,再看推送链是否继续产出 state。
yunsulu.comcriticaltoken_missing, txt_missingnono0先补站点 d_baidu_token,再看推送链是否继续产出 state。
zfjiajiale.comcriticaltoken_missing, txt_missingnono0先补站点 d_baidu_token,再看推送链是否继续产出 state。
zglanyang.comcriticaltoken_missing, txt_missingnono0先补站点 d_baidu_token,再看推送链是否继续产出 state。
\ No newline at end of file diff --git a/code/public/_admin_templates/domain-seo-external/latest/baidu-push-attention.summary.json b/code/public/_admin_templates/domain-seo-external/latest/baidu-push-attention.summary.json new file mode 100644 index 0000000..dd4df8a --- /dev/null +++ b/code/public/_admin_templates/domain-seo-external/latest/baidu-push-attention.summary.json @@ -0,0 +1,1007 @@ +{ + "generated_at": "2026-04-10T17:23:55+08:00", + "task_code": "PUSH_BAIDU_VIDEO_URL", + "task_enabled": false, + "task_last_exec": "2026-03-04T15:20:51+08:00", + "db_ready": true, + "db_error": "", + "queue_count": 49, + "system_attention_count": 1, + "items": [ + { + "scope": "domain", + "domain": "*.expand-supply.example.com", + "attention_level": "critical", + "reason_codes": [ + "token_missing", + "txt_missing" + ], + "reason_summary": "缺少百度推送 token;缺少可推送的 txt URL 文件", + "recommended_action": "先补站点 d_baidu_token,再看推送链是否继续产出 state。", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "txt_file_count": 0, + "latest_txt_file": "", + "file_index": 0, + "line_index": 0, + "updated_at": "" + }, + { + "scope": "domain", + "domain": "*.expand-supply2.example.com", + "attention_level": "critical", + "reason_codes": [ + "token_missing", + "txt_missing" + ], + "reason_summary": "缺少百度推送 token;缺少可推送的 txt URL 文件", + "recommended_action": "先补站点 d_baidu_token,再看推送链是否继续产出 state。", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "txt_file_count": 0, + "latest_txt_file": "", + "file_index": 0, + "line_index": 0, + "updated_at": "" + }, + { + "scope": "domain", + "domain": "*.expand-supply3.example.com", + "attention_level": "critical", + "reason_codes": [ + "token_missing", + "txt_missing" + ], + "reason_summary": "缺少百度推送 token;缺少可推送的 txt URL 文件", + "recommended_action": "先补站点 d_baidu_token,再看推送链是否继续产出 state。", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "txt_file_count": 0, + "latest_txt_file": "", + "file_index": 0, + "line_index": 0, + "updated_at": "" + }, + { + "scope": "domain", + "domain": "aleliked.com", + "attention_level": "critical", + "reason_codes": [ + "token_missing", + "txt_missing" + ], + "reason_summary": "缺少百度推送 token;缺少可推送的 txt URL 文件", + "recommended_action": "先补站点 d_baidu_token,再看推送链是否继续产出 state。", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "txt_file_count": 0, + "latest_txt_file": "", + "file_index": 0, + "line_index": 0, + "updated_at": "" + }, + { + "scope": "domain", + "domain": "beikaifloors.com", + "attention_level": "critical", + "reason_codes": [ + "token_missing", + "txt_missing" + ], + "reason_summary": "缺少百度推送 token;缺少可推送的 txt URL 文件", + "recommended_action": "先补站点 d_baidu_token,再看推送链是否继续产出 state。", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "txt_file_count": 0, + "latest_txt_file": "", + "file_index": 0, + "line_index": 0, + "updated_at": "" + }, + { + "scope": "domain", + "domain": "caufe.com", + "attention_level": "critical", + "reason_codes": [ + "token_missing", + "txt_missing" + ], + "reason_summary": "缺少百度推送 token;缺少可推送的 txt URL 文件", + "recommended_action": "先补站点 d_baidu_token,再看推送链是否继续产出 state。", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "txt_file_count": 0, + "latest_txt_file": "", + "file_index": 0, + "line_index": 0, + "updated_at": "" + }, + { + "scope": "domain", + "domain": "chuanjiafeng.net", + "attention_level": "critical", + "reason_codes": [ + "token_missing", + "txt_missing" + ], + "reason_summary": "缺少百度推送 token;缺少可推送的 txt URL 文件", + "recommended_action": "先补站点 d_baidu_token,再看推送链是否继续产出 state。", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "txt_file_count": 0, + "latest_txt_file": "", + "file_index": 0, + "line_index": 0, + "updated_at": "" + }, + { + "scope": "domain", + "domain": "cynepray.com", + "attention_level": "critical", + "reason_codes": [ + "token_missing", + "txt_missing" + ], + "reason_summary": "缺少百度推送 token;缺少可推送的 txt URL 文件", + "recommended_action": "先补站点 d_baidu_token,再看推送链是否继续产出 state。", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "txt_file_count": 0, + "latest_txt_file": "", + "file_index": 0, + "line_index": 0, + "updated_at": "" + }, + { + "scope": "domain", + "domain": "demo.example.com", + "attention_level": "critical", + "reason_codes": [ + "token_missing", + "txt_missing" + ], + "reason_summary": "缺少百度推送 token;缺少可推送的 txt URL 文件", + "recommended_action": "先补站点 d_baidu_token,再看推送链是否继续产出 state。", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "txt_file_count": 0, + "latest_txt_file": "", + "file_index": 0, + "line_index": 0, + "updated_at": "" + }, + { + "scope": "domain", + "domain": "dongbe.com", + "attention_level": "critical", + "reason_codes": [ + "token_missing", + "txt_missing" + ], + "reason_summary": "缺少百度推送 token;缺少可推送的 txt URL 文件", + "recommended_action": "先补站点 d_baidu_token,再看推送链是否继续产出 state。", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "txt_file_count": 0, + "latest_txt_file": "", + "file_index": 0, + "line_index": 0, + "updated_at": "" + }, + { + "scope": "domain", + "domain": "duoguli.net", + "attention_level": "critical", + "reason_codes": [ + "token_missing", + "txt_missing" + ], + "reason_summary": "缺少百度推送 token;缺少可推送的 txt URL 文件", + "recommended_action": "先补站点 d_baidu_token,再看推送链是否继续产出 state。", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "txt_file_count": 0, + "latest_txt_file": "", + "file_index": 0, + "line_index": 0, + "updated_at": "" + }, + { + "scope": "domain", + "domain": "fashionbao.com", + "attention_level": "critical", + "reason_codes": [ + "token_missing", + "txt_missing" + ], + "reason_summary": "缺少百度推送 token;缺少可推送的 txt URL 文件", + "recommended_action": "先补站点 d_baidu_token,再看推送链是否继续产出 state。", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "txt_file_count": 0, + "latest_txt_file": "", + "file_index": 0, + "line_index": 0, + "updated_at": "" + }, + { + "scope": "domain", + "domain": "fubaoyuan.com", + "attention_level": "critical", + "reason_codes": [ + "token_missing", + "txt_missing" + ], + "reason_summary": "缺少百度推送 token;缺少可推送的 txt URL 文件", + "recommended_action": "先补站点 d_baidu_token,再看推送链是否继续产出 state。", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "txt_file_count": 0, + "latest_txt_file": "", + "file_index": 0, + "line_index": 0, + "updated_at": "" + }, + { + "scope": "domain", + "domain": "gdjuke.com", + "attention_level": "critical", + "reason_codes": [ + "token_missing", + "txt_missing" + ], + "reason_summary": "缺少百度推送 token;缺少可推送的 txt URL 文件", + "recommended_action": "先补站点 d_baidu_token,再看推送链是否继续产出 state。", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "txt_file_count": 0, + "latest_txt_file": "", + "file_index": 0, + "line_index": 0, + "updated_at": "" + }, + { + "scope": "domain", + "domain": "gdwelkin.com", + "attention_level": "critical", + "reason_codes": [ + "token_missing", + "txt_missing" + ], + "reason_summary": "缺少百度推送 token;缺少可推送的 txt URL 文件", + "recommended_action": "先补站点 d_baidu_token,再看推送链是否继续产出 state。", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "txt_file_count": 0, + "latest_txt_file": "", + "file_index": 0, + "line_index": 0, + "updated_at": "" + }, + { + "scope": "domain", + "domain": "gzkxpz.com", + "attention_level": "critical", + "reason_codes": [ + "token_missing", + "txt_missing" + ], + "reason_summary": "缺少百度推送 token;缺少可推送的 txt URL 文件", + "recommended_action": "先补站点 d_baidu_token,再看推送链是否继续产出 state。", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "txt_file_count": 0, + "latest_txt_file": "", + "file_index": 0, + "line_index": 0, + "updated_at": "" + }, + { + "scope": "domain", + "domain": "hbjiahejixie.com", + "attention_level": "critical", + "reason_codes": [ + "token_missing", + "txt_missing" + ], + "reason_summary": "缺少百度推送 token;缺少可推送的 txt URL 文件", + "recommended_action": "先补站点 d_baidu_token,再看推送链是否继续产出 state。", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "txt_file_count": 0, + "latest_txt_file": "", + "file_index": 0, + "line_index": 0, + "updated_at": "" + }, + { + "scope": "domain", + "domain": "hfintel.com", + "attention_level": "critical", + "reason_codes": [ + "token_missing", + "txt_missing" + ], + "reason_summary": "缺少百度推送 token;缺少可推送的 txt URL 文件", + "recommended_action": "先补站点 d_baidu_token,再看推送链是否继续产出 state。", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "txt_file_count": 0, + "latest_txt_file": "", + "file_index": 0, + "line_index": 0, + "updated_at": "" + }, + { + "scope": "domain", + "domain": "hnyegoo.com", + "attention_level": "critical", + "reason_codes": [ + "token_missing", + "txt_missing" + ], + "reason_summary": "缺少百度推送 token;缺少可推送的 txt URL 文件", + "recommended_action": "先补站点 d_baidu_token,再看推送链是否继续产出 state。", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "txt_file_count": 0, + "latest_txt_file": "", + "file_index": 0, + "line_index": 0, + "updated_at": "" + }, + { + "scope": "domain", + "domain": "jajdsb.com", + "attention_level": "critical", + "reason_codes": [ + "token_missing", + "txt_missing" + ], + "reason_summary": "缺少百度推送 token;缺少可推送的 txt URL 文件", + "recommended_action": "先补站点 d_baidu_token,再看推送链是否继续产出 state。", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "txt_file_count": 0, + "latest_txt_file": "", + "file_index": 0, + "line_index": 0, + "updated_at": "" + }, + { + "scope": "domain", + "domain": "jujukang.com", + "attention_level": "critical", + "reason_codes": [ + "token_missing", + "txt_missing" + ], + "reason_summary": "缺少百度推送 token;缺少可推送的 txt URL 文件", + "recommended_action": "先补站点 d_baidu_token,再看推送链是否继续产出 state。", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "txt_file_count": 0, + "latest_txt_file": "", + "file_index": 0, + "line_index": 0, + "updated_at": "" + }, + { + "scope": "domain", + "domain": "kaximan.net", + "attention_level": "critical", + "reason_codes": [ + "token_missing", + "txt_missing" + ], + "reason_summary": "缺少百度推送 token;缺少可推送的 txt URL 文件", + "recommended_action": "先补站点 d_baidu_token,再看推送链是否继续产出 state。", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "txt_file_count": 0, + "latest_txt_file": "", + "file_index": 0, + "line_index": 0, + "updated_at": "" + }, + { + "scope": "domain", + "domain": "liangzuan.net", + "attention_level": "critical", + "reason_codes": [ + "token_missing", + "txt_missing" + ], + "reason_summary": "缺少百度推送 token;缺少可推送的 txt URL 文件", + "recommended_action": "先补站点 d_baidu_token,再看推送链是否继续产出 state。", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "txt_file_count": 0, + "latest_txt_file": "", + "file_index": 0, + "line_index": 0, + "updated_at": "" + }, + { + "scope": "domain", + "domain": "ljzgwhcm888.com", + "attention_level": "critical", + "reason_codes": [ + "token_missing", + "txt_missing" + ], + "reason_summary": "缺少百度推送 token;缺少可推送的 txt URL 文件", + "recommended_action": "先补站点 d_baidu_token,再看推送链是否继续产出 state。", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "txt_file_count": 0, + "latest_txt_file": "", + "file_index": 0, + "line_index": 0, + "updated_at": "" + }, + { + "scope": "domain", + "domain": "lnzhsy.com", + "attention_level": "critical", + "reason_codes": [ + "token_missing", + "txt_missing" + ], + "reason_summary": "缺少百度推送 token;缺少可推送的 txt URL 文件", + "recommended_action": "先补站点 d_baidu_token,再看推送链是否继续产出 state。", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "txt_file_count": 0, + "latest_txt_file": "", + "file_index": 0, + "line_index": 0, + "updated_at": "" + }, + { + "scope": "domain", + "domain": "luojieer.com", + "attention_level": "critical", + "reason_codes": [ + "token_missing", + "txt_missing" + ], + "reason_summary": "缺少百度推送 token;缺少可推送的 txt URL 文件", + "recommended_action": "先补站点 d_baidu_token,再看推送链是否继续产出 state。", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "txt_file_count": 0, + "latest_txt_file": "", + "file_index": 0, + "line_index": 0, + "updated_at": "" + }, + { + "scope": "domain", + "domain": "mfyoufu.com", + "attention_level": "critical", + "reason_codes": [ + "token_missing", + "txt_missing" + ], + "reason_summary": "缺少百度推送 token;缺少可推送的 txt URL 文件", + "recommended_action": "先补站点 d_baidu_token,再看推送链是否继续产出 state。", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "txt_file_count": 0, + "latest_txt_file": "", + "file_index": 0, + "line_index": 0, + "updated_at": "" + }, + { + "scope": "domain", + "domain": "minigs.com", + "attention_level": "critical", + "reason_codes": [ + "token_missing", + "txt_missing" + ], + "reason_summary": "缺少百度推送 token;缺少可推送的 txt URL 文件", + "recommended_action": "先补站点 d_baidu_token,再看推送链是否继续产出 state。", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "txt_file_count": 0, + "latest_txt_file": "", + "file_index": 0, + "line_index": 0, + "updated_at": "" + }, + { + "scope": "domain", + "domain": "moviesfeel.com", + "attention_level": "critical", + "reason_codes": [ + "token_missing", + "txt_missing" + ], + "reason_summary": "缺少百度推送 token;缺少可推送的 txt URL 文件", + "recommended_action": "先补站点 d_baidu_token,再看推送链是否继续产出 state。", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "txt_file_count": 0, + "latest_txt_file": "", + "file_index": 0, + "line_index": 0, + "updated_at": "" + }, + { + "scope": "domain", + "domain": "phpaigc.com", + "attention_level": "critical", + "reason_codes": [ + "token_missing", + "txt_missing" + ], + "reason_summary": "缺少百度推送 token;缺少可推送的 txt URL 文件", + "recommended_action": "先补站点 d_baidu_token,再看推送链是否继续产出 state。", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "txt_file_count": 0, + "latest_txt_file": "", + "file_index": 0, + "line_index": 0, + "updated_at": "" + }, + { + "scope": "domain", + "domain": "sanmudc.com", + "attention_level": "critical", + "reason_codes": [ + "token_missing", + "txt_missing" + ], + "reason_summary": "缺少百度推送 token;缺少可推送的 txt URL 文件", + "recommended_action": "先补站点 d_baidu_token,再看推送链是否继续产出 state。", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "txt_file_count": 0, + "latest_txt_file": "", + "file_index": 0, + "line_index": 0, + "updated_at": "" + }, + { + "scope": "domain", + "domain": "sanmumei.com", + "attention_level": "critical", + "reason_codes": [ + "token_missing", + "txt_missing" + ], + "reason_summary": "缺少百度推送 token;缺少可推送的 txt URL 文件", + "recommended_action": "先补站点 d_baidu_token,再看推送链是否继续产出 state。", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "txt_file_count": 0, + "latest_txt_file": "", + "file_index": 0, + "line_index": 0, + "updated_at": "" + }, + { + "scope": "domain", + "domain": "shuzilehuo.com", + "attention_level": "critical", + "reason_codes": [ + "token_missing", + "txt_missing" + ], + "reason_summary": "缺少百度推送 token;缺少可推送的 txt URL 文件", + "recommended_action": "先补站点 d_baidu_token,再看推送链是否继续产出 state。", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "txt_file_count": 0, + "latest_txt_file": "", + "file_index": 0, + "line_index": 0, + "updated_at": "" + }, + { + "scope": "domain", + "domain": "siqiake.com", + "attention_level": "critical", + "reason_codes": [ + "token_missing", + "txt_missing" + ], + "reason_summary": "缺少百度推送 token;缺少可推送的 txt URL 文件", + "recommended_action": "先补站点 d_baidu_token,再看推送链是否继续产出 state。", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "txt_file_count": 0, + "latest_txt_file": "", + "file_index": 0, + "line_index": 0, + "updated_at": "" + }, + { + "scope": "domain", + "domain": "szyaskawa.com", + "attention_level": "critical", + "reason_codes": [ + "token_missing", + "txt_missing" + ], + "reason_summary": "缺少百度推送 token;缺少可推送的 txt URL 文件", + "recommended_action": "先补站点 d_baidu_token,再看推送链是否继续产出 state。", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "txt_file_count": 0, + "latest_txt_file": "", + "file_index": 0, + "line_index": 0, + "updated_at": "" + }, + { + "scope": "domain", + "domain": "traffic-supply.example.com", + "attention_level": "critical", + "reason_codes": [ + "token_missing", + "txt_missing" + ], + "reason_summary": "缺少百度推送 token;缺少可推送的 txt URL 文件", + "recommended_action": "先补站点 d_baidu_token,再看推送链是否继续产出 state。", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "txt_file_count": 0, + "latest_txt_file": "", + "file_index": 0, + "line_index": 0, + "updated_at": "" + }, + { + "scope": "domain", + "domain": "uplinkiptv.com", + "attention_level": "critical", + "reason_codes": [ + "token_missing", + "txt_missing" + ], + "reason_summary": "缺少百度推送 token;缺少可推送的 txt URL 文件", + "recommended_action": "先补站点 d_baidu_token,再看推送链是否继续产出 state。", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "txt_file_count": 0, + "latest_txt_file": "", + "file_index": 0, + "line_index": 0, + "updated_at": "" + }, + { + "scope": "domain", + "domain": "video-test.com", + "attention_level": "critical", + "reason_codes": [ + "token_missing", + "txt_missing" + ], + "reason_summary": "缺少百度推送 token;缺少可推送的 txt URL 文件", + "recommended_action": "先补站点 d_baidu_token,再看推送链是否继续产出 state。", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "txt_file_count": 0, + "latest_txt_file": "", + "file_index": 0, + "line_index": 0, + "updated_at": "" + }, + { + "scope": "domain", + "domain": "whjiuxun.com", + "attention_level": "critical", + "reason_codes": [ + "token_missing", + "txt_missing" + ], + "reason_summary": "缺少百度推送 token;缺少可推送的 txt URL 文件", + "recommended_action": "先补站点 d_baidu_token,再看推送链是否继续产出 state。", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "txt_file_count": 0, + "latest_txt_file": "", + "file_index": 0, + "line_index": 0, + "updated_at": "" + }, + { + "scope": "domain", + "domain": "xianweibufengguan.com", + "attention_level": "critical", + "reason_codes": [ + "token_missing", + "txt_missing" + ], + "reason_summary": "缺少百度推送 token;缺少可推送的 txt URL 文件", + "recommended_action": "先补站点 d_baidu_token,再看推送链是否继续产出 state。", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "txt_file_count": 0, + "latest_txt_file": "", + "file_index": 0, + "line_index": 0, + "updated_at": "" + }, + { + "scope": "domain", + "domain": "xinhuiying.com", + "attention_level": "critical", + "reason_codes": [ + "token_missing", + "txt_missing" + ], + "reason_summary": "缺少百度推送 token;缺少可推送的 txt URL 文件", + "recommended_action": "先补站点 d_baidu_token,再看推送链是否继续产出 state。", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "txt_file_count": 0, + "latest_txt_file": "", + "file_index": 0, + "line_index": 0, + "updated_at": "" + }, + { + "scope": "domain", + "domain": "xiyanya.com", + "attention_level": "critical", + "reason_codes": [ + "token_missing", + "txt_missing" + ], + "reason_summary": "缺少百度推送 token;缺少可推送的 txt URL 文件", + "recommended_action": "先补站点 d_baidu_token,再看推送链是否继续产出 state。", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "txt_file_count": 0, + "latest_txt_file": "", + "file_index": 0, + "line_index": 0, + "updated_at": "" + }, + { + "scope": "domain", + "domain": "xmfuzhen.com", + "attention_level": "critical", + "reason_codes": [ + "token_missing", + "txt_missing" + ], + "reason_summary": "缺少百度推送 token;缺少可推送的 txt URL 文件", + "recommended_action": "先补站点 d_baidu_token,再看推送链是否继续产出 state。", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "txt_file_count": 0, + "latest_txt_file": "", + "file_index": 0, + "line_index": 0, + "updated_at": "" + }, + { + "scope": "domain", + "domain": "xuanwoying.com", + "attention_level": "critical", + "reason_codes": [ + "token_missing", + "txt_missing" + ], + "reason_summary": "缺少百度推送 token;缺少可推送的 txt URL 文件", + "recommended_action": "先补站点 d_baidu_token,再看推送链是否继续产出 state。", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "txt_file_count": 0, + "latest_txt_file": "", + "file_index": 0, + "line_index": 0, + "updated_at": "" + }, + { + "scope": "domain", + "domain": "yifoutech.com", + "attention_level": "critical", + "reason_codes": [ + "token_missing", + "txt_missing" + ], + "reason_summary": "缺少百度推送 token;缺少可推送的 txt URL 文件", + "recommended_action": "先补站点 d_baidu_token,再看推送链是否继续产出 state。", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "txt_file_count": 0, + "latest_txt_file": "", + "file_index": 0, + "line_index": 0, + "updated_at": "" + }, + { + "scope": "domain", + "domain": "ykned.com", + "attention_level": "critical", + "reason_codes": [ + "token_missing", + "txt_missing" + ], + "reason_summary": "缺少百度推送 token;缺少可推送的 txt URL 文件", + "recommended_action": "先补站点 d_baidu_token,再看推送链是否继续产出 state。", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "txt_file_count": 0, + "latest_txt_file": "", + "file_index": 0, + "line_index": 0, + "updated_at": "" + }, + { + "scope": "domain", + "domain": "yunsulu.com", + "attention_level": "critical", + "reason_codes": [ + "token_missing", + "txt_missing" + ], + "reason_summary": "缺少百度推送 token;缺少可推送的 txt URL 文件", + "recommended_action": "先补站点 d_baidu_token,再看推送链是否继续产出 state。", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "txt_file_count": 0, + "latest_txt_file": "", + "file_index": 0, + "line_index": 0, + "updated_at": "" + }, + { + "scope": "domain", + "domain": "zfjiajiale.com", + "attention_level": "critical", + "reason_codes": [ + "token_missing", + "txt_missing" + ], + "reason_summary": "缺少百度推送 token;缺少可推送的 txt URL 文件", + "recommended_action": "先补站点 d_baidu_token,再看推送链是否继续产出 state。", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "txt_file_count": 0, + "latest_txt_file": "", + "file_index": 0, + "line_index": 0, + "updated_at": "" + }, + { + "scope": "domain", + "domain": "zglanyang.com", + "attention_level": "critical", + "reason_codes": [ + "token_missing", + "txt_missing" + ], + "reason_summary": "缺少百度推送 token;缺少可推送的 txt URL 文件", + "recommended_action": "先补站点 d_baidu_token,再看推送链是否继续产出 state。", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "txt_file_count": 0, + "latest_txt_file": "", + "file_index": 0, + "line_index": 0, + "updated_at": "" + } + ], + "system_items": [ + { + "scope": "system", + "attention_level": "warning", + "reason_codes": [ + "task_disabled" + ], + "reason_summary": "PUSH_BAIDU_VIDEO_URL 任务当前未启用。", + "recommended_action": "先确认 PlanTask 里的百度推送任务是否应恢复为启用态。", + "db_error": "" + } + ], + "note": "当前队列复用已存在的百度推送执行链和观察摘要,不重做推送逻辑,只把需要人工关注的系统级和域名级问题收出来。", + "summary_json_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-seo-external/latest/baidu-push-attention.summary.json", + "summary_html_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-seo-external/latest/baidu-push-attention.summary.html" +} diff --git a/code/public/_admin_templates/domain-seo-external/latest/baidu-push-trend.summary.html b/code/public/_admin_templates/domain-seo-external/latest/baidu-push-trend.summary.html new file mode 100644 index 0000000..0a58116 --- /dev/null +++ b/code/public/_admin_templates/domain-seo-external/latest/baidu-push-trend.summary.html @@ -0,0 +1 @@ +Baidu Push Trend Summary

Baidu Push Trend Summary

当前趋势是百度推送 proxy trend:复用 task_last_exec、baidu_state 更新时间和异常队列,先判断这条链是 blocked、active、stagnating 还是 idle。

health_label
blocked
queue_count
49
recent_state_count
0
stale_state_count
0
never_started_count
0

task_last_exec: 2026-03-04T15:20:51+08:00

db_error:

domainupdated_atage_hourstokenstatetxt_files
\ No newline at end of file diff --git a/code/public/_admin_templates/domain-seo-external/latest/baidu-push-trend.summary.json b/code/public/_admin_templates/domain-seo-external/latest/baidu-push-trend.summary.json new file mode 100644 index 0000000..a35d501 --- /dev/null +++ b/code/public/_admin_templates/domain-seo-external/latest/baidu-push-trend.summary.json @@ -0,0 +1,23 @@ +{ + "generated_at": "2026-04-10T17:23:55+08:00", + "mode": "baidu_push_proxy_trend", + "task_code": "PUSH_BAIDU_VIDEO_URL", + "task_enabled": false, + "task_last_exec": "2026-03-04T15:20:51+08:00", + "db_ready": true, + "db_error": "", + "domain_count": 49, + "token_ready_count": 0, + "state_ready_count": 0, + "queue_count": 49, + "system_attention_count": 1, + "recent_state_count": 0, + "stale_state_count": 0, + "never_started_count": 0, + "txt_missing_count": 49, + "health_label": "blocked", + "recent_state_items": [], + "note": "当前趋势是百度推送 proxy trend:复用 task_last_exec、baidu_state 更新时间和异常队列,先判断这条链是 blocked、active、stagnating 还是 idle。", + "summary_json_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-seo-external/latest/baidu-push-trend.summary.json", + "summary_html_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-seo-external/latest/baidu-push-trend.summary.html" +} diff --git a/code/public/_admin_templates/domain-seo-external/latest/baidu-push.summary.html b/code/public/_admin_templates/domain-seo-external/latest/baidu-push.summary.html new file mode 100644 index 0000000..268dab9 --- /dev/null +++ b/code/public/_admin_templates/domain-seo-external/latest/baidu-push.summary.html @@ -0,0 +1 @@ +Baidu Push Summary

Baidu Push Summary

当前摘要复用现有 PlanTask 百度推送执行链,只做观察层:看任务是否启用、哪些域名配置了 token、哪些域名已经产生日志/进度状态。

task_enabled
no
domain_count
49
token_ready_count
0
state_ready_count
0

task_last_exec: 2026-03-04T15:20:51+08:00

db_ready: yes

db_error:

domaintoken_readytokenstate_readytxt_fileslatest_txt_filefile_indexline_indexupdated_at
*.expand-supply.example.comnono000
*.expand-supply2.example.comnono000
*.expand-supply3.example.comnono000
aleliked.comnono000
beikaifloors.comnono000
caufe.comnono000
chuanjiafeng.netnono000
cynepray.comnono000
demo.example.comnono000
dongbe.comnono000
duoguli.netnono000
fashionbao.comnono000
fubaoyuan.comnono000
gdjuke.comnono000
gdwelkin.comnono000
gzkxpz.comnono000
hbjiahejixie.comnono000
hfintel.comnono000
hnyegoo.comnono000
jajdsb.comnono000
jujukang.comnono000
kaximan.netnono000
liangzuan.netnono000
ljzgwhcm888.comnono000
lnzhsy.comnono000
luojieer.comnono000
mfyoufu.comnono000
minigs.comnono000
moviesfeel.comnono000
phpaigc.comnono000
sanmudc.comnono000
sanmumei.comnono000
shuzilehuo.comnono000
siqiake.comnono000
szyaskawa.comnono000
traffic-supply.example.comnono000
uplinkiptv.comnono000
video-test.comnono000
whjiuxun.comnono000
xianweibufengguan.comnono000
xinhuiying.comnono000
xiyanya.comnono000
xmfuzhen.comnono000
xuanwoying.comnono000
yifoutech.comnono000
ykned.comnono000
yunsulu.comnono000
zfjiajiale.comnono000
zglanyang.comnono000
\ No newline at end of file diff --git a/code/public/_admin_templates/domain-seo-external/latest/baidu-push.summary.json b/code/public/_admin_templates/domain-seo-external/latest/baidu-push.summary.json new file mode 100644 index 0000000..2f781d7 --- /dev/null +++ b/code/public/_admin_templates/domain-seo-external/latest/baidu-push.summary.json @@ -0,0 +1,604 @@ +{ + "generated_at": "2026-04-10T17:23:55+08:00", + "task_code": "PUSH_BAIDU_VIDEO_URL", + "task_enabled": false, + "task_last_exec": "2026-03-04T15:20:51+08:00", + "domain_count": 49, + "token_ready_count": 0, + "state_ready_count": 0, + "db_ready": true, + "db_error": "", + "items": [ + { + "domain": "*.expand-supply.example.com", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "file_index": 0, + "line_index": 0, + "updated_at": "", + "txt_file_count": 0, + "latest_txt_file": "" + }, + { + "domain": "*.expand-supply2.example.com", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "file_index": 0, + "line_index": 0, + "updated_at": "", + "txt_file_count": 0, + "latest_txt_file": "" + }, + { + "domain": "*.expand-supply3.example.com", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "file_index": 0, + "line_index": 0, + "updated_at": "", + "txt_file_count": 0, + "latest_txt_file": "" + }, + { + "domain": "aleliked.com", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "file_index": 0, + "line_index": 0, + "updated_at": "", + "txt_file_count": 0, + "latest_txt_file": "" + }, + { + "domain": "beikaifloors.com", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "file_index": 0, + "line_index": 0, + "updated_at": "", + "txt_file_count": 0, + "latest_txt_file": "" + }, + { + "domain": "caufe.com", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "file_index": 0, + "line_index": 0, + "updated_at": "", + "txt_file_count": 0, + "latest_txt_file": "" + }, + { + "domain": "chuanjiafeng.net", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "file_index": 0, + "line_index": 0, + "updated_at": "", + "txt_file_count": 0, + "latest_txt_file": "" + }, + { + "domain": "cynepray.com", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "file_index": 0, + "line_index": 0, + "updated_at": "", + "txt_file_count": 0, + "latest_txt_file": "" + }, + { + "domain": "demo.example.com", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "file_index": 0, + "line_index": 0, + "updated_at": "", + "txt_file_count": 0, + "latest_txt_file": "" + }, + { + "domain": "dongbe.com", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "file_index": 0, + "line_index": 0, + "updated_at": "", + "txt_file_count": 0, + "latest_txt_file": "" + }, + { + "domain": "duoguli.net", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "file_index": 0, + "line_index": 0, + "updated_at": "", + "txt_file_count": 0, + "latest_txt_file": "" + }, + { + "domain": "fashionbao.com", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "file_index": 0, + "line_index": 0, + "updated_at": "", + "txt_file_count": 0, + "latest_txt_file": "" + }, + { + "domain": "fubaoyuan.com", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "file_index": 0, + "line_index": 0, + "updated_at": "", + "txt_file_count": 0, + "latest_txt_file": "" + }, + { + "domain": "gdjuke.com", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "file_index": 0, + "line_index": 0, + "updated_at": "", + "txt_file_count": 0, + "latest_txt_file": "" + }, + { + "domain": "gdwelkin.com", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "file_index": 0, + "line_index": 0, + "updated_at": "", + "txt_file_count": 0, + "latest_txt_file": "" + }, + { + "domain": "gzkxpz.com", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "file_index": 0, + "line_index": 0, + "updated_at": "", + "txt_file_count": 0, + "latest_txt_file": "" + }, + { + "domain": "hbjiahejixie.com", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "file_index": 0, + "line_index": 0, + "updated_at": "", + "txt_file_count": 0, + "latest_txt_file": "" + }, + { + "domain": "hfintel.com", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "file_index": 0, + "line_index": 0, + "updated_at": "", + "txt_file_count": 0, + "latest_txt_file": "" + }, + { + "domain": "hnyegoo.com", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "file_index": 0, + "line_index": 0, + "updated_at": "", + "txt_file_count": 0, + "latest_txt_file": "" + }, + { + "domain": "jajdsb.com", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "file_index": 0, + "line_index": 0, + "updated_at": "", + "txt_file_count": 0, + "latest_txt_file": "" + }, + { + "domain": "jujukang.com", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "file_index": 0, + "line_index": 0, + "updated_at": "", + "txt_file_count": 0, + "latest_txt_file": "" + }, + { + "domain": "kaximan.net", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "file_index": 0, + "line_index": 0, + "updated_at": "", + "txt_file_count": 0, + "latest_txt_file": "" + }, + { + "domain": "liangzuan.net", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "file_index": 0, + "line_index": 0, + "updated_at": "", + "txt_file_count": 0, + "latest_txt_file": "" + }, + { + "domain": "ljzgwhcm888.com", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "file_index": 0, + "line_index": 0, + "updated_at": "", + "txt_file_count": 0, + "latest_txt_file": "" + }, + { + "domain": "lnzhsy.com", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "file_index": 0, + "line_index": 0, + "updated_at": "", + "txt_file_count": 0, + "latest_txt_file": "" + }, + { + "domain": "luojieer.com", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "file_index": 0, + "line_index": 0, + "updated_at": "", + "txt_file_count": 0, + "latest_txt_file": "" + }, + { + "domain": "mfyoufu.com", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "file_index": 0, + "line_index": 0, + "updated_at": "", + "txt_file_count": 0, + "latest_txt_file": "" + }, + { + "domain": "minigs.com", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "file_index": 0, + "line_index": 0, + "updated_at": "", + "txt_file_count": 0, + "latest_txt_file": "" + }, + { + "domain": "moviesfeel.com", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "file_index": 0, + "line_index": 0, + "updated_at": "", + "txt_file_count": 0, + "latest_txt_file": "" + }, + { + "domain": "phpaigc.com", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "file_index": 0, + "line_index": 0, + "updated_at": "", + "txt_file_count": 0, + "latest_txt_file": "" + }, + { + "domain": "sanmudc.com", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "file_index": 0, + "line_index": 0, + "updated_at": "", + "txt_file_count": 0, + "latest_txt_file": "" + }, + { + "domain": "sanmumei.com", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "file_index": 0, + "line_index": 0, + "updated_at": "", + "txt_file_count": 0, + "latest_txt_file": "" + }, + { + "domain": "shuzilehuo.com", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "file_index": 0, + "line_index": 0, + "updated_at": "", + "txt_file_count": 0, + "latest_txt_file": "" + }, + { + "domain": "siqiake.com", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "file_index": 0, + "line_index": 0, + "updated_at": "", + "txt_file_count": 0, + "latest_txt_file": "" + }, + { + "domain": "szyaskawa.com", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "file_index": 0, + "line_index": 0, + "updated_at": "", + "txt_file_count": 0, + "latest_txt_file": "" + }, + { + "domain": "traffic-supply.example.com", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "file_index": 0, + "line_index": 0, + "updated_at": "", + "txt_file_count": 0, + "latest_txt_file": "" + }, + { + "domain": "uplinkiptv.com", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "file_index": 0, + "line_index": 0, + "updated_at": "", + "txt_file_count": 0, + "latest_txt_file": "" + }, + { + "domain": "video-test.com", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "file_index": 0, + "line_index": 0, + "updated_at": "", + "txt_file_count": 0, + "latest_txt_file": "" + }, + { + "domain": "whjiuxun.com", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "file_index": 0, + "line_index": 0, + "updated_at": "", + "txt_file_count": 0, + "latest_txt_file": "" + }, + { + "domain": "xianweibufengguan.com", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "file_index": 0, + "line_index": 0, + "updated_at": "", + "txt_file_count": 0, + "latest_txt_file": "" + }, + { + "domain": "xinhuiying.com", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "file_index": 0, + "line_index": 0, + "updated_at": "", + "txt_file_count": 0, + "latest_txt_file": "" + }, + { + "domain": "xiyanya.com", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "file_index": 0, + "line_index": 0, + "updated_at": "", + "txt_file_count": 0, + "latest_txt_file": "" + }, + { + "domain": "xmfuzhen.com", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "file_index": 0, + "line_index": 0, + "updated_at": "", + "txt_file_count": 0, + "latest_txt_file": "" + }, + { + "domain": "xuanwoying.com", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "file_index": 0, + "line_index": 0, + "updated_at": "", + "txt_file_count": 0, + "latest_txt_file": "" + }, + { + "domain": "yifoutech.com", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "file_index": 0, + "line_index": 0, + "updated_at": "", + "txt_file_count": 0, + "latest_txt_file": "" + }, + { + "domain": "ykned.com", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "file_index": 0, + "line_index": 0, + "updated_at": "", + "txt_file_count": 0, + "latest_txt_file": "" + }, + { + "domain": "yunsulu.com", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "file_index": 0, + "line_index": 0, + "updated_at": "", + "txt_file_count": 0, + "latest_txt_file": "" + }, + { + "domain": "zfjiajiale.com", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "file_index": 0, + "line_index": 0, + "updated_at": "", + "txt_file_count": 0, + "latest_txt_file": "" + }, + { + "domain": "zglanyang.com", + "token_ready": false, + "token_masked": "", + "state_ready": false, + "state_path": "", + "file_index": 0, + "line_index": 0, + "updated_at": "", + "txt_file_count": 0, + "latest_txt_file": "" + } + ], + "note": "当前摘要复用现有 PlanTask 百度推送执行链,只做观察层:看任务是否启用、哪些域名配置了 token、哪些域名已经产生日志/进度状态。", + "summary_json_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-seo-external/latest/baidu-push.summary.json", + "summary_html_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-seo-external/latest/baidu-push.summary.html" +} diff --git a/code/public/_admin_templates/domain-seo-external/latest/search-console-fetch.summary.html b/code/public/_admin_templates/domain-seo-external/latest/search-console-fetch.summary.html new file mode 100644 index 0000000..cfb5a38 --- /dev/null +++ b/code/public/_admin_templates/domain-seo-external/latest/search-console-fetch.summary.html @@ -0,0 +1 @@ +Search Console Fetch Summary

Search Console Fetch Summary

当前是 Search Console fetch helper 骨架:它不会真实发请求,但会把真正准备请求的 property、维度、时间范围和当前阻塞原因列出来,方便后续无缝接入真实 API。

status
blocked_by_client
planned_request_count
1
credential_ready
yes
property_map_ready
yes
client_ready
no
blocked_reason
Google Search Console client 依赖缺失

Request Plan

hostsite_urlscopedimensionsmetricsdate_rangerequest_status
chuanjiafeng.netsc-domain:chuanjiafeng.netdomainquery, pageimpressions, clicks, ctr, avg_position2026-04-04 ~ 2026-04-10client_missing

Next Steps

\ No newline at end of file diff --git a/code/public/_admin_templates/domain-seo-external/latest/search-console-fetch.summary.json b/code/public/_admin_templates/domain-seo-external/latest/search-console-fetch.summary.json new file mode 100644 index 0000000..e017211 --- /dev/null +++ b/code/public/_admin_templates/domain-seo-external/latest/search-console-fetch.summary.json @@ -0,0 +1,43 @@ +{ + "generated_at": "2026-04-10T17:00:19+08:00", + "provider_key": "google_search_console", + "mode": "search_console_fetch_skeleton", + "status": "blocked_by_client", + "days": 7, + "credential_ready": true, + "property_map_ready": true, + "client_dependency_ready": false, + "planned_request_count": 1, + "request_plan": [ + { + "host": "chuanjiafeng.net", + "site_url": "sc-domain:chuanjiafeng.net", + "property_scope": "domain", + "request_dimensions": [ + "query", + "page" + ], + "request_metrics": [ + "impressions", + "clicks", + "ctr", + "avg_position" + ], + "date_range": { + "days": 7, + "start_date": "2026-04-04", + "end_date": "2026-04-10" + }, + "request_status": "client_missing" + } + ], + "blocked_reason": "Google Search Console client 依赖缺失", + "next_steps": [ + "补 Google Search Console client 依赖或 HTTP 调用层", + "接真实 query/page 请求", + "把真实结果写入 real summary / trend / failed queue" + ], + "note": "当前是 Search Console fetch helper 骨架:它不会真实发请求,但会把真正准备请求的 property、维度、时间范围和当前阻塞原因列出来,方便后续无缝接入真实 API。", + "summary_json_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-seo-external/latest/search-console-fetch.summary.json", + "summary_html_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-seo-external/latest/search-console-fetch.summary.html" +} diff --git a/code/public/_admin_templates/domain-seo-external/latest/search-console-provider-plan.summary.html b/code/public/_admin_templates/domain-seo-external/latest/search-console-provider-plan.summary.html new file mode 100644 index 0000000..924bc8c --- /dev/null +++ b/code/public/_admin_templates/domain-seo-external/latest/search-console-provider-plan.summary.html @@ -0,0 +1 @@ +Search Console Provider Plan

Search Console Provider Plan

当前是 Search Console provider 计划层:它明确凭证、映射、client 和待拉数范围是否齐备,用来判断什么时候可以真正进入 Search Console 拉数实现。

status
ready_for_client_implementation
credential_ready
yes
property_map_ready
yes
client_ready
no
mapped_hosts
1
days
7

credential_path: /www/wwwroot/diff-maccms/SEONexus/code/storage/external-seo/google-search-console.credentials.json

property_map_path: /www/wwwroot/diff-maccms/SEONexus/code/storage/external-seo/google-search-console.property-map.json

Properties Preview

hostsite_urlproperty_scope
chuanjiafeng.netsc-domain:chuanjiafeng.netdomain

Next Steps

\ No newline at end of file diff --git a/code/public/_admin_templates/domain-seo-external/latest/search-console-provider-plan.summary.json b/code/public/_admin_templates/domain-seo-external/latest/search-console-provider-plan.summary.json new file mode 100644 index 0000000..6e9727e --- /dev/null +++ b/code/public/_admin_templates/domain-seo-external/latest/search-console-provider-plan.summary.json @@ -0,0 +1,41 @@ +{ + "generated_at": "2026-04-10T16:57:38+08:00", + "provider_key": "google_search_console", + "provider_label": "Google Search Console", + "days": 7, + "status": "ready_for_client_implementation", + "credential_ready": true, + "property_map_ready": true, + "client_dependency_ready": false, + "credential_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/external-seo/google-search-console.credentials.json", + "property_map_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/external-seo/google-search-console.property-map.json", + "mapped_hosts_count": 1, + "properties_preview": [ + { + "host": "chuanjiafeng.net", + "site_url": "sc-domain:chuanjiafeng.net", + "property_scope": "domain" + } + ], + "fetch_scope": { + "days": 7, + "dimensions": [ + "query", + "page" + ], + "aggregations": [ + "impressions", + "clicks", + "ctr", + "avg_position" + ] + }, + "next_steps": [ + "凭证和 property map 都已齐备", + "下一步补 Google Search Console client 依赖或 HTTP 调用层", + "然后实现最近 7 天 query/page summary 拉数" + ], + "note": "当前是 Search Console provider 计划层:它明确凭证、映射、client 和待拉数范围是否齐备,用来判断什么时候可以真正进入 Search Console 拉数实现。", + "summary_json_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-seo-external/latest/search-console-provider-plan.summary.json", + "summary_html_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-seo-external/latest/search-console-provider-plan.summary.html" +} diff --git a/code/public/_admin_templates/domain-seo-external/latest/seo-external-cn-overview.summary.html b/code/public/_admin_templates/domain-seo-external/latest/seo-external-cn-overview.summary.html new file mode 100644 index 0000000..0a3b221 --- /dev/null +++ b/code/public/_admin_templates/domain-seo-external/latest/seo-external-cn-overview.summary.html @@ -0,0 +1 @@ +SEO External CN Overview

SEO External CN Overview

大陆 SEO 总览面板会把快照摘要、收录变化、关键词升降和自动优化建议合并到一个视角里,适合批量域名值班时先看大盘。

generated_at: 2026-04-10T19:01:39+08:00

health_label: warming

host_count
1
indexed_like
1
newly_indexed
1
keyword_up
0

Top Hosts

hostproviderindexed_statuspc_keyword_countmobile_keyword_count
a.combaidu_siteindexed_like00

Top Suggestions

prioritytitleaction
medium有新增收录域名优先对新增收录域名继续补充列表页、详情页和播放页内容供给,观察是否能进一步带动关键词增长。
medium当前还没有关键词 ready 域名优先盯住已收录 host,等第一批词出现后再做大规模排名升降判断。
\ No newline at end of file diff --git a/code/public/_admin_templates/domain-seo-external/latest/seo-external-cn-overview.summary.json b/code/public/_admin_templates/domain-seo-external/latest/seo-external-cn-overview.summary.json new file mode 100644 index 0000000..d48fdd0 --- /dev/null +++ b/code/public/_admin_templates/domain-seo-external/latest/seo-external-cn-overview.summary.json @@ -0,0 +1,74 @@ +{ + "generated_at": "2026-04-10T19:01:39+08:00", + "mode": "seo_external_cn_overview", + "days": 14, + "health_label": "warming", + "priority_buckets": { + "high": 0, + "medium": 2, + "low": 0 + }, + "snapshot_summary": { + "latest_metric_date": "2026-04-10", + "snapshot_count": 3, + "host_count": 1, + "indexed_like_host_count": 1, + "keyword_ready_host_count": 0, + "traffic_ready_host_count": 0 + }, + "index_movement": { + "latest_metric_date": "2026-04-10", + "newly_indexed_count": 1, + "lost_indexed_count": 0, + "captcha_count": 0, + "blocked_count": 0, + "no_result_count": 0 + }, + "keyword_movement": { + "latest_metric_date": "2026-04-10", + "new_count": 1, + "up_count": 0, + "down_count": 0, + "dropped_count": 0 + }, + "top_hosts": [ + { + "host": "a.com", + "provider": "baidu_site", + "metric_date": "2026-04-10", + "status": "indexed_like", + "indexed_status": "indexed_like", + "baidu_pc_ip_range": "", + "baidu_mobile_ip_range": "", + "pc_keyword_count": 0, + "mobile_keyword_count": 0, + "keyword_ready": false, + "traffic_ready": false + } + ], + "top_suggestions": [ + { + "priority": "medium", + "type": "index_growth", + "title": "有新增收录域名", + "summary": "部分域名已经进入新增收录阶段,可以把这些域名作为当前模板链和内容策略的正样本。", + "action": "优先对新增收录域名继续补充列表页、详情页和播放页内容供给,观察是否能进一步带动关键词增长。", + "evidence": { + "newly_indexed_count": 1 + } + }, + { + "priority": "medium", + "type": "no_keyword_ready_hosts", + "title": "当前还没有关键词 ready 域名", + "summary": "历史快照里还没有域名形成稳定的关键词侧结果,爱站趋势仍处于冷启动态。", + "action": "优先盯住已收录 host,等第一批词出现后再做大规模排名升降判断。", + "evidence": { + "keyword_ready_host_count": 0 + } + } + ], + "note": "大陆 SEO 总览面板会把快照摘要、收录变化、关键词升降和自动优化建议合并到一个视角里,适合批量域名值班时先看大盘。", + "summary_json_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-seo-external/latest/seo-external-cn-overview.summary.json", + "summary_html_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-seo-external/latest/seo-external-cn-overview.summary.html" +} diff --git a/code/public/_admin_templates/domain-seo-external/latest/seo-external-real.summary.html b/code/public/_admin_templates/domain-seo-external/latest/seo-external-real.summary.html new file mode 100644 index 0000000..087b9e0 --- /dev/null +++ b/code/public/_admin_templates/domain-seo-external/latest/seo-external-real.summary.html @@ -0,0 +1 @@ +站外真实结果摘要

站外真实结果摘要

当前结果优先消费 Node 自动快照。它反映的是收录、起词和流量就绪等自动化信号,不是 Search Console 那类展现/点击报表。

生成时间:2026-04-14 20:40:34

数据来源
Node 自动快照 / 爱站 / 百度 site
当前状态
ready
采集域名
31
最近周期内有自动快照的域名数
疑似已收录
0
百度 site 侧看起来已经有结果
已起词域名
1
爱站关键词侧已有数据
流量就绪
1
已有可用流量区间信号
真实数据
已接入
来源状态
data_ready

重点搜索词

搜索词展现
a.com 示例词80

重点页面

页面展现
a.com11
caosheninan.com0
chuanjiafeng.net0
cnzhenbang.com0
codohealth.com0
demo.example.com0
glae.cc0
gxhongzhuang.com0
hbczccq.com0
hyjssb.com0
jingxifa.com0
jpjdxs.com0
jxxgygy.com0
lcdchq.com0
leici1940.com0
lgyz.net0
lmjcg.com0
lsrxs.com0
nblssy.com0
oronorent.com0

下一步建议

\ No newline at end of file diff --git a/code/public/_admin_templates/domain-seo-external/latest/seo-external-real.summary.json b/code/public/_admin_templates/domain-seo-external/latest/seo-external-real.summary.json new file mode 100644 index 0000000..19f29ca --- /dev/null +++ b/code/public/_admin_templates/domain-seo-external/latest/seo-external-real.summary.json @@ -0,0 +1,153 @@ +{ + "generated_at": "2026-04-14T20:40:34+08:00", + "mode": "automation_snapshot_real_summary", + "status": "ready", + "days": 7, + "source_mode": "automation_snapshot", + "provider_key": "node_snapshot_analysis", + "provider_label": "Node 自动快照 / 爱站 / 百度 site", + "provider_status": "data_ready", + "credential_path": "", + "client_dependency_ready": true, + "real_metrics_available": true, + "headline_metrics": [ + { + "key": "host_count", + "label": "采集域名", + "value": 31, + "note": "最近周期内有自动快照的域名数" + }, + { + "key": "indexed_like_host_count", + "label": "疑似已收录", + "value": 0, + "note": "百度 site 侧看起来已经有结果" + }, + { + "key": "keyword_ready_host_count", + "label": "已起词域名", + "value": 1, + "note": "爱站关键词侧已有数据" + }, + { + "key": "traffic_ready_host_count", + "label": "流量就绪", + "value": 1, + "note": "已有可用流量区间信号" + } + ], + "metrics": { + "impressions": null, + "clicks": null, + "ctr": null, + "avg_position": null + }, + "top_queries": [ + { + "query": "a.com 示例词", + "impressions": 80 + } + ], + "top_pages": [ + { + "page": "a.com", + "impressions": 11 + }, + { + "page": "caosheninan.com", + "impressions": 0 + }, + { + "page": "chuanjiafeng.net", + "impressions": 0 + }, + { + "page": "cnzhenbang.com", + "impressions": 0 + }, + { + "page": "codohealth.com", + "impressions": 0 + }, + { + "page": "demo.example.com", + "impressions": 0 + }, + { + "page": "glae.cc", + "impressions": 0 + }, + { + "page": "gxhongzhuang.com", + "impressions": 0 + }, + { + "page": "hbczccq.com", + "impressions": 0 + }, + { + "page": "hyjssb.com", + "impressions": 0 + }, + { + "page": "jingxifa.com", + "impressions": 0 + }, + { + "page": "jpjdxs.com", + "impressions": 0 + }, + { + "page": "jxxgygy.com", + "impressions": 0 + }, + { + "page": "lcdchq.com", + "impressions": 0 + }, + { + "page": "leici1940.com", + "impressions": 0 + }, + { + "page": "lgyz.net", + "impressions": 0 + }, + { + "page": "lmjcg.com", + "impressions": 0 + }, + { + "page": "lsrxs.com", + "impressions": 0 + }, + { + "page": "nblssy.com", + "impressions": 0 + }, + { + "page": "oronorent.com", + "impressions": 0 + } + ], + "snapshot_metrics": { + "snapshot_count": 61, + "host_count": 31, + "indexed_like_host_count": 0, + "keyword_ready_host_count": 1, + "traffic_ready_host_count": 1, + "newly_indexed_count": 0, + "lost_indexed_count": 0, + "keyword_up_count": 0, + "keyword_new_count": 1, + "latest_metric_date": "2026-04-13" + }, + "next_steps": [ + "当前展示的是 Node 自动回推后的快照结果,更适合日常自动化值班。", + "优先盯疑似已收录、已起词和流量就绪这 3 类域名,判断这批域名是否开始自然起量。", + "如果后面再接入平台级点击/展现接口,再把这块升级成更完整的真实流量结果面。" + ], + "note": "当前结果优先消费 Node 自动快照。它反映的是收录、起词和流量就绪等自动化信号,不是 Search Console 那类展现/点击报表。", + "summary_json_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-seo-external/latest/seo-external-real.summary.json", + "summary_html_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-seo-external/latest/seo-external-real.summary.html" +} diff --git a/code/public/_admin_templates/domain-seo-external/latest/seo-external-snapshot-trend.summary.html b/code/public/_admin_templates/domain-seo-external/latest/seo-external-snapshot-trend.summary.html new file mode 100644 index 0000000..3cb4fe7 --- /dev/null +++ b/code/public/_admin_templates/domain-seo-external/latest/seo-external-snapshot-trend.summary.html @@ -0,0 +1 @@ +SEO External Snapshot Trend

SEO External Snapshot Trend

站外快照接收趋势会按最近几次 snapshots/save 的接收结果汇总成功率变化,适合看 Node 回推是否逐步稳定。

generated_at: 2026-04-10T19:01:39+08:00

runs_count
6
latest_success_rate
100
previous_success_rate
100
trend
flat
run_idsourcereceivedinsertedupdatedfailedsuccess_rateupdated_at
190139_snapshot_push_test_b9d8eanode_collector30301002026-04-10T19:01:39+08:00
190107_snapshot_push_test_12e422node_collector30301002026-04-10T19:01:07+08:00
190049_snapshot_push_test_56a26cnode_collector30301002026-04-10T19:00:49+08:00
185932_snapshot_push_test_825265node_collector33001002026-04-10T18:59:32+08:00
185759_snapshot_push_test_040acdnode_collector300302026-04-10T18:57:59+08:00
185755_snapshot_push_test_513c06node_collector300302026-04-10T18:57:55+08:00
\ No newline at end of file diff --git a/code/public/_admin_templates/domain-seo-external/latest/seo-external-snapshot-trend.summary.json b/code/public/_admin_templates/domain-seo-external/latest/seo-external-snapshot-trend.summary.json new file mode 100644 index 0000000..bcc5f62 --- /dev/null +++ b/code/public/_admin_templates/domain-seo-external/latest/seo-external-snapshot-trend.summary.json @@ -0,0 +1,318 @@ +{ + "generated_at": "2026-04-10T19:01:39+08:00", + "mode": "seo_external_snapshot_trend", + "runs_count": 6, + "latest_run": { + "run_id": "190139_snapshot_push_test_b9d8ea", + "run_root_public": "_admin_templates/domain-seo-external/snapshot-runs/20260410/190139_snapshot_push_test_b9d8ea", + "source": "node_collector", + "received_count": 3, + "inserted_count": 0, + "updated_count": 3, + "failed_count": 0, + "inserted_items": [], + "updated_items": [ + { + "id": 1, + "host": "a.com", + "provider": "baidu_site", + "snapshot_type": "site_query", + "scope": "host", + "mode": "updated" + }, + { + "id": 2, + "host": "a.com", + "provider": "aizhan", + "snapshot_type": "aizhan_summary", + "scope": "host", + "mode": "updated" + }, + { + "id": 3, + "host": "a.com", + "provider": "aizhan", + "snapshot_type": "aizhan_keyword", + "scope": "keyword", + "mode": "updated" + } + ], + "errors": [], + "error_buckets": [], + "post_ingest_overview": { + "generated_at": "2026-04-10T19:01:39+08:00", + "mode": "seo_external_cn_overview", + "days": 14, + "health_label": "warming", + "priority_buckets": { + "high": 0, + "medium": 2, + "low": 0 + }, + "snapshot_summary": { + "latest_metric_date": "2026-04-10", + "snapshot_count": 3, + "host_count": 1, + "indexed_like_host_count": 1, + "keyword_ready_host_count": 0, + "traffic_ready_host_count": 0 + }, + "index_movement": { + "latest_metric_date": "2026-04-10", + "newly_indexed_count": 1, + "lost_indexed_count": 0, + "captcha_count": 0, + "blocked_count": 0, + "no_result_count": 0 + }, + "keyword_movement": { + "latest_metric_date": "2026-04-10", + "new_count": 1, + "up_count": 0, + "down_count": 0, + "dropped_count": 0 + }, + "top_hosts": [ + { + "host": "a.com", + "provider": "baidu_site", + "metric_date": "2026-04-10", + "status": "indexed_like", + "indexed_status": "indexed_like", + "baidu_pc_ip_range": "", + "baidu_mobile_ip_range": "", + "pc_keyword_count": 0, + "mobile_keyword_count": 0, + "keyword_ready": false, + "traffic_ready": false + } + ], + "top_suggestions": [ + { + "priority": "medium", + "type": "index_growth", + "title": "有新增收录域名", + "summary": "部分域名已经进入新增收录阶段,可以把这些域名作为当前模板链和内容策略的正样本。", + "action": "优先对新增收录域名继续补充列表页、详情页和播放页内容供给,观察是否能进一步带动关键词增长。", + "evidence": { + "newly_indexed_count": 1 + } + }, + { + "priority": "medium", + "type": "no_keyword_ready_hosts", + "title": "当前还没有关键词 ready 域名", + "summary": "历史快照里还没有域名形成稳定的关键词侧结果,爱站趋势仍处于冷启动态。", + "action": "优先盯住已收录 host,等第一批词出现后再做大规模排名升降判断。", + "evidence": { + "keyword_ready_host_count": 0 + } + } + ], + "note": "大陆 SEO 总览面板会把快照摘要、收录变化、关键词升降和自动优化建议合并到一个视角里,适合批量域名值班时先看大盘。", + "summary_json_path": "_admin_templates/domain-seo-external/latest/seo-external-cn-overview.summary.json", + "summary_html_path": "_admin_templates/domain-seo-external/latest/seo-external-cn-overview.summary.html" + }, + "post_ingest_snapshot_trend": { + "generated_at": "2026-04-10T19:01:39+08:00", + "mode": "seo_external_snapshot_trend", + "runs_count": 6, + "latest_run": { + "run_id": "190139_snapshot_push_test_b9d8ea", + "run_root_public": "_admin_templates/domain-seo-external/snapshot-runs/20260410/190139_snapshot_push_test_b9d8ea", + "source": "node_collector", + "received_count": 3, + "inserted_count": 0, + "updated_count": 3, + "failed_count": 0, + "inserted_items": [], + "updated_items": [ + { + "id": 1, + "host": "a.com", + "provider": "baidu_site", + "snapshot_type": "site_query", + "scope": "host", + "mode": "updated" + }, + { + "id": 2, + "host": "a.com", + "provider": "aizhan", + "snapshot_type": "aizhan_summary", + "scope": "host", + "mode": "updated" + }, + { + "id": 3, + "host": "a.com", + "provider": "aizhan", + "snapshot_type": "aizhan_keyword", + "scope": "keyword", + "mode": "updated" + } + ], + "errors": [], + "error_buckets": [], + "post_ingest_overview": [], + "post_ingest_snapshot_trend": [], + "post_ingest_health_label": "", + "post_ingest_trend_label": "", + "summary_json_path": "_admin_templates/domain-seo-external/snapshot-runs/20260410/190139_snapshot_push_test_b9d8ea/snapshot-ingest.summary.json", + "summary_html_path": "_admin_templates/domain-seo-external/snapshot-runs/20260410/190139_snapshot_push_test_b9d8ea/snapshot-ingest.summary.html", + "payload_json_path": "_admin_templates/domain-seo-external/snapshot-runs/20260410/190139_snapshot_push_test_b9d8ea/snapshots.payload.json", + "updated_at": "2026-04-10T19:01:39+08:00" + }, + "recent_runs": [ + { + "run_id": "190139_snapshot_push_test_b9d8ea", + "source": "node_collector", + "received_count": 3, + "inserted_count": 0, + "updated_count": 3, + "failed_count": 0, + "success_rate": 100, + "updated_at": "2026-04-10T19:01:39+08:00" + }, + { + "run_id": "190107_snapshot_push_test_12e422", + "source": "node_collector", + "received_count": 3, + "inserted_count": 0, + "updated_count": 3, + "failed_count": 0, + "success_rate": 100, + "updated_at": "2026-04-10T19:01:07+08:00" + }, + { + "run_id": "190049_snapshot_push_test_56a26c", + "source": "node_collector", + "received_count": 3, + "inserted_count": 0, + "updated_count": 3, + "failed_count": 0, + "success_rate": 100, + "updated_at": "2026-04-10T19:00:49+08:00" + }, + { + "run_id": "185932_snapshot_push_test_825265", + "source": "node_collector", + "received_count": 3, + "inserted_count": 3, + "updated_count": 0, + "failed_count": 0, + "success_rate": 100, + "updated_at": "2026-04-10T18:59:32+08:00" + }, + { + "run_id": "185759_snapshot_push_test_040acd", + "source": "node_collector", + "received_count": 3, + "inserted_count": 0, + "updated_count": 0, + "failed_count": 3, + "success_rate": 0, + "updated_at": "2026-04-10T18:57:59+08:00" + }, + { + "run_id": "185755_snapshot_push_test_513c06", + "source": "node_collector", + "received_count": 3, + "inserted_count": 0, + "updated_count": 0, + "failed_count": 3, + "success_rate": 0, + "updated_at": "2026-04-10T18:57:55+08:00" + } + ], + "success_trend": { + "latest_success_rate": 100, + "previous_success_rate": 100, + "latest_failed_count": 0, + "previous_failed_count": 0, + "label": "flat" + }, + "note": "站外快照接收趋势会按最近几次 snapshots/save 的接收结果汇总成功率变化,适合看 Node 回推是否逐步稳定。", + "summary_json_path": "_admin_templates/domain-seo-external/latest/seo-external-snapshot-trend.summary.json", + "summary_html_path": "_admin_templates/domain-seo-external/latest/seo-external-snapshot-trend.summary.html" + }, + "post_ingest_health_label": "warming", + "post_ingest_trend_label": "flat", + "summary_json_path": "_admin_templates/domain-seo-external/snapshot-runs/20260410/190139_snapshot_push_test_b9d8ea/snapshot-ingest.summary.json", + "summary_html_path": "_admin_templates/domain-seo-external/snapshot-runs/20260410/190139_snapshot_push_test_b9d8ea/snapshot-ingest.summary.html", + "payload_json_path": "_admin_templates/domain-seo-external/snapshot-runs/20260410/190139_snapshot_push_test_b9d8ea/snapshots.payload.json", + "updated_at": "2026-04-10T19:01:39+08:00" + }, + "recent_runs": [ + { + "run_id": "190139_snapshot_push_test_b9d8ea", + "source": "node_collector", + "received_count": 3, + "inserted_count": 0, + "updated_count": 3, + "failed_count": 0, + "success_rate": 100, + "updated_at": "2026-04-10T19:01:39+08:00" + }, + { + "run_id": "190107_snapshot_push_test_12e422", + "source": "node_collector", + "received_count": 3, + "inserted_count": 0, + "updated_count": 3, + "failed_count": 0, + "success_rate": 100, + "updated_at": "2026-04-10T19:01:07+08:00" + }, + { + "run_id": "190049_snapshot_push_test_56a26c", + "source": "node_collector", + "received_count": 3, + "inserted_count": 0, + "updated_count": 3, + "failed_count": 0, + "success_rate": 100, + "updated_at": "2026-04-10T19:00:49+08:00" + }, + { + "run_id": "185932_snapshot_push_test_825265", + "source": "node_collector", + "received_count": 3, + "inserted_count": 3, + "updated_count": 0, + "failed_count": 0, + "success_rate": 100, + "updated_at": "2026-04-10T18:59:32+08:00" + }, + { + "run_id": "185759_snapshot_push_test_040acd", + "source": "node_collector", + "received_count": 3, + "inserted_count": 0, + "updated_count": 0, + "failed_count": 3, + "success_rate": 0, + "updated_at": "2026-04-10T18:57:59+08:00" + }, + { + "run_id": "185755_snapshot_push_test_513c06", + "source": "node_collector", + "received_count": 3, + "inserted_count": 0, + "updated_count": 0, + "failed_count": 3, + "success_rate": 0, + "updated_at": "2026-04-10T18:57:55+08:00" + } + ], + "success_trend": { + "latest_success_rate": 100, + "previous_success_rate": 100, + "latest_failed_count": 0, + "previous_failed_count": 0, + "label": "flat" + }, + "note": "站外快照接收趋势会按最近几次 snapshots/save 的接收结果汇总成功率变化,适合看 Node 回推是否逐步稳定。", + "summary_json_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-seo-external/latest/seo-external-snapshot-trend.summary.json", + "summary_html_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-seo-external/latest/seo-external-snapshot-trend.summary.html" +} diff --git a/code/public/_admin_templates/domain-seo-external/latest/seo-external-trend.summary.html b/code/public/_admin_templates/domain-seo-external/latest/seo-external-trend.summary.html new file mode 100644 index 0000000..6acdb8b --- /dev/null +++ b/code/public/_admin_templates/domain-seo-external/latest/seo-external-trend.summary.html @@ -0,0 +1 @@ +站外效果趋势

站外效果趋势

当前趋势优先展示这批域名的可访问恢复情况,用来判断站外 SEO 起量前的准备态是否稳定。它不是最终展现/点击趋势,而是上线前恢复趋势。

生成时间:2026-04-14 20:40:34

趋势说明:当前这批域名已全部通过探测,可继续观察真实收录与关键词结果。

域名数
25
已恢复
25
待关注
0
当前异常队列
0
趋势
持平

最近重跑

运行批次通过失败更新时间
162227_failed_queue_3e4122002026-04-12 16:22:27
155443_failed_queue_5d092b502026-04-12 15:54:43
152933_failed_queue_fe998e1952026-04-12 15:29:33
141621_failed_queue_dc379f102026-04-12 14:16:21
133718_failed_queue_f9311c0252026-04-12 13:37:18
232205_failed_queue_feda8e002026-04-10 23:22:05
230844_failed_queue_2453f4002026-04-10 23:08:44
230636_failed_queue_3f9934002026-04-10 23:06:36
155518_failed_queue_692df6002026-04-10 15:55:18
152706_failed_queue_408b29002026-04-10 15:27:06

最近导入

运行批次探测数通过失败更新时间
022709_excel_import_7686a4250252026-04-12 02:28:56
manual_test1102026-04-10 14:59:37
\ No newline at end of file diff --git a/code/public/_admin_templates/domain-seo-external/latest/seo-external-trend.summary.json b/code/public/_admin_templates/domain-seo-external/latest/seo-external-trend.summary.json new file mode 100644 index 0000000..2e14561 --- /dev/null +++ b/code/public/_admin_templates/domain-seo-external/latest/seo-external-trend.summary.json @@ -0,0 +1,219 @@ +{ + "generated_at": "2026-04-14T20:40:34+08:00", + "mode": "proxy_readiness_trend", + "note": "当前趋势优先展示这批域名的可访问恢复情况,用来判断站外 SEO 起量前的准备态是否稳定。它不是最终展现/点击趋势,而是上线前恢复趋势。", + "real_external_metrics": false, + "host_count": 25, + "ready_count": 25, + "attention_count": 0, + "probe_failed_count": 0, + "external_queue_count": 0, + "tracked_keyword_count": 25, + "hero_summary": "当前这批域名已全部通过探测,可继续观察真实收录与关键词结果。", + "proxy_signal_trend": { + "label": "flat", + "direction": 0, + "latest_failed_count": 0, + "previous_failed_count": 0 + }, + "recent_reruns": [ + { + "run_id": "162227_failed_queue_3e4122", + "passed_count": 0, + "failed_count": 0, + "updated_at": "2026-04-12T16:22:27+08:00" + }, + { + "run_id": "155443_failed_queue_5d092b", + "passed_count": 5, + "failed_count": 0, + "updated_at": "2026-04-12T15:54:43+08:00" + }, + { + "run_id": "152933_failed_queue_fe998e", + "passed_count": 19, + "failed_count": 5, + "updated_at": "2026-04-12T15:29:33+08:00" + }, + { + "run_id": "141621_failed_queue_dc379f", + "passed_count": 1, + "failed_count": 0, + "updated_at": "2026-04-12T14:16:21+08:00" + }, + { + "run_id": "133718_failed_queue_f9311c", + "passed_count": 0, + "failed_count": 25, + "updated_at": "2026-04-12T13:37:18+08:00" + }, + { + "run_id": "232205_failed_queue_feda8e", + "passed_count": 0, + "failed_count": 0, + "updated_at": "2026-04-10T23:22:05+08:00" + }, + { + "run_id": "230844_failed_queue_2453f4", + "passed_count": 0, + "failed_count": 0, + "updated_at": "2026-04-10T23:08:44+08:00" + }, + { + "run_id": "230636_failed_queue_3f9934", + "passed_count": 0, + "failed_count": 0, + "updated_at": "2026-04-10T23:06:36+08:00" + }, + { + "run_id": "155518_failed_queue_692df6", + "passed_count": 0, + "failed_count": 0, + "updated_at": "2026-04-10T15:55:18+08:00" + }, + { + "run_id": "152706_failed_queue_408b29", + "passed_count": 0, + "failed_count": 0, + "updated_at": "2026-04-10T15:27:06+08:00" + } + ], + "recent_import_runs": [ + { + "run_id": "022709_excel_import_7686a4", + "processed_count": 25, + "passed_count": 0, + "failed_count": 25, + "updated_at": "2026-04-12T02:28:56+08:00" + }, + { + "run_id": "manual_test", + "processed_count": 1, + "passed_count": 1, + "failed_count": 0, + "updated_at": "2026-04-10T14:59:37+08:00" + } + ], + "latest_import_run": { + "run_id": "022709_excel_import_7686a4", + "run_root_public": "_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4", + "status": "imported", + "probe_status": "failed", + "processed_count": 25, + "passed_count": 0, + "failed_count": 25, + "hosts": [ + "cnzhenbang.com", + "hyjssb.com", + "sdxtwnc.com", + "hbczccq.com", + "lgyz.net", + "pcslcl.com", + "vikau.com", + "codohealth.com", + "nblssy.com", + "caosheninan.com", + "visitsumenep.com", + "oronorent.com", + "zbsv3.com", + "ukoys.com", + "lcdchq.com", + "jxxgygy.com", + "leici1940.com", + "jingxifa.com", + "sdxhtgcl.com", + "jpjdxs.com", + "lsrxs.com", + "gxhongzhuang.com", + "glae.cc", + "sjzyunyang.com", + "lmjcg.com" + ], + "failed_hosts": [ + "cnzhenbang.com", + "hyjssb.com", + "sdxtwnc.com", + "hbczccq.com", + "lgyz.net", + "pcslcl.com", + "vikau.com", + "codohealth.com", + "nblssy.com", + "caosheninan.com", + "visitsumenep.com", + "oronorent.com", + "zbsv3.com", + "ukoys.com", + "lcdchq.com", + "jxxgygy.com", + "leici1940.com", + "jingxifa.com", + "sdxhtgcl.com", + "jpjdxs.com", + "lsrxs.com", + "gxhongzhuang.com", + "glae.cc", + "sjzyunyang.com", + "lmjcg.com" + ], + "summary_json_path": "_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/import-probe.summary.json", + "summary_html_path": "_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/import-probe.summary.html", + "uploaded_excel_path": "_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/uploaded.xlsx", + "updated_at": "2026-04-12T02:28:56+08:00" + }, + "latest_rerun_run": { + "run_id": "162227_failed_queue_3e4122", + "run_root_public": "_admin_templates/domain-import-reruns/20260412/162227_failed_queue_3e4122", + "processed_count": 0, + "passed_count": 0, + "failed_count": 0, + "hosts": [], + "summary_json_path": "_admin_templates/domain-import-reruns/20260412/162227_failed_queue_3e4122/import-rerun.summary.json", + "summary_html_path": "_admin_templates/domain-import-reruns/20260412/162227_failed_queue_3e4122/import-rerun.summary.html", + "updated_at": "2026-04-12T16:22:27+08:00" + }, + "top_keywords": [ + { + "keyword": "国产在线观看免费全集电视", + "host_count": 1 + }, + { + "keyword": "中文在线字幕免费观看电视", + "host_count": 1 + }, + { + "keyword": "国产欧美日韩久久久久韩剧", + "host_count": 1 + }, + { + "keyword": "国产精品亚洲综合飘雪日本", + "host_count": 1 + }, + { + "keyword": "亚洲精品高清视频在线观看", + "host_count": 1 + }, + { + "keyword": "99国产在线99在线视频", + "host_count": 1 + }, + { + "keyword": "日韩欧美亚洲国产精品字幕", + "host_count": 1 + }, + { + "keyword": "中文字幕在线电影网", + "host_count": 1 + }, + { + "keyword": "青苹果乐园影院电视剧免费", + "host_count": 1 + }, + { + "keyword": "精品久久久久中文字幕电视", + "host_count": 1 + } + ], + "summary_json_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-seo-external/latest/seo-external-trend.summary.json", + "summary_html_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-seo-external/latest/seo-external-trend.summary.html" +} diff --git a/code/public/_admin_templates/domain-seo-external/latest/seo-external.summary.html b/code/public/_admin_templates/domain-seo-external/latest/seo-external.summary.html new file mode 100644 index 0000000..f3764be --- /dev/null +++ b/code/public/_admin_templates/domain-seo-external/latest/seo-external.summary.html @@ -0,0 +1 @@ +站外效果摘要

站外效果摘要

当前摘要优先展示最新的导入探测与重跑结果,用来判断这批域名是否已经具备站外 SEO 起量前的可访问基础。这里不是搜索引擎最终收录/点击结果,而是上线前准备态。

生成时间:2026-04-14 20:40:34

摘要说明:当前这批域名已全部通过探测,可继续观察真实收录与关键词结果。

域名数
25
已恢复
25
待关注
0
关键词样本
25

趋势:持平

重点关键词样本

关键词关联域名数
国产在线观看免费全集电视1
中文在线字幕免费观看电视1
国产欧美日韩久久久久韩剧1
国产精品亚洲综合飘雪日本1
亚洲精品高清视频在线观看1
99国产在线99在线视频1
日韩欧美亚洲国产精品字幕1
中文字幕在线电影网1
青苹果乐园影院电视剧免费1
精品久久久久中文字幕电视1

域名明细

域名当前状态探测结果失败阶段搜索词样本样本来源最近探测时间
cnzhenbang.com已恢复通过-国产在线观看免费全集电视重跑结果2026-04-12 14:16:21
hyjssb.com已恢复通过-中文在线字幕免费观看电视重跑结果2026-04-12 15:21:25
sdxtwnc.com已恢复通过-国产欧美日韩久久久久韩剧重跑结果2026-04-12 15:21:48
hbczccq.com已恢复通过-国产精品亚洲综合飘雪日本重跑结果2026-04-12 15:54:08
lgyz.net已恢复通过-亚洲精品高清视频在线观看重跑结果2026-04-12 15:22:35
pcslcl.com已恢复通过-99国产在线99在线视频重跑结果2026-04-12 15:22:43
vikau.com已恢复通过-日韩欧美亚洲国产精品字幕重跑结果2026-04-12 15:54:20
codohealth.com已恢复通过-中文字幕在线电影网重跑结果2026-04-12 15:23:10
nblssy.com已恢复通过-青苹果乐园影院电视剧免费重跑结果2026-04-12 15:23:34
caosheninan.com已恢复通过-精品久久久久中文字幕电视重跑结果2026-04-12 15:23:57
visitsumenep.com已恢复通过-国产精品人成视频免费播放重跑结果2026-04-12 15:24:20
oronorent.com已恢复通过-精品欧美成人高清视频在线重跑结果2026-04-12 15:24:44
zbsv3.com已恢复通过-欧美在线综合中文字幕超清重跑结果2026-04-12 15:25:07
ukoys.com已恢复通过-久久精品国产精品中文字幕重跑结果2026-04-12 15:25:31
lcdchq.com已恢复通过-欧美国产精品一区三区欧美重跑结果2026-04-12 15:25:55
jxxgygy.com已恢复通过-久久久久国产一区二区三区重跑结果2026-04-12 15:26:18
leici1940.com已恢复通过-亚洲国产欧美在线日韩免费重跑结果2026-04-12 15:26:32
jingxifa.com已恢复通过-日韩欧美中文字幕电影日韩重跑结果2026-04-12 15:54:26
sdxhtgcl.com已恢复通过-国产福利在线观看重跑结果2026-04-12 15:27:14
jpjdxs.com已恢复通过-亚洲天堂精品视频重跑结果2026-04-12 15:27:37
lsrxs.com已恢复通过-国产91在线播放重跑结果2026-04-12 15:28:00
gxhongzhuang.com已恢复通过-91视频在线免费观看重跑结果2026-04-12 15:28:23
glae.cc已恢复通过-日韩剧在线观看高清版电视重跑结果2026-04-12 15:54:31
sjzyunyang.com已恢复通过-欧美视频在线播放重跑结果2026-04-12 15:29:10
lmjcg.com已恢复通过-欧美视频在线观看重跑结果2026-04-12 15:54:43
\ No newline at end of file diff --git a/code/public/_admin_templates/domain-seo-external/latest/seo-external.summary.json b/code/public/_admin_templates/domain-seo-external/latest/seo-external.summary.json new file mode 100644 index 0000000..5fb7e7b --- /dev/null +++ b/code/public/_admin_templates/domain-seo-external/latest/seo-external.summary.json @@ -0,0 +1,525 @@ +{ + "generated_at": "2026-04-14T20:40:34+08:00", + "mode": "proxy_readiness", + "note": "当前摘要优先展示最新的导入探测与重跑结果,用来判断这批域名是否已经具备站外 SEO 起量前的可访问基础。这里不是搜索引擎最终收录/点击结果,而是上线前准备态。", + "real_external_metrics": false, + "host_count": 25, + "ready_count": 25, + "attention_count": 0, + "probe_failed_count": 0, + "tracked_keyword_count": 25, + "latest_import_run": { + "run_id": "022709_excel_import_7686a4", + "run_root_public": "_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4", + "status": "imported", + "probe_status": "failed", + "processed_count": 25, + "passed_count": 0, + "failed_count": 25, + "hosts": [ + "cnzhenbang.com", + "hyjssb.com", + "sdxtwnc.com", + "hbczccq.com", + "lgyz.net", + "pcslcl.com", + "vikau.com", + "codohealth.com", + "nblssy.com", + "caosheninan.com", + "visitsumenep.com", + "oronorent.com", + "zbsv3.com", + "ukoys.com", + "lcdchq.com", + "jxxgygy.com", + "leici1940.com", + "jingxifa.com", + "sdxhtgcl.com", + "jpjdxs.com", + "lsrxs.com", + "gxhongzhuang.com", + "glae.cc", + "sjzyunyang.com", + "lmjcg.com" + ], + "failed_hosts": [ + "cnzhenbang.com", + "hyjssb.com", + "sdxtwnc.com", + "hbczccq.com", + "lgyz.net", + "pcslcl.com", + "vikau.com", + "codohealth.com", + "nblssy.com", + "caosheninan.com", + "visitsumenep.com", + "oronorent.com", + "zbsv3.com", + "ukoys.com", + "lcdchq.com", + "jxxgygy.com", + "leici1940.com", + "jingxifa.com", + "sdxhtgcl.com", + "jpjdxs.com", + "lsrxs.com", + "gxhongzhuang.com", + "glae.cc", + "sjzyunyang.com", + "lmjcg.com" + ], + "summary_json_path": "_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/import-probe.summary.json", + "summary_html_path": "_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/import-probe.summary.html", + "uploaded_excel_path": "_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/uploaded.xlsx", + "updated_at": "2026-04-12T02:28:56+08:00" + }, + "latest_rerun_run": { + "run_id": "162227_failed_queue_3e4122", + "run_root_public": "_admin_templates/domain-import-reruns/20260412/162227_failed_queue_3e4122", + "processed_count": 0, + "passed_count": 0, + "failed_count": 0, + "hosts": [], + "summary_json_path": "_admin_templates/domain-import-reruns/20260412/162227_failed_queue_3e4122/import-rerun.summary.json", + "summary_html_path": "_admin_templates/domain-import-reruns/20260412/162227_failed_queue_3e4122/import-rerun.summary.html", + "updated_at": "2026-04-12T16:22:27+08:00" + }, + "queue_count": 0, + "rerun_runs_count": 13, + "failure_trend": { + "latest_failed_count": 0, + "previous_failed_count": 0, + "direction": 0, + "label": "flat", + "basis": "previous_rerun" + }, + "hero_summary": "当前这批域名已全部通过探测,可继续观察真实收录与关键词结果。", + "top_keywords": [ + { + "keyword": "国产在线观看免费全集电视", + "host_count": 1 + }, + { + "keyword": "中文在线字幕免费观看电视", + "host_count": 1 + }, + { + "keyword": "国产欧美日韩久久久久韩剧", + "host_count": 1 + }, + { + "keyword": "国产精品亚洲综合飘雪日本", + "host_count": 1 + }, + { + "keyword": "亚洲精品高清视频在线观看", + "host_count": 1 + }, + { + "keyword": "99国产在线99在线视频", + "host_count": 1 + }, + { + "keyword": "日韩欧美亚洲国产精品字幕", + "host_count": 1 + }, + { + "keyword": "中文字幕在线电影网", + "host_count": 1 + }, + { + "keyword": "青苹果乐园影院电视剧免费", + "host_count": 1 + }, + { + "keyword": "精品久久久久中文字幕电视", + "host_count": 1 + } + ], + "hosts": [ + { + "host": "cnzhenbang.com", + "probe_status": "passed", + "external_readiness": "ready", + "all_passed": true, + "failed_stage": "", + "search_keyword": "国产在线观看免费全集电视", + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren", + "sample_source": "rerun_recovered", + "probed_at": "2026-04-12T14:16:21+08:00", + "summary_html_path": "_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/import-probe.summary.html", + "summary_json_path": "_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/import-probe.summary.json", + "effective_run_type": "rerun" + }, + { + "host": "hyjssb.com", + "probe_status": "passed", + "external_readiness": "ready", + "all_passed": true, + "failed_stage": "", + "search_keyword": "中文在线字幕免费观看电视", + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren", + "sample_source": "rerun_recovered", + "probed_at": "2026-04-12T15:21:25+08:00", + "summary_html_path": "_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/import-probe.summary.html", + "summary_json_path": "_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/import-probe.summary.json", + "effective_run_type": "rerun" + }, + { + "host": "sdxtwnc.com", + "probe_status": "passed", + "external_readiness": "ready", + "all_passed": true, + "failed_stage": "", + "search_keyword": "国产欧美日韩久久久久韩剧", + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren", + "sample_source": "rerun_recovered", + "probed_at": "2026-04-12T15:21:48+08:00", + "summary_html_path": "_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/import-probe.summary.html", + "summary_json_path": "_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/import-probe.summary.json", + "effective_run_type": "rerun" + }, + { + "host": "hbczccq.com", + "probe_status": "passed", + "external_readiness": "ready", + "all_passed": true, + "failed_stage": "", + "search_keyword": "国产精品亚洲综合飘雪日本", + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren", + "sample_source": "rerun_recovered", + "probed_at": "2026-04-12T15:54:08+08:00", + "summary_html_path": "_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/import-probe.summary.html", + "summary_json_path": "_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/import-probe.summary.json", + "effective_run_type": "rerun" + }, + { + "host": "lgyz.net", + "probe_status": "passed", + "external_readiness": "ready", + "all_passed": true, + "failed_stage": "", + "search_keyword": "亚洲精品高清视频在线观看", + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren", + "sample_source": "rerun_recovered", + "probed_at": "2026-04-12T15:22:35+08:00", + "summary_html_path": "_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/import-probe.summary.html", + "summary_json_path": "_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/import-probe.summary.json", + "effective_run_type": "rerun" + }, + { + "host": "pcslcl.com", + "probe_status": "passed", + "external_readiness": "ready", + "all_passed": true, + "failed_stage": "", + "search_keyword": "99国产在线99在线视频", + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren", + "sample_source": "rerun_recovered", + "probed_at": "2026-04-12T15:22:43+08:00", + "summary_html_path": "_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/import-probe.summary.html", + "summary_json_path": "_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/import-probe.summary.json", + "effective_run_type": "rerun" + }, + { + "host": "vikau.com", + "probe_status": "passed", + "external_readiness": "ready", + "all_passed": true, + "failed_stage": "", + "search_keyword": "日韩欧美亚洲国产精品字幕", + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren", + "sample_source": "rerun_recovered", + "probed_at": "2026-04-12T15:54:20+08:00", + "summary_html_path": "_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/import-probe.summary.html", + "summary_json_path": "_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/import-probe.summary.json", + "effective_run_type": "rerun" + }, + { + "host": "codohealth.com", + "probe_status": "passed", + "external_readiness": "ready", + "all_passed": true, + "failed_stage": "", + "search_keyword": "中文字幕在线电影网", + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren", + "sample_source": "rerun_recovered", + "probed_at": "2026-04-12T15:23:10+08:00", + "summary_html_path": "_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/import-probe.summary.html", + "summary_json_path": "_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/import-probe.summary.json", + "effective_run_type": "rerun" + }, + { + "host": "nblssy.com", + "probe_status": "passed", + "external_readiness": "ready", + "all_passed": true, + "failed_stage": "", + "search_keyword": "青苹果乐园影院电视剧免费", + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren", + "sample_source": "rerun_recovered", + "probed_at": "2026-04-12T15:23:34+08:00", + "summary_html_path": "_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/import-probe.summary.html", + "summary_json_path": "_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/import-probe.summary.json", + "effective_run_type": "rerun" + }, + { + "host": "caosheninan.com", + "probe_status": "passed", + "external_readiness": "ready", + "all_passed": true, + "failed_stage": "", + "search_keyword": "精品久久久久中文字幕电视", + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren", + "sample_source": "rerun_recovered", + "probed_at": "2026-04-12T15:23:57+08:00", + "summary_html_path": "_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/import-probe.summary.html", + "summary_json_path": "_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/import-probe.summary.json", + "effective_run_type": "rerun" + }, + { + "host": "visitsumenep.com", + "probe_status": "passed", + "external_readiness": "ready", + "all_passed": true, + "failed_stage": "", + "search_keyword": "国产精品人成视频免费播放", + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren", + "sample_source": "rerun_recovered", + "probed_at": "2026-04-12T15:24:20+08:00", + "summary_html_path": "_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/import-probe.summary.html", + "summary_json_path": "_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/import-probe.summary.json", + "effective_run_type": "rerun" + }, + { + "host": "oronorent.com", + "probe_status": "passed", + "external_readiness": "ready", + "all_passed": true, + "failed_stage": "", + "search_keyword": "精品欧美成人高清视频在线", + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren", + "sample_source": "rerun_recovered", + "probed_at": "2026-04-12T15:24:44+08:00", + "summary_html_path": "_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/import-probe.summary.html", + "summary_json_path": "_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/import-probe.summary.json", + "effective_run_type": "rerun" + }, + { + "host": "zbsv3.com", + "probe_status": "passed", + "external_readiness": "ready", + "all_passed": true, + "failed_stage": "", + "search_keyword": "欧美在线综合中文字幕超清", + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren", + "sample_source": "rerun_recovered", + "probed_at": "2026-04-12T15:25:07+08:00", + "summary_html_path": "_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/import-probe.summary.html", + "summary_json_path": "_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/import-probe.summary.json", + "effective_run_type": "rerun" + }, + { + "host": "ukoys.com", + "probe_status": "passed", + "external_readiness": "ready", + "all_passed": true, + "failed_stage": "", + "search_keyword": "久久精品国产精品中文字幕", + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren", + "sample_source": "rerun_recovered", + "probed_at": "2026-04-12T15:25:31+08:00", + "summary_html_path": "_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/import-probe.summary.html", + "summary_json_path": "_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/import-probe.summary.json", + "effective_run_type": "rerun" + }, + { + "host": "lcdchq.com", + "probe_status": "passed", + "external_readiness": "ready", + "all_passed": true, + "failed_stage": "", + "search_keyword": "欧美国产精品一区三区欧美", + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren", + "sample_source": "rerun_recovered", + "probed_at": "2026-04-12T15:25:55+08:00", + "summary_html_path": "_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/import-probe.summary.html", + "summary_json_path": "_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/import-probe.summary.json", + "effective_run_type": "rerun" + }, + { + "host": "jxxgygy.com", + "probe_status": "passed", + "external_readiness": "ready", + "all_passed": true, + "failed_stage": "", + "search_keyword": "久久久久国产一区二区三区", + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren", + "sample_source": "rerun_recovered", + "probed_at": "2026-04-12T15:26:18+08:00", + "summary_html_path": "_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/import-probe.summary.html", + "summary_json_path": "_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/import-probe.summary.json", + "effective_run_type": "rerun" + }, + { + "host": "leici1940.com", + "probe_status": "passed", + "external_readiness": "ready", + "all_passed": true, + "failed_stage": "", + "search_keyword": "亚洲国产欧美在线日韩免费", + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren", + "sample_source": "rerun_recovered", + "probed_at": "2026-04-12T15:26:32+08:00", + "summary_html_path": "_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/import-probe.summary.html", + "summary_json_path": "_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/import-probe.summary.json", + "effective_run_type": "rerun" + }, + { + "host": "jingxifa.com", + "probe_status": "passed", + "external_readiness": "ready", + "all_passed": true, + "failed_stage": "", + "search_keyword": "日韩欧美中文字幕电影日韩", + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren", + "sample_source": "rerun_recovered", + "probed_at": "2026-04-12T15:54:26+08:00", + "summary_html_path": "_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/import-probe.summary.html", + "summary_json_path": "_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/import-probe.summary.json", + "effective_run_type": "rerun" + }, + { + "host": "sdxhtgcl.com", + "probe_status": "passed", + "external_readiness": "ready", + "all_passed": true, + "failed_stage": "", + "search_keyword": "国产福利在线观看", + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren", + "sample_source": "rerun_recovered", + "probed_at": "2026-04-12T15:27:14+08:00", + "summary_html_path": "_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/import-probe.summary.html", + "summary_json_path": "_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/import-probe.summary.json", + "effective_run_type": "rerun" + }, + { + "host": "jpjdxs.com", + "probe_status": "passed", + "external_readiness": "ready", + "all_passed": true, + "failed_stage": "", + "search_keyword": "亚洲天堂精品视频", + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren", + "sample_source": "rerun_recovered", + "probed_at": "2026-04-12T15:27:37+08:00", + "summary_html_path": "_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/import-probe.summary.html", + "summary_json_path": "_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/import-probe.summary.json", + "effective_run_type": "rerun" + }, + { + "host": "lsrxs.com", + "probe_status": "passed", + "external_readiness": "ready", + "all_passed": true, + "failed_stage": "", + "search_keyword": "国产91在线播放", + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren", + "sample_source": "rerun_recovered", + "probed_at": "2026-04-12T15:28:00+08:00", + "summary_html_path": "_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/import-probe.summary.html", + "summary_json_path": "_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/import-probe.summary.json", + "effective_run_type": "rerun" + }, + { + "host": "gxhongzhuang.com", + "probe_status": "passed", + "external_readiness": "ready", + "all_passed": true, + "failed_stage": "", + "search_keyword": "91视频在线免费观看", + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren", + "sample_source": "rerun_recovered", + "probed_at": "2026-04-12T15:28:23+08:00", + "summary_html_path": "_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/import-probe.summary.html", + "summary_json_path": "_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/import-probe.summary.json", + "effective_run_type": "rerun" + }, + { + "host": "glae.cc", + "probe_status": "passed", + "external_readiness": "ready", + "all_passed": true, + "failed_stage": "", + "search_keyword": "日韩剧在线观看高清版电视", + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren", + "sample_source": "rerun_recovered", + "probed_at": "2026-04-12T15:54:31+08:00", + "summary_html_path": "_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/import-probe.summary.html", + "summary_json_path": "_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/import-probe.summary.json", + "effective_run_type": "rerun" + }, + { + "host": "sjzyunyang.com", + "probe_status": "passed", + "external_readiness": "ready", + "all_passed": true, + "failed_stage": "", + "search_keyword": "欧美视频在线播放", + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren", + "sample_source": "rerun_recovered", + "probed_at": "2026-04-12T15:29:10+08:00", + "summary_html_path": "_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/import-probe.summary.html", + "summary_json_path": "_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/import-probe.summary.json", + "effective_run_type": "rerun" + }, + { + "host": "lmjcg.com", + "probe_status": "passed", + "external_readiness": "ready", + "all_passed": true, + "failed_stage": "", + "search_keyword": "欧美视频在线观看", + "detail_id": 154229, + "detail_slug": "xiang-feng-bu-shi-jiu-shi-ren", + "sample_source": "rerun_recovered", + "probed_at": "2026-04-12T15:54:43+08:00", + "summary_html_path": "_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/import-probe.summary.html", + "summary_json_path": "_admin_templates/domain-import-runs/20260412/022709_excel_import_7686a4/import-probe.summary.json", + "effective_run_type": "rerun" + } + ], + "source_summary": { + "import_runs_count": 2, + "rerun_runs_count": 13, + "queue_count": 0 + }, + "summary_json_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-seo-external/latest/seo-external.summary.json", + "summary_html_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-seo-external/latest/seo-external.summary.html" +} diff --git a/code/public/_admin_templates/domain-seo-external/latest/site-query-probe.summary.html b/code/public/_admin_templates/domain-seo-external/latest/site-query-probe.summary.html new file mode 100644 index 0000000..eb9ac80 --- /dev/null +++ b/code/public/_admin_templates/domain-seo-external/latest/site-query-probe.summary.html @@ -0,0 +1 @@ +Site Query Probe Summary

Site Query Probe Summary

当前第一版只做 site: 收录探测采集层,优先区分 indexed_like / captcha / no_result / blocked / unknown。是否命中验证码页也会明确沉淀,后续再增强结果页解析。

host_count
26
indexed_like
0
captcha
26
no_result
0
blocked
0
hoststatusenginehttptitleresult_count_textcaptchaerror
caosheninan.comcaptchabaidu_mobile200百度安全验证yes
chuanjiafeng.netcaptchabaidu_mobile200百度安全验证yes
cnzhenbang.comcaptchabaidu_mobile200百度安全验证yes
codohealth.comcaptchabaidu_mobile200百度安全验证yes
glae.cccaptchabaidu_mobile200百度安全验证yes
gxhongzhuang.comcaptchabaidu_mobile200百度安全验证yes
hbczccq.comcaptchabaidu_mobile200百度安全验证yes
hyjssb.comcaptchabaidu_mobile200百度安全验证yes
jingxifa.comcaptchabaidu_mobile200百度安全验证yes
jpjdxs.comcaptchabaidu_mobile200百度安全验证yes
jxxgygy.comcaptchabaidu_mobile200百度安全验证yes
lcdchq.comcaptchabaidu_mobile200百度安全验证yes
leici1940.comcaptchabaidu_mobile200百度安全验证yes
lgyz.netcaptchabaidu_mobile200百度安全验证yes
lmjcg.comcaptchabaidu_mobile200百度安全验证yes
lsrxs.comcaptchabaidu_mobile200百度安全验证yes
nblssy.comcaptchabaidu_mobile200百度安全验证yes
oronorent.comcaptchabaidu_mobile200百度安全验证yes
pcslcl.comcaptchabaidu_mobile200百度安全验证yes
sdxhtgcl.comcaptchabaidu_mobile200百度安全验证yes
sdxtwnc.comcaptchabaidu_mobile200百度安全验证yes
sjzyunyang.comcaptchabaidu_mobile200百度安全验证yes
ukoys.comcaptchabaidu_mobile200百度安全验证yes
vikau.comcaptchabaidu_mobile200百度安全验证yes
visitsumenep.comcaptchabaidu_mobile200百度安全验证yes
zbsv3.comcaptchabaidu_mobile200百度安全验证yes
\ No newline at end of file diff --git a/code/public/_admin_templates/domain-seo-external/latest/site-query-probe.summary.json b/code/public/_admin_templates/domain-seo-external/latest/site-query-probe.summary.json new file mode 100644 index 0000000..c5fe5f7 --- /dev/null +++ b/code/public/_admin_templates/domain-seo-external/latest/site-query-probe.summary.json @@ -0,0 +1,382 @@ +{ + "generated_at": "2026-04-12T16:32:47+08:00", + "mode": "site_query_probe", + "engine": "baidu_site_query", + "host_count": 26, + "status_buckets": { + "indexed_like": 0, + "captcha": 26, + "no_result": 0, + "blocked": 0, + "unknown": 0 + }, + "items": [ + { + "host": "caosheninan.com", + "query_status": "captcha", + "query": "site:caosheninan.com", + "engine_variant": "baidu_mobile", + "http_status": 200, + "final_url": "https://wappass.baidu.com/static/captcha/tuxing_v2.html?&logid=12215363346118458981&ak=248b24c134a6b4f52ee85f8b9577d4a8&backurl=https%3A%2F%2Fm.baidu.com%2Fs%3Fword%3Dsite%253Acaosheninan.com&ext=km0tNAyk4MXhwv4GKFSjZvzQxpy3%2Bcnf16aZhuqGTkIdICcacYNebpoP7ZzKoMOfBy%2FmA%2BhudLdOJ3gBbM42mS0NAgRiys6T7S9q0f%2B7HCxndgmCMa91dcCCGVk%2B21MkIGNXYN1rcxkqOmCkFHflWtZvFECuhMfvRWvO1OOvgMHyXHE3dPo3hR1Fdys2FcISD9HcN7fSE2cXFkmyISuFxmQCmO%2Br%2FJW6MZ0cgQA8XxM%3D&signature=10a2f5b882db5fd4503cbb9a158025c8×tamp=1775982697", + "page_title": "百度安全验证", + "result_count_text": "", + "captcha_detected": true, + "has_host_mention": false, + "error_message": "", + "probed_at": "2026-04-12T16:31:41+08:00" + }, + { + "host": "chuanjiafeng.net", + "query_status": "captcha", + "query": "site:chuanjiafeng.net", + "engine_variant": "baidu_mobile", + "http_status": 200, + "final_url": "https://wappass.baidu.com/static/captcha/tuxing_v2.html?&logid=10896383661226146254&ak=248b24c134a6b4f52ee85f8b9577d4a8&backurl=https%3A%2F%2Fm.baidu.com%2Fs%3Fword%3Dsite%253Achuanjiafeng.net&ext=km0tNAyk4MXhwv4GKFSjZhf26wmd6fo5%2F2TEc%2BvdWIIZOaBK2XMutoK9F6OcEQ81By%2FmA%2BhudLdOJ3gBbM42mY808IQF7%2BZXKYbTCPXTDRdndgmCMa91dcCCGVk%2B21Mk0E5%2FuIuxO3caKC1aiU2MJ9ZvFECuhMfvRWvO1OOvgMHz4iHj3aij7juhgL%2BSP3Vi&signature=bbd9d9e0295919ff154192f09d627a1a×tamp=1775982702", + "page_title": "百度安全验证", + "result_count_text": "", + "captcha_detected": true, + "has_host_mention": false, + "error_message": "", + "probed_at": "2026-04-12T16:31:43+08:00" + }, + { + "host": "cnzhenbang.com", + "query_status": "captcha", + "query": "site:cnzhenbang.com", + "engine_variant": "baidu_mobile", + "http_status": 200, + "final_url": "https://wappass.baidu.com/static/captcha/tuxing_v2.html?&logid=11435293999759430760&ak=248b24c134a6b4f52ee85f8b9577d4a8&backurl=https%3A%2F%2Fm.baidu.com%2Fs%3Fword%3Dsite%253Acnzhenbang.com&ext=km0tNAyk4MXhwv4GKFSjZhf26wmd6fo5%2F2TEc%2BvdWIIuzWjA2a4H43rmDswUlENZBy%2FmA%2BhudLdOJ3gBbM42mfd3mUOVry4oEFqcTyvRfEpndgmCMa91dcCCGVk%2B21Mk%2BGAzb2emF3ewVQmcX7etYtZvFECuhMfvRWvO1OOvgMF9%2Fjyow3789LGV%2Bd0ugXlWD9HcN7fSE2cXFkmyISuFxmQCmO%2Br%2FJW6MZ0cgQA8XxM%3D&signature=6ce0dd38caccb60e03bf077465c63f2d×tamp=1775982704", + "page_title": "百度安全验证", + "result_count_text": "", + "captcha_detected": true, + "has_host_mention": false, + "error_message": "", + "probed_at": "2026-04-12T16:31:45+08:00" + }, + { + "host": "codohealth.com", + "query_status": "captcha", + "query": "site:codohealth.com", + "engine_variant": "baidu_mobile", + "http_status": 200, + "final_url": "https://wappass.baidu.com/static/captcha/tuxing_v2.html?&logid=11758576870967141359&ak=248b24c134a6b4f52ee85f8b9577d4a8&backurl=https%3A%2F%2Fm.baidu.com%2Fs%3Fword%3Dsite%253Acodohealth.com&ext=km0tNAyk4MXhwv4GKFSjZhf26wmd6fo5%2F2TEc%2BvdWIJPg%2FA%2BlUlp81Cd2KUpY%2BCBBy%2FmA%2BhudLdOJ3gBbM42mfd3mUOVry4oEFqcTyvRfEpndgmCMa91dcCCGVk%2B21Mk%2BGAzb2emF3ewVQmcX7etYtZvFECuhMfvRWvO1OOvgMF9%2Fjyow3789LGV%2Bd0ugXlWD9HcN7fSE2cXFkmyISuFxmQCmO%2Br%2FJW6MZ0cgQA8XxM%3D&signature=6f4da7099eb290641399adc7fb3e3610×tamp=1775982706", + "page_title": "百度安全验证", + "result_count_text": "", + "captcha_detected": true, + "has_host_mention": false, + "error_message": "", + "probed_at": "2026-04-12T16:31:49+08:00" + }, + { + "host": "glae.cc", + "query_status": "captcha", + "query": "site:glae.cc", + "engine_variant": "baidu_mobile", + "http_status": 200, + "final_url": "https://wappass.baidu.com/static/captcha/tuxing_v2.html?&logid=11171121174007604612&ak=248b24c134a6b4f52ee85f8b9577d4a8&backurl=https%3A%2F%2Fm.baidu.com%2Fs%3Fword%3Dsite%253Aglae.cc&ext=km0tNAyk4MXhwv4GKFSjZtQ8Bz%2Faw9fCneJg5S%2FbP9bGoY4fXVhIvqWdrwAf9TZXBy%2FmA%2BhudLdOJ3gBbM42mfd3mUOVry4oEFqcTyvRfEpndgmCMa91dcCCGVk%2B21Mk%2BGAzb2emF3ewVQmcX7etYtZvFECuhMfvRWvO1OOvgMF9%2Fjyow3789LGV%2Bd0ugXlWD9HcN7fSE2cXFkmyISuFxmQCmO%2Br%2FJW6MZ0cgQA8XxM%3D&signature=1f9e13f8e91af8d52a2cfc6875306095×tamp=1775982710", + "page_title": "百度安全验证", + "result_count_text": "", + "captcha_detected": true, + "has_host_mention": false, + "error_message": "", + "probed_at": "2026-04-12T16:31:51+08:00" + }, + { + "host": "gxhongzhuang.com", + "query_status": "captcha", + "query": "site:gxhongzhuang.com", + "engine_variant": "baidu_mobile", + "http_status": 200, + "final_url": "https://wappass.baidu.com/static/captcha/tuxing_v2.html?&logid=11422264232992485664&ak=248b24c134a6b4f52ee85f8b9577d4a8&backurl=https%3A%2F%2Fm.baidu.com%2Fs%3Fword%3Dsite%253Agxhongzhuang.com&ext=km0tNAyk4MXhwv4GKFSjZtQ8Bz%2Faw9fCneJg5S%2FbP9YZOaBK2XMutoK9F6OcEQ81By%2FmA%2BhudLdOJ3gBbM42mfd3mUOVry4oEFqcTyvRfEpndgmCMa91dcCCGVk%2B21Mk%2BGAzb2emF3ewVQmcX7etYtZvFECuhMfvRWvO1OOvgMF9%2Fjyow3789LGV%2Bd0ugXlWD9HcN7fSE2cXFkmyISuFxmQCmO%2Br%2FJW6MZ0cgQA8XxM%3D&signature=97e43db5aab68e1b411a7921f1726a5a×tamp=1775982712", + "page_title": "百度安全验证", + "result_count_text": "", + "captcha_detected": true, + "has_host_mention": false, + "error_message": "", + "probed_at": "2026-04-12T16:31:53+08:00" + }, + { + "host": "hbczccq.com", + "query_status": "captcha", + "query": "site:hbczccq.com", + "engine_variant": "baidu_mobile", + "http_status": 200, + "final_url": "https://wappass.baidu.com/static/captcha/tuxing_v2.html?&logid=10771854094878765019&ak=248b24c134a6b4f52ee85f8b9577d4a8&backurl=https%3A%2F%2Fm.baidu.com%2Fs%3Fword%3Dsite%253Ahbczccq.com&ext=km0tNAyk4MXhwv4GKFSjZtQ8Bz%2Faw9fCneJg5S%2FbP9YuzWjA2a4H43rmDswUlENZBy%2FmA%2BhudLdOJ3gBbM42mWKwoP45J3jgh8fFGtbr6BZndgmCMa91dcCCGVk%2B21Mk%2BGAzb2emF3ewVQmcX7etYtZvFECuhMfvRWvO1OOvgMF9%2Fjyow3789LGV%2Bd0ugXlWD9HcN7fSE2cXFkmyISuFxmQCmO%2Br%2FJW6MZ0cgQA8XxM%3D&signature=7594edfe3c4d1e9beb9bf72200e0fdff×tamp=1775982714", + "page_title": "百度安全验证", + "result_count_text": "", + "captcha_detected": true, + "has_host_mention": false, + "error_message": "", + "probed_at": "2026-04-12T16:31:55+08:00" + }, + { + "host": "hyjssb.com", + "query_status": "captcha", + "query": "site:hyjssb.com", + "engine_variant": "baidu_mobile", + "http_status": 200, + "final_url": "https://wappass.baidu.com/static/captcha/tuxing_v2.html?&logid=10891183503689918650&ak=248b24c134a6b4f52ee85f8b9577d4a8&backurl=https%3A%2F%2Fm.baidu.com%2Fs%3Fword%3Dsite%253Ahyjssb.com&ext=km0tNAyk4MXhwv4GKFSjZtQ8Bz%2Faw9fCneJg5S%2FbP9YdICcacYNebpoP7ZzKoMOfBy%2FmA%2BhudLdOJ3gBbM42mfd3mUOVry4oEFqcTyvRfEpndgmCMa91dcCCGVk%2B21Mk%2BGAzb2emF3ewVQmcX7etYtZvFECuhMfvRWvO1OOvgMF9%2Fjyow3789LGV%2Bd0ugXlWD9HcN7fSE2cXFkmyISuFxmQCmO%2Br%2FJW6MZ0cgQA8XxM%3D&signature=6025584fec442f7e04dd4b22de91d002×tamp=1775982717", + "page_title": "百度安全验证", + "result_count_text": "", + "captcha_detected": true, + "has_host_mention": false, + "error_message": "", + "probed_at": "2026-04-12T16:31:58+08:00" + }, + { + "host": "jingxifa.com", + "query_status": "captcha", + "query": "site:jingxifa.com", + "engine_variant": "baidu_mobile", + "http_status": 200, + "final_url": "https://wappass.baidu.com/static/captcha/tuxing_v2.html?&logid=11434547547598550901&ak=248b24c134a6b4f52ee85f8b9577d4a8&backurl=https%3A%2F%2Fm.baidu.com%2Fs%3Fword%3Dsite%253Ajingxifa.com&ext=km0tNAyk4MXhwv4GKFSjZtQ8Bz%2Faw9fCneJg5S%2FbP9ZtFeZGkdyWDoKAHsYozKy%2FBy%2FmA%2BhudLdOJ3gBbM42mWKwoP45J3jgh8fFGtbr6BZndgmCMa91dcCCGVk%2B21Mk%2BGAzb2emF3ewVQmcX7etYtZvFECuhMfvRWvO1OOvgMF9%2Fjyow3789LGV%2Bd0ugXlWD9HcN7fSE2cXFkmyISuFxmQCmO%2Br%2FJW6MZ0cgQA8XxM%3D&signature=71dc091bb5b65ff4584547fb20cc92e5×tamp=1775982719", + "page_title": "百度安全验证", + "result_count_text": "", + "captcha_detected": true, + "has_host_mention": false, + "error_message": "", + "probed_at": "2026-04-12T16:32:00+08:00" + }, + { + "host": "jpjdxs.com", + "query_status": "captcha", + "query": "site:jpjdxs.com", + "engine_variant": "baidu_mobile", + "http_status": 200, + "final_url": "https://wappass.baidu.com/static/captcha/tuxing_v2.html?&logid=10599461284540690088&ak=248b24c134a6b4f52ee85f8b9577d4a8&backurl=https%3A%2F%2Fm.baidu.com%2Fs%3Fword%3Dsite%253Ajpjdxs.com&ext=km0tNAyk4MXhwv4GKFSjZh%2BRejqRi2suDynfhwffSkfBqXRi7PNU4%2BTFQ4C7JfJABy%2FmA%2BhudLdOJ3gBbM42mWKwoP45J3jgh8fFGtbr6BZndgmCMa91dcCCGVk%2B21Mk%2BGAzb2emF3ewVQmcX7etYtZvFECuhMfvRWvO1OOvgMF9%2Fjyow3789LGV%2Bd0ugXlWD9HcN7fSE2cXFkmyISuFxmQCmO%2Br%2FJW6MZ0cgQA8XxM%3D&signature=6daab4a1661b4f357bbc5d1b767058ee×tamp=1775982721", + "page_title": "百度安全验证", + "result_count_text": "", + "captcha_detected": true, + "has_host_mention": false, + "error_message": "", + "probed_at": "2026-04-12T16:32:04+08:00" + }, + { + "host": "jxxgygy.com", + "query_status": "captcha", + "query": "site:jxxgygy.com", + "engine_variant": "baidu_mobile", + "http_status": 200, + "final_url": "https://wappass.baidu.com/static/captcha/tuxing_v2.html?&logid=10887484948647268071&ak=248b24c134a6b4f52ee85f8b9577d4a8&backurl=https%3A%2F%2Fm.baidu.com%2Fs%3Fword%3Dsite%253Ajxxgygy.com&ext=km0tNAyk4MXhwv4GKFSjZh%2BRejqRi2suDynfhwffSkcD97M0XLdLmT9aL7%2Bj4nRPBy%2FmA%2BhudLdOJ3gBbM42mWKwoP45J3jgh8fFGtbr6BZndgmCMa91dcCCGVk%2B21Mk%2BGAzb2emF3ewVQmcX7etYtZvFECuhMfvRWvO1OOvgMF9%2Fjyow3789LGV%2Bd0ugXlWD9HcN7fSE2cXFkmyISuFxmQCmO%2Br%2FJW6MZ0cgQA8XxM%3D&signature=a8dbf03b088d46b257f568f6c8f76889×tamp=1775982725", + "page_title": "百度安全验证", + "result_count_text": "", + "captcha_detected": true, + "has_host_mention": false, + "error_message": "", + "probed_at": "2026-04-12T16:32:06+08:00" + }, + { + "host": "lcdchq.com", + "query_status": "captcha", + "query": "site:lcdchq.com", + "engine_variant": "baidu_mobile", + "http_status": 200, + "final_url": "https://wappass.baidu.com/static/captcha/tuxing_v2.html?&logid=12030437464677647558&ak=248b24c134a6b4f52ee85f8b9577d4a8&backurl=https%3A%2F%2Fm.baidu.com%2Fs%3Fword%3Dsite%253Alcdchq.com&ext=km0tNAyk4MXhwv4GKFSjZh%2BRejqRi2suDynfhwffSkcdICcacYNebpoP7ZzKoMOfBy%2FmA%2BhudLdOJ3gBbM42mfd3mUOVry4oEFqcTyvRfEpndgmCMa91dcCCGVk%2B21Mk%2BGAzb2emF3ewVQmcX7etYtZvFECuhMfvRWvO1OOvgMF9%2Fjyow3789LGV%2Bd0ugXlWD9HcN7fSE2cXFkmyISuFxmQCmO%2Br%2FJW6MZ0cgQA8XxM%3D&signature=84c11531f66404c00de448e7a4168b47×tamp=1775982727", + "page_title": "百度安全验证", + "result_count_text": "", + "captcha_detected": true, + "has_host_mention": false, + "error_message": "", + "probed_at": "2026-04-12T16:32:09+08:00" + }, + { + "host": "leici1940.com", + "query_status": "captcha", + "query": "site:leici1940.com", + "engine_variant": "baidu_mobile", + "http_status": 200, + "final_url": "https://wappass.baidu.com/static/captcha/tuxing_v2.html?&logid=11831806759228523590&ak=248b24c134a6b4f52ee85f8b9577d4a8&backurl=https%3A%2F%2Fm.baidu.com%2Fs%3Fword%3Dsite%253Aleici1940.com&ext=km0tNAyk4MXhwv4GKFSjZufG%2Fd1qOLBHQ9C2GemsYH7GoY4fXVhIvqWdrwAf9TZXBy%2FmA%2BhudLdOJ3gBbM42mWKwoP45J3jgh8fFGtbr6BZndgmCMa91dcCCGVk%2B21Mk%2BGAzb2emF3ewVQmcX7etYtZvFECuhMfvRWvO1OOvgMF9%2Fjyow3789LGV%2Bd0ugXlWD9HcN7fSE2cXFkmyISuFxmQCmO%2Br%2FJW6MZ0cgQA8XxM%3D&signature=043ffd6218606fb40917d7923bfef0af×tamp=1775982730", + "page_title": "百度安全验证", + "result_count_text": "", + "captcha_detected": true, + "has_host_mention": false, + "error_message": "", + "probed_at": "2026-04-12T16:32:12+08:00" + }, + { + "host": "lgyz.net", + "query_status": "captcha", + "query": "site:lgyz.net", + "engine_variant": "baidu_mobile", + "http_status": 200, + "final_url": "https://wappass.baidu.com/static/captcha/tuxing_v2.html?&logid=10452380704861760135&ak=248b24c134a6b4f52ee85f8b9577d4a8&backurl=https%3A%2F%2Fm.baidu.com%2Fs%3Fword%3Dsite%253Algyz.net&ext=km0tNAyk4MXhwv4GKFSjZufG%2Fd1qOLBHQ9C2GemsYH4wHjDmRvAx0w6jSeUjoexKBy%2FmA%2BhudLdOJ3gBbM42mfd3mUOVry4oEFqcTyvRfEpndgmCMa91dcCCGVk%2B21Mk%2BGAzb2emF3ewVQmcX7etYtZvFECuhMfvRWvO1OOvgMF9%2Fjyow3789LGV%2Bd0ugXlWD9HcN7fSE2cXFkmyISuFxmQCmO%2Br%2FJW6MZ0cgQA8XxM%3D&signature=7d193078322bf4cecfd3ce10685b86d1×tamp=1775982733", + "page_title": "百度安全验证", + "result_count_text": "", + "captcha_detected": true, + "has_host_mention": false, + "error_message": "", + "probed_at": "2026-04-12T16:32:15+08:00" + }, + { + "host": "lmjcg.com", + "query_status": "captcha", + "query": "site:lmjcg.com", + "engine_variant": "baidu_mobile", + "http_status": 200, + "final_url": "https://wappass.baidu.com/static/captcha/tuxing_v2.html?&logid=11951873892905492982&ak=248b24c134a6b4f52ee85f8b9577d4a8&backurl=https%3A%2F%2Fm.baidu.com%2Fs%3Fword%3Dsite%253Almjcg.com&ext=km0tNAyk4MXhwv4GKFSjZufG%2Fd1qOLBHQ9C2GemsYH5Pg%2FA%2BlUlp81Cd2KUpY%2BCBBy%2FmA%2BhudLdOJ3gBbM42mfd3mUOVry4oEFqcTyvRfEpndgmCMa91dcCCGVk%2B21Mk%2BGAzb2emF3ewVQmcX7etYtZvFECuhMfvRWvO1OOvgMF9%2Fjyow3789LGV%2Bd0ugXlWD9HcN7fSE2cXFkmyISuFxmQCmO%2Br%2FJW6MZ0cgQA8XxM%3D&signature=db399c00399e93a896922ae8ed20b6b3×tamp=1775982736", + "page_title": "百度安全验证", + "result_count_text": "", + "captcha_detected": true, + "has_host_mention": false, + "error_message": "", + "probed_at": "2026-04-12T16:32:18+08:00" + }, + { + "host": "lsrxs.com", + "query_status": "captcha", + "query": "site:lsrxs.com", + "engine_variant": "baidu_mobile", + "http_status": 200, + "final_url": "https://wappass.baidu.com/static/captcha/tuxing_v2.html?&logid=11858073761327540935&ak=248b24c134a6b4f52ee85f8b9577d4a8&backurl=https%3A%2F%2Fm.baidu.com%2Fs%3Fword%3Dsite%253Alsrxs.com&ext=km0tNAyk4MXhwv4GKFSjZufG%2Fd1qOLBHQ9C2GemsYH5tFeZGkdyWDoKAHsYozKy%2FBy%2FmA%2BhudLdOJ3gBbM42mWKwoP45J3jgh8fFGtbr6BZndgmCMa91dcCCGVk%2B21Mk%2BGAzb2emF3ewVQmcX7etYtZvFECuhMfvRWvO1OOvgMF9%2Fjyow3789LGV%2Bd0ugXlWD9HcN7fSE2cXFkmyISuFxmQCmO%2Br%2FJW6MZ0cgQA8XxM%3D&signature=673e54cc82620f89f77fab02af15f562×tamp=1775982739", + "page_title": "百度安全验证", + "result_count_text": "", + "captcha_detected": true, + "has_host_mention": false, + "error_message": "", + "probed_at": "2026-04-12T16:32:20+08:00" + }, + { + "host": "nblssy.com", + "query_status": "captcha", + "query": "site:nblssy.com", + "engine_variant": "baidu_mobile", + "http_status": 200, + "final_url": "https://wappass.baidu.com/static/captcha/tuxing_v2.html?&logid=11756259650229781161&ak=248b24c134a6b4f52ee85f8b9577d4a8&backurl=https%3A%2F%2Fm.baidu.com%2Fs%3Fword%3Dsite%253Anblssy.com&ext=km0tNAyk4MXhwv4GKFSjZnztNEFUiJu%2BsLfm4Yv6NarBqXRi7PNU4%2BTFQ4C7JfJABy%2FmA%2BhudLdOJ3gBbM42mWKwoP45J3jgh8fFGtbr6BZndgmCMa91dcCCGVk%2B21Mk%2BGAzb2emF3ewVQmcX7etYtZvFECuhMfvRWvO1OOvgMF9%2Fjyow3789LGV%2Bd0ugXlWD9HcN7fSE2cXFkmyISuFxmQCmO%2Br%2FJW6MZ0cgQA8XxM%3D&signature=f13db6683366f2f92ae295d898951daa×tamp=1775982741", + "page_title": "百度安全验证", + "result_count_text": "", + "captcha_detected": true, + "has_host_mention": false, + "error_message": "", + "probed_at": "2026-04-12T16:32:23+08:00" + }, + { + "host": "oronorent.com", + "query_status": "captcha", + "query": "site:oronorent.com", + "engine_variant": "baidu_mobile", + "http_status": 200, + "final_url": "https://wappass.baidu.com/static/captcha/tuxing_v2.html?&logid=11927098820764182368&ak=248b24c134a6b4f52ee85f8b9577d4a8&backurl=https%3A%2F%2Fm.baidu.com%2Fs%3Fword%3Dsite%253Aoronorent.com&ext=km0tNAyk4MXhwv4GKFSjZnztNEFUiJu%2BsLfm4Yv6NaouzWjA2a4H43rmDswUlENZBy%2FmA%2BhudLdOJ3gBbM42mWKwoP45J3jgh8fFGtbr6BZndgmCMa91dcCCGVk%2B21Mk%2BGAzb2emF3ewVQmcX7etYtZvFECuhMfvRWvO1OOvgMF9%2Fjyow3789LGV%2Bd0ugXlWD9HcN7fSE2cXFkmyISuFxmQCmO%2Br%2FJW6MZ0cgQA8XxM%3D&signature=4d1029a3636920424e770c7bb871b070×tamp=1775982744", + "page_title": "百度安全验证", + "result_count_text": "", + "captcha_detected": true, + "has_host_mention": false, + "error_message": "", + "probed_at": "2026-04-12T16:32:26+08:00" + }, + { + "host": "pcslcl.com", + "query_status": "captcha", + "query": "site:pcslcl.com", + "engine_variant": "baidu_mobile", + "http_status": 200, + "final_url": "https://wappass.baidu.com/static/captcha/tuxing_v2.html?&logid=12054935558757120730&ak=248b24c134a6b4f52ee85f8b9577d4a8&backurl=https%3A%2F%2Fm.baidu.com%2Fs%3Fword%3Dsite%253Apcslcl.com&ext=km0tNAyk4MXhwv4GKFSjZnztNEFUiJu%2BsLfm4Yv6NaodICcacYNebpoP7ZzKoMOfBy%2FmA%2BhudLdOJ3gBbM42mWKwoP45J3jgh8fFGtbr6BZndgmCMa91dcCCGVk%2B21Mk%2BGAzb2emF3ewVQmcX7etYtZvFECuhMfvRWvO1OOvgMF9%2Fjyow3789LGV%2Bd0ugXlWD9HcN7fSE2cXFkmyISuFxmQCmO%2Br%2FJW6MZ0cgQA8XxM%3D&signature=86e8a9349b861ad782a05e882f87776b×tamp=1775982747", + "page_title": "百度安全验证", + "result_count_text": "", + "captcha_detected": true, + "has_host_mention": false, + "error_message": "", + "probed_at": "2026-04-12T16:32:29+08:00" + }, + { + "host": "sdxhtgcl.com", + "query_status": "captcha", + "query": "site:sdxhtgcl.com", + "engine_variant": "baidu_mobile", + "http_status": 200, + "final_url": "https://wappass.baidu.com/static/captcha/tuxing_v2.html?&logid=11495754104009974954&ak=248b24c134a6b4f52ee85f8b9577d4a8&backurl=https%3A%2F%2Fm.baidu.com%2Fs%3Fword%3Dsite%253Asdxhtgcl.com&ext=km0tNAyk4MXhwv4GKFSjZjxxczteqo3WRmkktGbl%2BlDGoY4fXVhIvqWdrwAf9TZXBy%2FmA%2BhudLdOJ3gBbM42mWKwoP45J3jgh8fFGtbr6BZndgmCMa91dcCCGVk%2B21Mk%2BGAzb2emF3ewVQmcX7etYtZvFECuhMfvRWvO1OOvgMF9%2Fjyow3789LGV%2Bd0ugXlWD9HcN7fSE2cXFkmyISuFxmQCmO%2Br%2FJW6MZ0cgQA8XxM%3D&signature=7f5389a78fe2551b27cda4882056c89f×tamp=1775982750", + "page_title": "百度安全验证", + "result_count_text": "", + "captcha_detected": true, + "has_host_mention": false, + "error_message": "", + "probed_at": "2026-04-12T16:32:32+08:00" + }, + { + "host": "sdxtwnc.com", + "query_status": "captcha", + "query": "site:sdxtwnc.com", + "engine_variant": "baidu_mobile", + "http_status": 200, + "final_url": "https://wappass.baidu.com/static/captcha/tuxing_v2.html?&logid=11424922800297970869&ak=248b24c134a6b4f52ee85f8b9577d4a8&backurl=https%3A%2F%2Fm.baidu.com%2Fs%3Fword%3Dsite%253Asdxtwnc.com&ext=km0tNAyk4MXhwv4GKFSjZjxxczteqo3WRmkktGbl%2BlAwHjDmRvAx0w6jSeUjoexKBy%2FmA%2BhudLdOJ3gBbM42mWKwoP45J3jgh8fFGtbr6BZndgmCMa91dcCCGVk%2B21Mk%2BGAzb2emF3ewVQmcX7etYtZvFECuhMfvRWvO1OOvgMF9%2Fjyow3789LGV%2Bd0ugXlWD9HcN7fSE2cXFkmyISuFxmQCmO%2Br%2FJW6MZ0cgQA8XxM%3D&signature=58ad16dd8fb46f2e04e874ed28114399×tamp=1775982753", + "page_title": "百度安全验证", + "result_count_text": "", + "captcha_detected": true, + "has_host_mention": false, + "error_message": "", + "probed_at": "2026-04-12T16:32:35+08:00" + }, + { + "host": "sjzyunyang.com", + "query_status": "captcha", + "query": "site:sjzyunyang.com", + "engine_variant": "baidu_mobile", + "http_status": 200, + "final_url": "https://wappass.baidu.com/static/captcha/tuxing_v2.html?&logid=11367366991840716039&ak=248b24c134a6b4f52ee85f8b9577d4a8&backurl=https%3A%2F%2Fm.baidu.com%2Fs%3Fword%3Dsite%253Asjzyunyang.com&ext=km0tNAyk4MXhwv4GKFSjZjxxczteqo3WRmkktGbl%2BlBPg%2FA%2BlUlp81Cd2KUpY%2BCBBy%2FmA%2BhudLdOJ3gBbM42mWKwoP45J3jgh8fFGtbr6BZndgmCMa91dcCCGVk%2B21Mk%2BGAzb2emF3ewVQmcX7etYtZvFECuhMfvRWvO1OOvgMF9%2Fjyow3789LGV%2Bd0ugXlWD9HcN7fSE2cXFkmyISuFxmQCmO%2Br%2FJW6MZ0cgQA8XxM%3D&signature=0a82a89822847e7f2e7ff4219a4031b9×tamp=1775982756", + "page_title": "百度安全验证", + "result_count_text": "", + "captcha_detected": true, + "has_host_mention": false, + "error_message": "", + "probed_at": "2026-04-12T16:32:38+08:00" + }, + { + "host": "ukoys.com", + "query_status": "captcha", + "query": "site:ukoys.com", + "engine_variant": "baidu_mobile", + "http_status": 200, + "final_url": "https://wappass.baidu.com/static/captcha/tuxing_v2.html?&logid=9455693982673111978&ak=248b24c134a6b4f52ee85f8b9577d4a8&backurl=https%3A%2F%2Fm.baidu.com%2Fs%3Fword%3Dsite%253Aukoys.com&ext=km0tNAyk4MXhwv4GKFSjZjxxczteqo3WRmkktGbl%2BlBtFeZGkdyWDoKAHsYozKy%2FBy%2FmA%2BhudLdOJ3gBbM42mWKwoP45J3jgh8fFGtbr6BZndgmCMa91dcCCGVk%2B21Mk%2BGAzb2emF3ewVQmcX7etYtZvFECuhMfvRWvO1OOvgMF9%2Fjyow3789LGV%2Bd0ugXlWD9HcN7fSE2cXFkmyISuFxmQCmO%2Br%2FJW6MZ0cgQA8XxM%3D&signature=b6ba42d1ab444c39901d73ab20e857ce×tamp=1775982759", + "page_title": "百度安全验证", + "result_count_text": "", + "captcha_detected": true, + "has_host_mention": false, + "error_message": "", + "probed_at": "2026-04-12T16:32:40+08:00" + }, + { + "host": "vikau.com", + "query_status": "captcha", + "query": "site:vikau.com", + "engine_variant": "baidu_mobile", + "http_status": 200, + "final_url": "https://wappass.baidu.com/static/captcha/tuxing_v2.html?&logid=11826280587943095505&ak=248b24c134a6b4f52ee85f8b9577d4a8&backurl=https%3A%2F%2Fm.baidu.com%2Fs%3Fword%3Dsite%253Avikau.com&ext=km0tNAyk4MXhwv4GKFSjZuIM679qibzQ%2F2PgaqRdiETBqXRi7PNU4%2BTFQ4C7JfJABy%2FmA%2BhudLdOJ3gBbM42mWKwoP45J3jgh8fFGtbr6BZndgmCMa91dcCCGVk%2B21Mk%2BGAzb2emF3ewVQmcX7etYtZvFECuhMfvRWvO1OOvgMF9%2Fjyow3789LGV%2Bd0ugXlWD9HcN7fSE2cXFkmyISuFxmQCmO%2Br%2FJW6MZ0cgQA8XxM%3D&signature=911e6b63d4afd53510a652240a26c2e8×tamp=1775982761", + "page_title": "百度安全验证", + "result_count_text": "", + "captcha_detected": true, + "has_host_mention": false, + "error_message": "", + "probed_at": "2026-04-12T16:32:42+08:00" + }, + { + "host": "visitsumenep.com", + "query_status": "captcha", + "query": "site:visitsumenep.com", + "engine_variant": "baidu_mobile", + "http_status": 200, + "final_url": "https://wappass.baidu.com/static/captcha/tuxing_v2.html?&logid=11192049149854544585&ak=248b24c134a6b4f52ee85f8b9577d4a8&backurl=https%3A%2F%2Fm.baidu.com%2Fs%3Fword%3Dsite%253Avisitsumenep.com&ext=km0tNAyk4MXhwv4GKFSjZuIM679qibzQ%2F2PgaqRdiEQwHjDmRvAx0w6jSeUjoexKBy%2FmA%2BhudLdOJ3gBbM42mVZrRuMcFBcIRA2XL5L%2FUFtndgmCMa91dcCCGVk%2B21Mk%2BGAzb2emF3ewVQmcX7etYly09%2BjqrvVJV2RGa5GinFN9%2Fjyow3789LGV%2Bd0ugXlWD9HcN7fSE2cXFkmyISuFxmQCmO%2Br%2FJW6MZ0cgQA8XxM%3D&signature=f2aca38181efe9da391233cb574617f4×tamp=1775982763", + "page_title": "百度安全验证", + "result_count_text": "", + "captcha_detected": true, + "has_host_mention": false, + "error_message": "", + "probed_at": "2026-04-12T16:32:44+08:00" + }, + { + "host": "zbsv3.com", + "query_status": "captcha", + "query": "site:zbsv3.com", + "engine_variant": "baidu_mobile", + "http_status": 200, + "final_url": "https://wappass.baidu.com/static/captcha/tuxing_v2.html?&logid=11316666431663908733&ak=248b24c134a6b4f52ee85f8b9577d4a8&backurl=https%3A%2F%2Fm.baidu.com%2Fs%3Fword%3Dsite%253Azbsv3.com&ext=km0tNAyk4MXhwv4GKFSjZuIM679qibzQ%2F2PgaqRdiEQD97M0XLdLmT9aL7%2Bj4nRPBy%2FmA%2BhudLdOJ3gBbM42mWKwoP45J3jgh8fFGtbr6BZndgmCMa91dcCCGVk%2B21Mk%2BGAzb2emF3ewVQmcX7etYtZvFECuhMfvRWvO1OOvgMF9%2Fjyow3789LGV%2Bd0ugXlWD9HcN7fSE2cXFkmyISuFxmQCmO%2Br%2FJW6MZ0cgQA8XxM%3D&signature=cfff0d614c7ee1ef3bdb064292807e0b×tamp=1775982765", + "page_title": "百度安全验证", + "result_count_text": "", + "captcha_detected": true, + "has_host_mention": false, + "error_message": "", + "probed_at": "2026-04-12T16:32:47+08:00" + } + ], + "note": "当前第一版只做 site: 收录探测采集层,优先区分 indexed_like / captcha / no_result / blocked / unknown。是否命中验证码页也会明确沉淀,后续再增强结果页解析。", + "summary_json_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-seo-external/latest/site-query-probe.summary.json", + "summary_html_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-seo-external/latest/site-query-probe.summary.html" +} diff --git a/code/public/_admin_templates/domain-supply-runs/20260406/150131_task_7b2c32/domain-supply-batch-replay.xlsx b/code/public/_admin_templates/domain-supply-runs/20260406/150131_task_7b2c32/domain-supply-batch-replay.xlsx new file mode 100644 index 0000000..23fce54 Binary files /dev/null and b/code/public/_admin_templates/domain-supply-runs/20260406/150131_task_7b2c32/domain-supply-batch-replay.xlsx differ diff --git a/code/public/_admin_templates/domain-supply-runs/20260406/150131_task_7b2c32/generated/domain-bootstrap-batch.generated.xlsx b/code/public/_admin_templates/domain-supply-runs/20260406/150131_task_7b2c32/generated/domain-bootstrap-batch.generated.xlsx new file mode 100644 index 0000000..9897564 Binary files /dev/null and b/code/public/_admin_templates/domain-supply-runs/20260406/150131_task_7b2c32/generated/domain-bootstrap-batch.generated.xlsx differ diff --git a/code/public/_admin_templates/domain-supply-runs/20260406/150131_task_7b2c32/generated/site-domain-import.generated.xlsx b/code/public/_admin_templates/domain-supply-runs/20260406/150131_task_7b2c32/generated/site-domain-import.generated.xlsx new file mode 100644 index 0000000..fafb8ff Binary files /dev/null and b/code/public/_admin_templates/domain-supply-runs/20260406/150131_task_7b2c32/generated/site-domain-import.generated.xlsx differ diff --git a/code/public/_admin_templates/domain-supply-runs/20260406/150131_task_7b2c32/supply.summary.html b/code/public/_admin_templates/domain-supply-runs/20260406/150131_task_7b2c32/supply.summary.html new file mode 100644 index 0000000..d32afb6 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/20260406/150131_task_7b2c32/supply.summary.html @@ -0,0 +1,19 @@ + + + + +Domain Supply Batch Summary + + + +

Domain Supply Batch Summary

+

template: /www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/20260406/150131_task_7b2c32/domain-supply-batch-replay.xlsx

+

output_root: /www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/20260406/150131_task_7b2c32

+

processed: 2 / success: 2 / failed: 0

+

site_import_rows: 2 / bootstrap_rows: 2

+ + + +
HostStrategyStatusMessageSite ImportBootstrap
traffic-supply.example.comtrafficreadypreparedtraffic-supply.example.comtraffic-supply.example.com
*.expand-supply.example.comexpandreadyprepared*.expand-supply.example.com*.expand-supply.example.com
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/20260406/150131_task_7b2c32/supply.summary.json b/code/public/_admin_templates/domain-supply-runs/20260406/150131_task_7b2c32/supply.summary.json new file mode 100644 index 0000000..eac448e --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/20260406/150131_task_7b2c32/supply.summary.json @@ -0,0 +1,39 @@ +{ + "template_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/20260406/150131_task_7b2c32/domain-supply-batch-replay.xlsx", + "output_root": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/20260406/150131_task_7b2c32", + "processed_count": 2, + "success_count": 2, + "failed_count": 0, + "site_import_rows_count": 2, + "bootstrap_rows_count": 2, + "site_import_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/20260406/150131_task_7b2c32/generated/site-domain-import.generated.xlsx", + "bootstrap_batch_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/20260406/150131_task_7b2c32/generated/domain-bootstrap-batch.generated.xlsx", + "run_bootstrap": false, + "batch_root": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/20260406/150131_task_7b2c32/bundles", + "index_root": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/20260406/150131_task_7b2c32/bundles", + "portal_root": "off", + "bootstrap_run": "off", + "items": [ + { + "host": "traffic-supply.example.com", + "strategy_profile": "traffic", + "status": "ready", + "message": "prepared", + "site_domain": "traffic-supply.example.com", + "bundle_host": "traffic-supply.example.com", + "missing_fields": [] + }, + { + "host": "*.expand-supply.example.com", + "strategy_profile": "expand", + "status": "ready", + "message": "prepared", + "site_domain": "*.expand-supply.example.com", + "bundle_host": "*.expand-supply.example.com", + "missing_fields": [] + } + ], + "bootstrap_batch": [], + "summary_json": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/20260406/150131_task_7b2c32/supply.summary.json", + "summary_html": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/20260406/150131_task_7b2c32/supply.summary.html" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_duty/index.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_duty/index.html new file mode 100644 index 0000000..b7ce2c3 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_duty/index.html @@ -0,0 +1,26 @@ + + + + +Bootstrap Duty Queue + + + +

返回启动包总览 | 查看值班入口 | 查看启动包接手队列 | 查看已完成启动包 | 查看启动包运行记录 | 返回统一门户首页 | 查看新域名上线 SOP

+

Bootstrap Duty Queue

+

open_count: 6

+

priority: P0 1 / P1 2 / P2 3 / P3 0

+

owner: 站点入库 1 / 站点策略 1 / 补料发布 3 / 人工复核/排障 1

+ + + + + + + + + + +
hostpriorityownerhandoffsourcetodosummarynext_commandupdated_atlinks
*.expand-supply.example.comP0人工复核/排障需先入库最新 bundle先处理异常apply 仍返回 domain_not_found,说明当前目标域名还未正式落库,需要先完成 register。php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com' --dry-run=0 --format=text2026-04-08T15:13:14+08:00bundle / run
video-test.comP1站点入库待正式入库最新 run先正式入库高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。php scripts/domain_bootstrap_run.php 'SEONexus/code/storage/domain_bootstrap_bundles/video-test-next-stage-a1' --dry-run=0 --format=text2026-04-08T15:13:09+08:00run
chuanjiafeng.netP1站点策略待正式应用最新 run先正式应用高层 dry-run 已确认域名可继续 apply,下一步应正式执行 bootstrap run。php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-next-stage-a1' --dry-run=0 --format=text2026-04-08T13:37:34+08:00run
traffic-supply.example.comP2补料发布可进入 Prepare最新 bundle先进入 Prepare域名记录与 SEO 策略已经正式落地,下一步可以直接进入 prepare 和 release dry-run 门禁链。php scripts/seo_copy_batch_prepare.php '20260408_145449' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved'2026-04-08T15:13:14+08:00bundle / run
demo.example.comP2补料发布可进入 Prepare最新 run先进入 Prepare本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。php scripts/seo_copy_batch_prepare.php 'demo-core-batch1' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved'2026-04-08T14:39:15+08:00run
liangzuan.netP2补料发布可进入 Prepare最新 run先进入 Prepare本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。php scripts/seo_copy_batch_prepare.php 'liangzuan-next-stage-b1' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/liangzuan-next-stage-b1/data/seo_copy_jobs/approved'2026-04-08T13:47:19+08:00run
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_duty/index.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_duty/index.json new file mode 100644 index 0000000..9a428fb --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_duty/index.json @@ -0,0 +1,142 @@ +{ + "generated_at": "2026-04-08T15:13:14+08:00", + "entries": [ + { + "host": "*.expand-supply.example.com", + "source": "bundle", + "source_label": "最新 bundle", + "handoff_stage_code": "needs_attention", + "handoff_stage_label": "需先入库", + "summary": "apply 仍返回 domain_not_found,说明当前目标域名还未正式落库,需要先完成 register。", + "next_step": "先执行高层 run 或 register", + "next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com' --dry-run=0 --format=text", + "updated_at": "2026-04-08T15:13:14+08:00", + "bundle_detail_slug": "expand-supply-example-com", + "run_detail_slug": "204648_expand-supply-example-com", + "priority_score": 100, + "priority_label": "P0", + "owner_label": "人工复核/排障", + "todo_title": "先处理异常" + }, + { + "host": "video-test.com", + "source": "run", + "source_label": "最新 run", + "handoff_stage_code": "ready_to_register", + "handoff_stage_label": "待正式入库", + "summary": "高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。", + "next_step": "正式执行高层 run", + "next_command": "php scripts/domain_bootstrap_run.php 'SEONexus/code/storage/domain_bootstrap_bundles/video-test-next-stage-a1' --dry-run=0 --format=text", + "updated_at": "2026-04-08T15:13:09+08:00", + "bundle_detail_slug": "", + "run_detail_slug": "151309_video-test-com", + "priority_score": 90, + "priority_label": "P1", + "owner_label": "站点入库", + "todo_title": "先正式入库" + }, + { + "host": "chuanjiafeng.net", + "source": "run", + "source_label": "最新 run", + "handoff_stage_code": "ready_to_apply", + "handoff_stage_label": "待正式应用", + "summary": "高层 dry-run 已确认域名可继续 apply,下一步应正式执行 bootstrap run。", + "next_step": "正式执行高层 run", + "next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-next-stage-a1' --dry-run=0 --format=text", + "updated_at": "2026-04-08T13:37:34+08:00", + "bundle_detail_slug": "", + "run_detail_slug": "133734_chuanjiafeng-net", + "priority_score": 80, + "priority_label": "P1", + "owner_label": "站点策略", + "todo_title": "先正式应用" + }, + { + "host": "traffic-supply.example.com", + "source": "bundle", + "source_label": "最新 bundle", + "handoff_stage_code": "ready_for_prepare", + "handoff_stage_label": "可进入 Prepare", + "summary": "域名记录与 SEO 策略已经正式落地,下一步可以直接进入 prepare 和 release dry-run 门禁链。", + "next_step": "继续执行 prepare", + "next_command": "php scripts/seo_copy_batch_prepare.php '20260408_145449' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved'", + "updated_at": "2026-04-08T15:13:14+08:00", + "bundle_detail_slug": "traffic-supply-example-com", + "run_detail_slug": "144957_traffic-supply-example-com", + "priority_score": 70, + "priority_label": "P2", + "owner_label": "补料发布", + "todo_title": "先进入 Prepare" + }, + { + "host": "demo.example.com", + "source": "run", + "source_label": "最新 run", + "handoff_stage_code": "ready_for_prepare", + "handoff_stage_label": "可进入 Prepare", + "summary": "本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。", + "next_step": "继续执行 prepare", + "next_command": "php scripts/seo_copy_batch_prepare.php 'demo-core-batch1' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved'", + "updated_at": "2026-04-08T14:39:15+08:00", + "bundle_detail_slug": "", + "run_detail_slug": "143915_demo-example-com", + "priority_score": 70, + "priority_label": "P2", + "owner_label": "补料发布", + "todo_title": "先进入 Prepare" + }, + { + "host": "liangzuan.net", + "source": "run", + "source_label": "最新 run", + "handoff_stage_code": "ready_for_prepare", + "handoff_stage_label": "可进入 Prepare", + "summary": "本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。", + "next_step": "继续执行 prepare", + "next_command": "php scripts/seo_copy_batch_prepare.php 'liangzuan-next-stage-b1' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/liangzuan-next-stage-b1/data/seo_copy_jobs/approved'", + "updated_at": "2026-04-08T13:47:19+08:00", + "bundle_detail_slug": "", + "run_detail_slug": "134719_liangzuan-net", + "priority_score": 70, + "priority_label": "P2", + "owner_label": "补料发布", + "todo_title": "先进入 Prepare" + } + ], + "open_count": 6, + "pipeline_import_policy": { + "requested": false, + "armed": false, + "enabled": false, + "mode": "off", + "source_kind": "", + "source_path": "", + "summary": "默认关闭,需显式放行后才会自动导入 AI 结果。" + }, + "priority_p0_count": 1, + "priority_p1_count": 2, + "priority_p2_count": 3, + "priority_p3_count": 0, + "owner_register_count": 1, + "owner_apply_count": 1, + "owner_prepare_count": 3, + "owner_manual_count": 1, + "latest_entry": { + "host": "*.expand-supply.example.com", + "source": "bundle", + "source_label": "最新 bundle", + "handoff_stage_code": "needs_attention", + "handoff_stage_label": "需先入库", + "summary": "apply 仍返回 domain_not_found,说明当前目标域名还未正式落库,需要先完成 register。", + "next_step": "先执行高层 run 或 register", + "next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com' --dry-run=0 --format=text", + "updated_at": "2026-04-08T15:13:14+08:00", + "bundle_detail_slug": "expand-supply-example-com", + "run_detail_slug": "204648_expand-supply-example-com", + "priority_score": 100, + "priority_label": "P0", + "owner_label": "人工复核/排障", + "todo_title": "先处理异常" + } +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_handoff/index.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_handoff/index.html new file mode 100644 index 0000000..17519f7 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_handoff/index.html @@ -0,0 +1,25 @@ + + + + +Bootstrap Handoff Queue + + + +

返回启动包总览 | 查看已完成启动包 | 查看启动包运行记录 | 返回统一门户首页 | 查看新域名上线 SOP

+

Bootstrap Handoff Queue

+

hosts_count: 6

+

handoff: 待入库 1 / 待应用 1 / 可进 prepare 3 / 待导入 0 / 待跑 dry-run 0 / 待发布 0 / 需关注 1

+ + + + + + + + + + +
hosthandoffsourcesummarynext_stepnext_commandupdated_atlinks
*.expand-supply.example.com需先入库最新 bundleapply 仍返回 domain_not_found,说明当前目标域名还未正式落库,需要先完成 register。先执行高层 run 或 registerphp scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com' --dry-run=0 --format=text2026-04-08T15:13:14+08:00bundle / run
traffic-supply.example.com可进入 Prepare最新 bundle域名记录与 SEO 策略已经正式落地,下一步可以直接进入 prepare 和 release dry-run 门禁链。继续执行 preparephp scripts/seo_copy_batch_prepare.php '20260408_145449' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved'2026-04-08T15:13:14+08:00bundle / run
video-test.com待正式入库最新 run高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。正式执行高层 runphp scripts/domain_bootstrap_run.php 'SEONexus/code/storage/domain_bootstrap_bundles/video-test-next-stage-a1' --dry-run=0 --format=text2026-04-08T15:13:09+08:00run
demo.example.com可进入 Prepare最新 run本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。继续执行 preparephp scripts/seo_copy_batch_prepare.php 'demo-core-batch1' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved'2026-04-08T14:39:15+08:00run
liangzuan.net可进入 Prepare最新 run本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。继续执行 preparephp scripts/seo_copy_batch_prepare.php 'liangzuan-next-stage-b1' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/liangzuan-next-stage-b1/data/seo_copy_jobs/approved'2026-04-08T13:47:19+08:00run
chuanjiafeng.net待正式应用最新 run高层 dry-run 已确认域名可继续 apply,下一步应正式执行 bootstrap run。正式执行高层 runphp scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-next-stage-a1' --dry-run=0 --format=text2026-04-08T13:37:34+08:00run
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_handoff/index.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_handoff/index.json new file mode 100644 index 0000000..4df590b --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_handoff/index.json @@ -0,0 +1,113 @@ +{ + "generated_at": "2026-04-08T15:13:14+08:00", + "entries": [ + { + "host": "*.expand-supply.example.com", + "source": "bundle", + "source_label": "最新 bundle", + "handoff_stage_code": "needs_attention", + "handoff_stage_label": "需先入库", + "summary": "apply 仍返回 domain_not_found,说明当前目标域名还未正式落库,需要先完成 register。", + "next_step": "先执行高层 run 或 register", + "next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com' --dry-run=0 --format=text", + "updated_at": "2026-04-08T15:13:14+08:00", + "bundle_detail_slug": "expand-supply-example-com", + "run_detail_slug": "204648_expand-supply-example-com" + }, + { + "host": "traffic-supply.example.com", + "source": "bundle", + "source_label": "最新 bundle", + "handoff_stage_code": "ready_for_prepare", + "handoff_stage_label": "可进入 Prepare", + "summary": "域名记录与 SEO 策略已经正式落地,下一步可以直接进入 prepare 和 release dry-run 门禁链。", + "next_step": "继续执行 prepare", + "next_command": "php scripts/seo_copy_batch_prepare.php '20260408_145449' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved'", + "updated_at": "2026-04-08T15:13:14+08:00", + "bundle_detail_slug": "traffic-supply-example-com", + "run_detail_slug": "144957_traffic-supply-example-com" + }, + { + "host": "video-test.com", + "source": "run", + "source_label": "最新 run", + "handoff_stage_code": "ready_to_register", + "handoff_stage_label": "待正式入库", + "summary": "高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。", + "next_step": "正式执行高层 run", + "next_command": "php scripts/domain_bootstrap_run.php 'SEONexus/code/storage/domain_bootstrap_bundles/video-test-next-stage-a1' --dry-run=0 --format=text", + "updated_at": "2026-04-08T15:13:09+08:00", + "bundle_detail_slug": "", + "run_detail_slug": "151309_video-test-com" + }, + { + "host": "demo.example.com", + "source": "run", + "source_label": "最新 run", + "handoff_stage_code": "ready_for_prepare", + "handoff_stage_label": "可进入 Prepare", + "summary": "本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。", + "next_step": "继续执行 prepare", + "next_command": "php scripts/seo_copy_batch_prepare.php 'demo-core-batch1' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved'", + "updated_at": "2026-04-08T14:39:15+08:00", + "bundle_detail_slug": "", + "run_detail_slug": "143915_demo-example-com" + }, + { + "host": "liangzuan.net", + "source": "run", + "source_label": "最新 run", + "handoff_stage_code": "ready_for_prepare", + "handoff_stage_label": "可进入 Prepare", + "summary": "本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。", + "next_step": "继续执行 prepare", + "next_command": "php scripts/seo_copy_batch_prepare.php 'liangzuan-next-stage-b1' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/liangzuan-next-stage-b1/data/seo_copy_jobs/approved'", + "updated_at": "2026-04-08T13:47:19+08:00", + "bundle_detail_slug": "", + "run_detail_slug": "134719_liangzuan-net" + }, + { + "host": "chuanjiafeng.net", + "source": "run", + "source_label": "最新 run", + "handoff_stage_code": "ready_to_apply", + "handoff_stage_label": "待正式应用", + "summary": "高层 dry-run 已确认域名可继续 apply,下一步应正式执行 bootstrap run。", + "next_step": "正式执行高层 run", + "next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-next-stage-a1' --dry-run=0 --format=text", + "updated_at": "2026-04-08T13:37:34+08:00", + "bundle_detail_slug": "", + "run_detail_slug": "133734_chuanjiafeng-net" + } + ], + "hosts_count": 6, + "pipeline_import_policy": { + "requested": false, + "armed": false, + "enabled": false, + "mode": "off", + "source_kind": "", + "source_path": "", + "summary": "默认关闭,需显式放行后才会自动导入 AI 结果。" + }, + "handoff_ready_to_register_count": 1, + "handoff_ready_to_apply_count": 1, + "handoff_ready_for_prepare_count": 3, + "handoff_ready_to_import_count": 0, + "handoff_ready_to_release_dry_run_count": 0, + "handoff_ready_to_publish_count": 0, + "handoff_attention_count": 1, + "latest_entry": { + "host": "*.expand-supply.example.com", + "source": "bundle", + "source_label": "最新 bundle", + "handoff_stage_code": "needs_attention", + "handoff_stage_label": "需先入库", + "summary": "apply 仍返回 domain_not_found,说明当前目标域名还未正式落库,需要先完成 register。", + "next_step": "先执行高层 run 或 register", + "next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com' --dry-run=0 --format=text", + "updated_at": "2026-04-08T15:13:14+08:00", + "bundle_detail_slug": "expand-supply-example-com", + "run_detail_slug": "204648_expand-supply-example-com" + } +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_index/details/expand-supply-example-com.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_index/details/expand-supply-example-com.html new file mode 100644 index 0000000..b78de98 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_index/details/expand-supply-example-com.html @@ -0,0 +1,20 @@ + + + + +Bootstrap Bundle Detail + + + +

返回启动包总览 | 查看值班入口 | 查看启动包接手队列 | 查看值班待办 | 查看已完成启动包 | 查看启动包运行记录 | 返回统一门户首页 | 查看新域名上线 SOP

+

*.expand-supply.example.com

+

状态摘要

+
host*.expand-supply.example.com
bundle_root/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com
strategy_profileexpand
canonical_moderelaxed
play_index_modeindex_follow
robots_policyindex_follow
forge_exposure_profileexpanded
structured_policycompact
reference_modeid_only
pipeline_import_modeoff
pipeline_import_requestedno
pipeline_import_armedno
pipeline_import_enabledno
handoff_stage需先入库
register_statustemplate_not_found
register_result_status
apply_statusdomain_not_found
apply_result_status
bundle_run_status
prepare_result_status
import_result_status
release_dry_run_status
publish_result_status
items_count9
generated_at2026-04-08T15:13:14+08:00
+

接手判断

+
stage需先入库
summaryapply 仍返回 domain_not_found,说明当前目标域名还未正式落库,需要先完成 register。
next_step先执行高层 run 或 register
recommended_commandphp scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com' --dry-run=0 --format=text
pipeline_import_policy_summary默认关闭,需显式放行后才会自动导入 AI 结果。
+

文件路径

+
manifest_path/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy_jobs/approved/expand-supply-example-com-core-batch1.manifest.json
runbook_path/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/README.md
site_register_path/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-register.sample.json
site_register_preview_path/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-register.preview.json
site_register_result_path
site_bootstrap_path/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-bootstrap.sample.json
site_apply_preview_path/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-apply.preview.json
site_apply_result_path
import_result_path
publish_result_path
bundle_run_json
prepare_summary_path
prepare_out_dir
import_source_dir
pipeline_import_source_path
release_dry_run_summary_path
release_dry_run_run_dir
publish_result_run_summary_path
publish_result_run_dir
publish_result_target_root
+

建议命令

+
stepcommand
pipeline_dry_runphp scripts/domain_bootstrap_pipeline_run.php --host='*.expand-supply.example.com' --step-limit=6 --dry-run=1 --allow-prepare=1 --format=text
pipelinephp scripts/domain_bootstrap_pipeline_run.php --host='*.expand-supply.example.com' --step-limit=6 --dry-run=0 --allow-prepare=1 --allow-release-dry-run=1 --format=text
pipeline_importphp scripts/domain_bootstrap_pipeline_run.php --host='*.expand-supply.example.com' --step-limit=3 --dry-run=0 --allow-import=1 --ai-result-dir=<ai-result-dir> --allow-release-dry-run=1 --format=text
pipeline_import_rootphp scripts/domain_bootstrap_pipeline_run.php --host='*.expand-supply.example.com' --step-limit=3 --dry-run=0 --allow-import=1 --ai-result-root=<ai-result-root> --allow-release-dry-run=1 --format=text
oncall_dry_runphp scripts/domain_bootstrap_oncall_run.php --host='*.expand-supply.example.com' --dry-run=1 --format=text
oncallphp scripts/domain_bootstrap_oncall_run.php --host='*.expand-supply.example.com' --dry-run=0 --format=text
run_dry_runphp scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com' --dry-run=1 --format=text
runphp scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com' --dry-run=0 --format=text
register_dry_runphp scripts/domain_bootstrap_register.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-register.sample.json' --dry-run=1 --format=text
registerphp scripts/domain_bootstrap_register.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-register.sample.json' --format=text
apply_dry_runphp scripts/domain_seo_bootstrap_apply.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-bootstrap.sample.json' --dry-run=1 --format=text
applyphp scripts/domain_seo_bootstrap_apply.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-bootstrap.sample.json' --format=text
preparephp scripts/seo_copy_batch_prepare.php 'expand-supply-example-com-core-batch1' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy_jobs/approved'
importphp scripts/domain_bootstrap_import_ai.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com' <ai-result-dir> --format=text
import_low_levelphp scripts/seo_copy_batch_import.php <ai-result-dir> --target-root='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy'
dry_runphp scripts/seo_copy_release_run.php 'expand-supply-example-com-core-batch1' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy_jobs/approved' --source-root='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy' --base-url='https://*.expand-supply.example.com' --dry-run=1 --format=text
publishphp scripts/domain_bootstrap_publish.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com' --format=text
publish_low_levelphp scripts/seo_copy_release_run.php 'expand-supply-example-com-core-batch1' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy_jobs/approved' --source-root='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy' --base-url='https://*.expand-supply.example.com' --format=text
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_index/details/expand-supply-example-com.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_index/details/expand-supply-example-com.json new file mode 100644 index 0000000..08864fd --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_index/details/expand-supply-example-com.json @@ -0,0 +1,101 @@ +{ + "host": "*.expand-supply.example.com", + "detail_slug": "expand-supply-example-com", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com", + "summary_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/bootstrap-summary.json", + "runbook_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/README.md", + "site_register_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-register.sample.json", + "site_register_preview_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-register.preview.json", + "site_register_result_path": "", + "site_bootstrap_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-bootstrap.sample.json", + "site_apply_preview_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-apply.preview.json", + "site_apply_result_path": "", + "import_result_path": "", + "publish_result_path": "", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy_jobs/approved/expand-supply-example-com-core-batch1.manifest.json", + "manifest_name": "expand-supply-example-com-core-batch1", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy_jobs/approved", + "base_url": "https://*.expand-supply.example.com", + "items_count": 9, + "strategy_profile": "expand", + "structured_policy": "compact", + "reference_mode": "id_only", + "forge_exposure_profile": "expanded", + "canonical_mode": "relaxed", + "play_index_mode": "index_follow", + "robots_policy": "index_follow", + "register_status": "template_not_found", + "register_create_fields": 0, + "template_id": 1, + "template_code": "", + "register_found": false, + "register_result_status": "", + "register_result_at": "", + "apply_status": "domain_not_found", + "apply_changed_fields": 0, + "apply_found": false, + "apply_result_status": "", + "apply_result_at": "", + "bundle_run_status": "", + "bundle_run_name": "", + "bundle_run_detail_slug": "", + "bundle_run_json": "", + "bundle_run_dry_run": false, + "bundle_run_executed_at": "", + "prepare_result_status": "", + "prepare_result_at": "", + "prepare_out_dir": "", + "prepare_summary_path": "", + "import_result_status": "", + "import_result_at": "", + "import_source_dir": "", + "import_imported_count": 0, + "import_skipped_count": 0, + "publish_result_status": "", + "publish_result_at": "", + "publish_result_run_dir": "", + "publish_result_run_summary_path": "", + "publish_result_target_root": "", + "publish_result_published_count": 0, + "release_dry_run_status": "", + "release_dry_run_at": "", + "release_dry_run_run_dir": "", + "release_dry_run_summary_path": "", + "preview_status": "domain_not_found", + "preview_changed_fields": 0, + "found": false, + "generated_at": "2026-04-08T15:13:14+08:00", + "pipeline_import_requested": false, + "pipeline_import_armed": false, + "pipeline_import_enabled": false, + "pipeline_import_mode": "off", + "pipeline_import_source_kind": "", + "pipeline_import_source_path": "", + "pipeline_import_summary": "默认关闭,需显式放行后才会自动导入 AI 结果。", + "next_commands": { + "pipeline_dry_run": "php scripts/domain_bootstrap_pipeline_run.php --host='*.expand-supply.example.com' --step-limit=6 --dry-run=1 --allow-prepare=1 --format=text", + "pipeline": "php scripts/domain_bootstrap_pipeline_run.php --host='*.expand-supply.example.com' --step-limit=6 --dry-run=0 --allow-prepare=1 --allow-release-dry-run=1 --format=text", + "pipeline_import": "php scripts/domain_bootstrap_pipeline_run.php --host='*.expand-supply.example.com' --step-limit=3 --dry-run=0 --allow-import=1 --ai-result-dir= --allow-release-dry-run=1 --format=text", + "pipeline_import_root": "php scripts/domain_bootstrap_pipeline_run.php --host='*.expand-supply.example.com' --step-limit=3 --dry-run=0 --allow-import=1 --ai-result-root= --allow-release-dry-run=1 --format=text", + "oncall_dry_run": "php scripts/domain_bootstrap_oncall_run.php --host='*.expand-supply.example.com' --dry-run=1 --format=text", + "oncall": "php scripts/domain_bootstrap_oncall_run.php --host='*.expand-supply.example.com' --dry-run=0 --format=text", + "run_dry_run": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com' --dry-run=1 --format=text", + "run": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com' --dry-run=0 --format=text", + "register_dry_run": "php scripts/domain_bootstrap_register.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-register.sample.json' --dry-run=1 --format=text", + "register": "php scripts/domain_bootstrap_register.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-register.sample.json' --format=text", + "apply_dry_run": "php scripts/domain_seo_bootstrap_apply.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-bootstrap.sample.json' --dry-run=1 --format=text", + "apply": "php scripts/domain_seo_bootstrap_apply.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-bootstrap.sample.json' --format=text", + "prepare": "php scripts/seo_copy_batch_prepare.php 'expand-supply-example-com-core-batch1' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy_jobs/approved'", + "import": "php scripts/domain_bootstrap_import_ai.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com' --format=text", + "import_low_level": "php scripts/seo_copy_batch_import.php --target-root='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy'", + "dry_run": "php scripts/seo_copy_release_run.php 'expand-supply-example-com-core-batch1' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy_jobs/approved' --source-root='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy' --base-url='https://*.expand-supply.example.com' --dry-run=1 --format=text", + "publish": "php scripts/domain_bootstrap_publish.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com' --format=text", + "publish_low_level": "php scripts/seo_copy_release_run.php 'expand-supply-example-com-core-batch1' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy_jobs/approved' --source-root='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy' --base-url='https://*.expand-supply.example.com' --format=text" + }, + "handoff_stage_code": "needs_attention", + "handoff_stage_label": "需先入库", + "handoff_summary": "apply 仍返回 domain_not_found,说明当前目标域名还未正式落库,需要先完成 register。", + "handoff_next_step": "先执行高层 run 或 register", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com' --dry-run=0 --format=text" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_index/details/traffic-supply-example-com.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_index/details/traffic-supply-example-com.html new file mode 100644 index 0000000..f03f487 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_index/details/traffic-supply-example-com.html @@ -0,0 +1,20 @@ + + + + +Bootstrap Bundle Detail + + + +

返回启动包总览 | 查看值班入口 | 查看启动包接手队列 | 查看值班待办 | 查看已完成启动包 | 查看启动包运行记录 | 返回统一门户首页 | 查看新域名上线 SOP

+

traffic-supply.example.com

+

状态摘要

+
hosttraffic-supply.example.com
bundle_root/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com
strategy_profiletraffic
canonical_modestrict
play_index_modeindex_follow
robots_policyindex_follow
forge_exposure_profilebalanced
structured_policycompact
reference_modeid_only
pipeline_import_modeoff
pipeline_import_requestedno
pipeline_import_armedno
pipeline_import_enabledno
handoff_stage可进入 Prepare
register_statustemplate_not_found
register_result_statuscreated
apply_statusdomain_not_found
apply_result_statusapplied
bundle_run_statuscompleted
prepare_result_status
import_result_status
release_dry_run_status
publish_result_status
items_count9
generated_at2026-04-08T15:13:14+08:00
+

接手判断

+
stage可进入 Prepare
summary域名记录与 SEO 策略已经正式落地,下一步可以直接进入 prepare 和 release dry-run 门禁链。
next_step继续执行 prepare
recommended_commandphp scripts/seo_copy_batch_prepare.php '20260408_145449' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved'
pipeline_import_policy_summary默认关闭,需显式放行后才会自动导入 AI 结果。
+

文件路径

+
manifest_path/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved/20260408_145449.manifest.json
runbook_path/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/README.md
site_register_path/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-register.sample.json
site_register_preview_path/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-register.preview.json
site_register_result_path/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-register.result.json
site_bootstrap_path/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-bootstrap.sample.json
site_apply_preview_path/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-apply.preview.json
site_apply_result_path/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-apply.result.json
import_result_path
publish_result_path
bundle_run_json/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260408/144957_traffic-supply-example-com.json
prepare_summary_path
prepare_out_dir
import_source_dir
pipeline_import_source_path
release_dry_run_summary_path
release_dry_run_run_dir
publish_result_run_summary_path
publish_result_run_dir
publish_result_target_root
+

建议命令

+
stepcommand
pipeline_dry_runphp scripts/domain_bootstrap_pipeline_run.php --host='traffic-supply.example.com' --step-limit=6 --dry-run=1 --allow-prepare=1 --format=text
pipelinephp scripts/domain_bootstrap_pipeline_run.php --host='traffic-supply.example.com' --step-limit=6 --dry-run=0 --allow-prepare=1 --allow-release-dry-run=1 --format=text
pipeline_importphp scripts/domain_bootstrap_pipeline_run.php --host='traffic-supply.example.com' --step-limit=3 --dry-run=0 --allow-import=1 --ai-result-dir=<ai-result-dir> --allow-release-dry-run=1 --format=text
pipeline_import_rootphp scripts/domain_bootstrap_pipeline_run.php --host='traffic-supply.example.com' --step-limit=3 --dry-run=0 --allow-import=1 --ai-result-root=<ai-result-root> --allow-release-dry-run=1 --format=text
oncall_dry_runphp scripts/domain_bootstrap_oncall_run.php --host='traffic-supply.example.com' --dry-run=1 --format=text
oncallphp scripts/domain_bootstrap_oncall_run.php --host='traffic-supply.example.com' --dry-run=0 --format=text
run_dry_runphp scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com' --dry-run=1 --format=text
runphp scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com' --dry-run=0 --format=text
register_dry_runphp scripts/domain_bootstrap_register.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-register.sample.json' --dry-run=1 --format=text
registerphp scripts/domain_bootstrap_register.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-register.sample.json' --format=text
apply_dry_runphp scripts/domain_seo_bootstrap_apply.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-bootstrap.sample.json' --dry-run=1 --format=text
applyphp scripts/domain_seo_bootstrap_apply.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-bootstrap.sample.json' --format=text
preparephp scripts/seo_copy_batch_prepare.php '20260408_145449' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved'
importphp scripts/domain_bootstrap_import_ai.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com' <ai-result-dir> --format=text
import_low_levelphp scripts/seo_copy_batch_import.php <ai-result-dir> --target-root='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy'
dry_runphp scripts/seo_copy_release_run.php '20260408_145449' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved' --source-root='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy' --base-url='https://traffic-supply.example.com' --dry-run=1 --format=text
publishphp scripts/domain_bootstrap_publish.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com' --format=text
publish_low_levelphp scripts/seo_copy_release_run.php '20260408_145449' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved' --source-root='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy' --base-url='https://traffic-supply.example.com' --format=text
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_index/details/traffic-supply-example-com.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_index/details/traffic-supply-example-com.json new file mode 100644 index 0000000..d490a4c --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_index/details/traffic-supply-example-com.json @@ -0,0 +1,101 @@ +{ + "host": "traffic-supply.example.com", + "detail_slug": "traffic-supply-example-com", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com", + "summary_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/bootstrap-summary.json", + "runbook_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/README.md", + "site_register_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-register.sample.json", + "site_register_preview_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-register.preview.json", + "site_register_result_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-register.result.json", + "site_bootstrap_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-bootstrap.sample.json", + "site_apply_preview_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-apply.preview.json", + "site_apply_result_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-apply.result.json", + "import_result_path": "", + "publish_result_path": "", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved/20260408_145449.manifest.json", + "manifest_name": "20260408_145449", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved", + "base_url": "https://traffic-supply.example.com", + "items_count": 9, + "strategy_profile": "traffic", + "structured_policy": "compact", + "reference_mode": "id_only", + "forge_exposure_profile": "balanced", + "canonical_mode": "strict", + "play_index_mode": "index_follow", + "robots_policy": "index_follow", + "register_status": "template_not_found", + "register_create_fields": 0, + "template_id": 1, + "template_code": "", + "register_found": false, + "register_result_status": "created", + "register_result_at": "2026-04-08T14:49:57+08:00", + "apply_status": "domain_not_found", + "apply_changed_fields": 0, + "apply_found": false, + "apply_result_status": "applied", + "apply_result_at": "2026-04-08T14:49:57+08:00", + "bundle_run_status": "completed", + "bundle_run_name": "144957_traffic-supply-example-com", + "bundle_run_detail_slug": "144957_traffic-supply-example-com", + "bundle_run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260408/144957_traffic-supply-example-com.json", + "bundle_run_dry_run": false, + "bundle_run_executed_at": "2026-04-08T14:49:57+08:00", + "prepare_result_status": "", + "prepare_result_at": "", + "prepare_out_dir": "", + "prepare_summary_path": "", + "import_result_status": "", + "import_result_at": "", + "import_source_dir": "", + "import_imported_count": 0, + "import_skipped_count": 0, + "publish_result_status": "", + "publish_result_at": "", + "publish_result_run_dir": "", + "publish_result_run_summary_path": "", + "publish_result_target_root": "", + "publish_result_published_count": 0, + "release_dry_run_status": "", + "release_dry_run_at": "", + "release_dry_run_run_dir": "", + "release_dry_run_summary_path": "", + "preview_status": "domain_not_found", + "preview_changed_fields": 0, + "found": false, + "generated_at": "2026-04-08T15:13:14+08:00", + "pipeline_import_requested": false, + "pipeline_import_armed": false, + "pipeline_import_enabled": false, + "pipeline_import_mode": "off", + "pipeline_import_source_kind": "", + "pipeline_import_source_path": "", + "pipeline_import_summary": "默认关闭,需显式放行后才会自动导入 AI 结果。", + "next_commands": { + "pipeline_dry_run": "php scripts/domain_bootstrap_pipeline_run.php --host='traffic-supply.example.com' --step-limit=6 --dry-run=1 --allow-prepare=1 --format=text", + "pipeline": "php scripts/domain_bootstrap_pipeline_run.php --host='traffic-supply.example.com' --step-limit=6 --dry-run=0 --allow-prepare=1 --allow-release-dry-run=1 --format=text", + "pipeline_import": "php scripts/domain_bootstrap_pipeline_run.php --host='traffic-supply.example.com' --step-limit=3 --dry-run=0 --allow-import=1 --ai-result-dir= --allow-release-dry-run=1 --format=text", + "pipeline_import_root": "php scripts/domain_bootstrap_pipeline_run.php --host='traffic-supply.example.com' --step-limit=3 --dry-run=0 --allow-import=1 --ai-result-root= --allow-release-dry-run=1 --format=text", + "oncall_dry_run": "php scripts/domain_bootstrap_oncall_run.php --host='traffic-supply.example.com' --dry-run=1 --format=text", + "oncall": "php scripts/domain_bootstrap_oncall_run.php --host='traffic-supply.example.com' --dry-run=0 --format=text", + "run_dry_run": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com' --dry-run=1 --format=text", + "run": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com' --dry-run=0 --format=text", + "register_dry_run": "php scripts/domain_bootstrap_register.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-register.sample.json' --dry-run=1 --format=text", + "register": "php scripts/domain_bootstrap_register.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-register.sample.json' --format=text", + "apply_dry_run": "php scripts/domain_seo_bootstrap_apply.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-bootstrap.sample.json' --dry-run=1 --format=text", + "apply": "php scripts/domain_seo_bootstrap_apply.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-bootstrap.sample.json' --format=text", + "prepare": "php scripts/seo_copy_batch_prepare.php '20260408_145449' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved'", + "import": "php scripts/domain_bootstrap_import_ai.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com' --format=text", + "import_low_level": "php scripts/seo_copy_batch_import.php --target-root='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy'", + "dry_run": "php scripts/seo_copy_release_run.php '20260408_145449' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved' --source-root='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy' --base-url='https://traffic-supply.example.com' --dry-run=1 --format=text", + "publish": "php scripts/domain_bootstrap_publish.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com' --format=text", + "publish_low_level": "php scripts/seo_copy_release_run.php '20260408_145449' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved' --source-root='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy' --base-url='https://traffic-supply.example.com' --format=text" + }, + "handoff_stage_code": "ready_for_prepare", + "handoff_stage_label": "可进入 Prepare", + "handoff_summary": "域名记录与 SEO 策略已经正式落地,下一步可以直接进入 prepare 和 release dry-run 门禁链。", + "handoff_next_step": "继续执行 prepare", + "handoff_next_command": "php scripts/seo_copy_batch_prepare.php '20260408_145449' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved'" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_index/index.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_index/index.html new file mode 100644 index 0000000..053deba --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_index/index.html @@ -0,0 +1,26 @@ + + + + +Domain Bootstrap Bundles + + + +

查看值班入口 | 查看启动包接手队列 | 查看值班待办 | 查看已完成启动包 | 查看启动包运行记录 | 返回统一门户首页 | 查看新域名上线 SOP

+

Domain Bootstrap Bundles

+

scan_root: /www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles

+

bundles_count: 2

+

register_ready: 0 / register_existing: 0 / register_done: 1

+

apply_ready: 0 / apply_pending: 2 / apply_done: 1 / import_done: 0 / publish_done: 0

+

bundle_runs: 1

+

handoff: 待入库 0 / 待应用 0 / 可进 prepare 1 / 待导入 0 / 待跑 dry-run 0 / 待发布 0 / 需关注 1

+

pipeline_import_policy: off / requested=no / armed=no / effective=no /

+ + + + + + +
HostStrategyPolicyReferenceForge ProfileImport PolicyRegisterCreate FieldsRegister ResultApplyChangedApply ResultHandoffRun StatusItemsGeneratedRunbookRegister PreviewRegister Result FileApply PreviewApply Result FileRun Artifact
*.expand-supply.example.comexpandcompactid_onlyexpandedofftemplate_not_found0domain_not_found0需先入库92026-04-08T15:13:14+08:00/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/README.md/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-register.preview.json/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-apply.preview.json
traffic-supply.example.comtrafficcompactid_onlybalancedofftemplate_not_found0createddomain_not_found0applied可进入 Preparecompleted92026-04-08T15:13:14+08:00/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/README.md/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-register.preview.json/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-register.result.json/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-apply.preview.json/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-apply.result.json144957_traffic-supply-example-com
/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260408/144957_traffic-supply-example-com.json
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_index/index.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_index/index.json new file mode 100644 index 0000000..487acb1 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_index/index.json @@ -0,0 +1,335 @@ +{ + "scan_root": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles", + "generated_at": "2026-04-08T15:13:14+08:00", + "bundles": [ + { + "host": "*.expand-supply.example.com", + "detail_slug": "expand-supply-example-com", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com", + "summary_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/bootstrap-summary.json", + "runbook_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/README.md", + "site_register_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-register.sample.json", + "site_register_preview_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-register.preview.json", + "site_register_result_path": "", + "site_bootstrap_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-bootstrap.sample.json", + "site_apply_preview_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-apply.preview.json", + "site_apply_result_path": "", + "import_result_path": "", + "publish_result_path": "", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy_jobs/approved/expand-supply-example-com-core-batch1.manifest.json", + "manifest_name": "expand-supply-example-com-core-batch1", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy_jobs/approved", + "base_url": "https://*.expand-supply.example.com", + "items_count": 9, + "strategy_profile": "expand", + "structured_policy": "compact", + "reference_mode": "id_only", + "forge_exposure_profile": "expanded", + "canonical_mode": "relaxed", + "play_index_mode": "index_follow", + "robots_policy": "index_follow", + "register_status": "template_not_found", + "register_create_fields": 0, + "template_id": 1, + "template_code": "", + "register_found": false, + "register_result_status": "", + "register_result_at": "", + "apply_status": "domain_not_found", + "apply_changed_fields": 0, + "apply_found": false, + "apply_result_status": "", + "apply_result_at": "", + "bundle_run_status": "", + "bundle_run_name": "", + "bundle_run_detail_slug": "", + "bundle_run_json": "", + "bundle_run_dry_run": false, + "bundle_run_executed_at": "", + "prepare_result_status": "", + "prepare_result_at": "", + "prepare_out_dir": "", + "prepare_summary_path": "", + "import_result_status": "", + "import_result_at": "", + "import_source_dir": "", + "import_imported_count": 0, + "import_skipped_count": 0, + "publish_result_status": "", + "publish_result_at": "", + "publish_result_run_dir": "", + "publish_result_run_summary_path": "", + "publish_result_target_root": "", + "publish_result_published_count": 0, + "release_dry_run_status": "", + "release_dry_run_at": "", + "release_dry_run_run_dir": "", + "release_dry_run_summary_path": "", + "preview_status": "domain_not_found", + "preview_changed_fields": 0, + "found": false, + "generated_at": "2026-04-08T15:13:14+08:00", + "pipeline_import_requested": false, + "pipeline_import_armed": false, + "pipeline_import_enabled": false, + "pipeline_import_mode": "off", + "pipeline_import_source_kind": "", + "pipeline_import_source_path": "", + "pipeline_import_summary": "默认关闭,需显式放行后才会自动导入 AI 结果。", + "next_commands": { + "pipeline_dry_run": "php scripts/domain_bootstrap_pipeline_run.php --host='*.expand-supply.example.com' --step-limit=6 --dry-run=1 --allow-prepare=1 --format=text", + "pipeline": "php scripts/domain_bootstrap_pipeline_run.php --host='*.expand-supply.example.com' --step-limit=6 --dry-run=0 --allow-prepare=1 --allow-release-dry-run=1 --format=text", + "pipeline_import": "php scripts/domain_bootstrap_pipeline_run.php --host='*.expand-supply.example.com' --step-limit=3 --dry-run=0 --allow-import=1 --ai-result-dir= --allow-release-dry-run=1 --format=text", + "pipeline_import_root": "php scripts/domain_bootstrap_pipeline_run.php --host='*.expand-supply.example.com' --step-limit=3 --dry-run=0 --allow-import=1 --ai-result-root= --allow-release-dry-run=1 --format=text", + "oncall_dry_run": "php scripts/domain_bootstrap_oncall_run.php --host='*.expand-supply.example.com' --dry-run=1 --format=text", + "oncall": "php scripts/domain_bootstrap_oncall_run.php --host='*.expand-supply.example.com' --dry-run=0 --format=text", + "run_dry_run": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com' --dry-run=1 --format=text", + "run": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com' --dry-run=0 --format=text", + "register_dry_run": "php scripts/domain_bootstrap_register.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-register.sample.json' --dry-run=1 --format=text", + "register": "php scripts/domain_bootstrap_register.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-register.sample.json' --format=text", + "apply_dry_run": "php scripts/domain_seo_bootstrap_apply.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-bootstrap.sample.json' --dry-run=1 --format=text", + "apply": "php scripts/domain_seo_bootstrap_apply.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-bootstrap.sample.json' --format=text", + "prepare": "php scripts/seo_copy_batch_prepare.php 'expand-supply-example-com-core-batch1' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy_jobs/approved'", + "import": "php scripts/domain_bootstrap_import_ai.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com' --format=text", + "import_low_level": "php scripts/seo_copy_batch_import.php --target-root='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy'", + "dry_run": "php scripts/seo_copy_release_run.php 'expand-supply-example-com-core-batch1' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy_jobs/approved' --source-root='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy' --base-url='https://*.expand-supply.example.com' --dry-run=1 --format=text", + "publish": "php scripts/domain_bootstrap_publish.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com' --format=text", + "publish_low_level": "php scripts/seo_copy_release_run.php 'expand-supply-example-com-core-batch1' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy_jobs/approved' --source-root='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy' --base-url='https://*.expand-supply.example.com' --format=text" + }, + "handoff_stage_code": "needs_attention", + "handoff_stage_label": "需先入库", + "handoff_summary": "apply 仍返回 domain_not_found,说明当前目标域名还未正式落库,需要先完成 register。", + "handoff_next_step": "先执行高层 run 或 register", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com' --dry-run=0 --format=text" + }, + { + "host": "traffic-supply.example.com", + "detail_slug": "traffic-supply-example-com", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com", + "summary_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/bootstrap-summary.json", + "runbook_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/README.md", + "site_register_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-register.sample.json", + "site_register_preview_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-register.preview.json", + "site_register_result_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-register.result.json", + "site_bootstrap_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-bootstrap.sample.json", + "site_apply_preview_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-apply.preview.json", + "site_apply_result_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-apply.result.json", + "import_result_path": "", + "publish_result_path": "", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved/20260408_145449.manifest.json", + "manifest_name": "20260408_145449", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved", + "base_url": "https://traffic-supply.example.com", + "items_count": 9, + "strategy_profile": "traffic", + "structured_policy": "compact", + "reference_mode": "id_only", + "forge_exposure_profile": "balanced", + "canonical_mode": "strict", + "play_index_mode": "index_follow", + "robots_policy": "index_follow", + "register_status": "template_not_found", + "register_create_fields": 0, + "template_id": 1, + "template_code": "", + "register_found": false, + "register_result_status": "created", + "register_result_at": "2026-04-08T14:49:57+08:00", + "apply_status": "domain_not_found", + "apply_changed_fields": 0, + "apply_found": false, + "apply_result_status": "applied", + "apply_result_at": "2026-04-08T14:49:57+08:00", + "bundle_run_status": "completed", + "bundle_run_name": "144957_traffic-supply-example-com", + "bundle_run_detail_slug": "144957_traffic-supply-example-com", + "bundle_run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260408/144957_traffic-supply-example-com.json", + "bundle_run_dry_run": false, + "bundle_run_executed_at": "2026-04-08T14:49:57+08:00", + "prepare_result_status": "", + "prepare_result_at": "", + "prepare_out_dir": "", + "prepare_summary_path": "", + "import_result_status": "", + "import_result_at": "", + "import_source_dir": "", + "import_imported_count": 0, + "import_skipped_count": 0, + "publish_result_status": "", + "publish_result_at": "", + "publish_result_run_dir": "", + "publish_result_run_summary_path": "", + "publish_result_target_root": "", + "publish_result_published_count": 0, + "release_dry_run_status": "", + "release_dry_run_at": "", + "release_dry_run_run_dir": "", + "release_dry_run_summary_path": "", + "preview_status": "domain_not_found", + "preview_changed_fields": 0, + "found": false, + "generated_at": "2026-04-08T15:13:14+08:00", + "pipeline_import_requested": false, + "pipeline_import_armed": false, + "pipeline_import_enabled": false, + "pipeline_import_mode": "off", + "pipeline_import_source_kind": "", + "pipeline_import_source_path": "", + "pipeline_import_summary": "默认关闭,需显式放行后才会自动导入 AI 结果。", + "next_commands": { + "pipeline_dry_run": "php scripts/domain_bootstrap_pipeline_run.php --host='traffic-supply.example.com' --step-limit=6 --dry-run=1 --allow-prepare=1 --format=text", + "pipeline": "php scripts/domain_bootstrap_pipeline_run.php --host='traffic-supply.example.com' --step-limit=6 --dry-run=0 --allow-prepare=1 --allow-release-dry-run=1 --format=text", + "pipeline_import": "php scripts/domain_bootstrap_pipeline_run.php --host='traffic-supply.example.com' --step-limit=3 --dry-run=0 --allow-import=1 --ai-result-dir= --allow-release-dry-run=1 --format=text", + "pipeline_import_root": "php scripts/domain_bootstrap_pipeline_run.php --host='traffic-supply.example.com' --step-limit=3 --dry-run=0 --allow-import=1 --ai-result-root= --allow-release-dry-run=1 --format=text", + "oncall_dry_run": "php scripts/domain_bootstrap_oncall_run.php --host='traffic-supply.example.com' --dry-run=1 --format=text", + "oncall": "php scripts/domain_bootstrap_oncall_run.php --host='traffic-supply.example.com' --dry-run=0 --format=text", + "run_dry_run": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com' --dry-run=1 --format=text", + "run": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com' --dry-run=0 --format=text", + "register_dry_run": "php scripts/domain_bootstrap_register.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-register.sample.json' --dry-run=1 --format=text", + "register": "php scripts/domain_bootstrap_register.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-register.sample.json' --format=text", + "apply_dry_run": "php scripts/domain_seo_bootstrap_apply.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-bootstrap.sample.json' --dry-run=1 --format=text", + "apply": "php scripts/domain_seo_bootstrap_apply.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-bootstrap.sample.json' --format=text", + "prepare": "php scripts/seo_copy_batch_prepare.php '20260408_145449' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved'", + "import": "php scripts/domain_bootstrap_import_ai.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com' --format=text", + "import_low_level": "php scripts/seo_copy_batch_import.php --target-root='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy'", + "dry_run": "php scripts/seo_copy_release_run.php '20260408_145449' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved' --source-root='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy' --base-url='https://traffic-supply.example.com' --dry-run=1 --format=text", + "publish": "php scripts/domain_bootstrap_publish.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com' --format=text", + "publish_low_level": "php scripts/seo_copy_release_run.php '20260408_145449' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved' --source-root='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy' --base-url='https://traffic-supply.example.com' --format=text" + }, + "handoff_stage_code": "ready_for_prepare", + "handoff_stage_label": "可进入 Prepare", + "handoff_summary": "域名记录与 SEO 策略已经正式落地,下一步可以直接进入 prepare 和 release dry-run 门禁链。", + "handoff_next_step": "继续执行 prepare", + "handoff_next_command": "php scripts/seo_copy_batch_prepare.php '20260408_145449' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved'" + } + ], + "bundles_count": 2, + "register_ready_count": 0, + "register_existing_count": 0, + "register_result_count": 1, + "apply_ready_count": 0, + "apply_pending_count": 2, + "apply_result_count": 1, + "import_result_count": 0, + "publish_result_count": 0, + "bundle_run_count": 1, + "handoff_ready_to_register_count": 0, + "handoff_ready_to_apply_count": 0, + "handoff_ready_for_prepare_count": 1, + "handoff_ready_to_import_count": 0, + "handoff_ready_to_release_dry_run_count": 0, + "handoff_ready_to_publish_count": 0, + "handoff_attention_count": 1, + "latest_bundle": { + "host": "*.expand-supply.example.com", + "detail_slug": "expand-supply-example-com", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com", + "summary_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/bootstrap-summary.json", + "runbook_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/README.md", + "site_register_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-register.sample.json", + "site_register_preview_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-register.preview.json", + "site_register_result_path": "", + "site_bootstrap_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-bootstrap.sample.json", + "site_apply_preview_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-apply.preview.json", + "site_apply_result_path": "", + "import_result_path": "", + "publish_result_path": "", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy_jobs/approved/expand-supply-example-com-core-batch1.manifest.json", + "manifest_name": "expand-supply-example-com-core-batch1", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy_jobs/approved", + "base_url": "https://*.expand-supply.example.com", + "items_count": 9, + "strategy_profile": "expand", + "structured_policy": "compact", + "reference_mode": "id_only", + "forge_exposure_profile": "expanded", + "canonical_mode": "relaxed", + "play_index_mode": "index_follow", + "robots_policy": "index_follow", + "register_status": "template_not_found", + "register_create_fields": 0, + "template_id": 1, + "template_code": "", + "register_found": false, + "register_result_status": "", + "register_result_at": "", + "apply_status": "domain_not_found", + "apply_changed_fields": 0, + "apply_found": false, + "apply_result_status": "", + "apply_result_at": "", + "bundle_run_status": "", + "bundle_run_name": "", + "bundle_run_detail_slug": "", + "bundle_run_json": "", + "bundle_run_dry_run": false, + "bundle_run_executed_at": "", + "prepare_result_status": "", + "prepare_result_at": "", + "prepare_out_dir": "", + "prepare_summary_path": "", + "import_result_status": "", + "import_result_at": "", + "import_source_dir": "", + "import_imported_count": 0, + "import_skipped_count": 0, + "publish_result_status": "", + "publish_result_at": "", + "publish_result_run_dir": "", + "publish_result_run_summary_path": "", + "publish_result_target_root": "", + "publish_result_published_count": 0, + "release_dry_run_status": "", + "release_dry_run_at": "", + "release_dry_run_run_dir": "", + "release_dry_run_summary_path": "", + "preview_status": "domain_not_found", + "preview_changed_fields": 0, + "found": false, + "generated_at": "2026-04-08T15:13:14+08:00", + "pipeline_import_requested": false, + "pipeline_import_armed": false, + "pipeline_import_enabled": false, + "pipeline_import_mode": "off", + "pipeline_import_source_kind": "", + "pipeline_import_source_path": "", + "pipeline_import_summary": "默认关闭,需显式放行后才会自动导入 AI 结果。", + "next_commands": { + "pipeline_dry_run": "php scripts/domain_bootstrap_pipeline_run.php --host='*.expand-supply.example.com' --step-limit=6 --dry-run=1 --allow-prepare=1 --format=text", + "pipeline": "php scripts/domain_bootstrap_pipeline_run.php --host='*.expand-supply.example.com' --step-limit=6 --dry-run=0 --allow-prepare=1 --allow-release-dry-run=1 --format=text", + "pipeline_import": "php scripts/domain_bootstrap_pipeline_run.php --host='*.expand-supply.example.com' --step-limit=3 --dry-run=0 --allow-import=1 --ai-result-dir= --allow-release-dry-run=1 --format=text", + "pipeline_import_root": "php scripts/domain_bootstrap_pipeline_run.php --host='*.expand-supply.example.com' --step-limit=3 --dry-run=0 --allow-import=1 --ai-result-root= --allow-release-dry-run=1 --format=text", + "oncall_dry_run": "php scripts/domain_bootstrap_oncall_run.php --host='*.expand-supply.example.com' --dry-run=1 --format=text", + "oncall": "php scripts/domain_bootstrap_oncall_run.php --host='*.expand-supply.example.com' --dry-run=0 --format=text", + "run_dry_run": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com' --dry-run=1 --format=text", + "run": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com' --dry-run=0 --format=text", + "register_dry_run": "php scripts/domain_bootstrap_register.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-register.sample.json' --dry-run=1 --format=text", + "register": "php scripts/domain_bootstrap_register.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-register.sample.json' --format=text", + "apply_dry_run": "php scripts/domain_seo_bootstrap_apply.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-bootstrap.sample.json' --dry-run=1 --format=text", + "apply": "php scripts/domain_seo_bootstrap_apply.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-bootstrap.sample.json' --format=text", + "prepare": "php scripts/seo_copy_batch_prepare.php 'expand-supply-example-com-core-batch1' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy_jobs/approved'", + "import": "php scripts/domain_bootstrap_import_ai.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com' --format=text", + "import_low_level": "php scripts/seo_copy_batch_import.php --target-root='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy'", + "dry_run": "php scripts/seo_copy_release_run.php 'expand-supply-example-com-core-batch1' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy_jobs/approved' --source-root='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy' --base-url='https://*.expand-supply.example.com' --dry-run=1 --format=text", + "publish": "php scripts/domain_bootstrap_publish.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com' --format=text", + "publish_low_level": "php scripts/seo_copy_release_run.php 'expand-supply-example-com-core-batch1' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy_jobs/approved' --source-root='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy' --base-url='https://*.expand-supply.example.com' --format=text" + }, + "handoff_stage_code": "needs_attention", + "handoff_stage_label": "需先入库", + "handoff_summary": "apply 仍返回 domain_not_found,说明当前目标域名还未正式落库,需要先完成 register。", + "handoff_next_step": "先执行高层 run 或 register", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com' --dry-run=0 --format=text" + }, + "pipeline_import_policy": { + "requested": false, + "armed": false, + "enabled": false, + "mode": "off", + "source_kind": "", + "source_path": "", + "summary": "默认关闭,需显式放行后才会自动导入 AI 结果。" + } +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_oncall/index.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_oncall/index.html new file mode 100644 index 0000000..ed2f433 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_oncall/index.html @@ -0,0 +1,42 @@ + + + + +Bootstrap Oncall Desk + + + +

返回启动包总览 | 查看值班待办 | 查看启动包接手队列 | 查看已完成启动包 | 查看启动包运行记录 | 返回统一门户首页 | 查看新域名上线 SOP

+

Bootstrap Oncall Desk

+

open_count: 6

+

priority: P0 1 / P1 2 / P2 3 / P3 0

+

当前优先待办: *.expand-supply.example.com / P0 / 先处理异常 / php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com' --dry-run=0 --format=text

+

Import Policy: off / requested=no / armed=no / effective=no / / 默认关闭,需显式放行后才会自动导入 AI 结果。

+

Global Commands

+ + + + + + + + + + + +
stepcommand
next_dry_runphp scripts/domain_bootstrap_oncall_run.php --dry-run=1 --format=text
next_runphp scripts/domain_bootstrap_oncall_run.php --dry-run=0 --format=text
dispatch_dry_runphp scripts/domain_bootstrap_oncall_run.php --limit=2 --dry-run=1 --format=text
dispatch_runphp scripts/domain_bootstrap_oncall_run.php --limit=2 --dry-run=0 --format=text
pipeline_dry_runphp scripts/domain_bootstrap_pipeline_run.php --step-limit=6 --dry-run=1 --allow-prepare=1 --format=text
pipeline_runphp scripts/domain_bootstrap_pipeline_run.php --step-limit=6 --dry-run=0 --allow-prepare=1 --allow-release-dry-run=1 --format=text
pipeline_importphp scripts/domain_bootstrap_pipeline_run.php --step-limit=3 --dry-run=0 --allow-import=1 --ai-result-dir=<ai-result-dir> --allow-release-dry-run=1 --format=text
+

Owner Focus

+
人工复核/排障

host: *.expand-supply.example.com

priority: P0

todo: 先处理异常

apply 仍返回 domain_not_found,说明当前目标域名还未正式落库,需要先完成 register。

php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com' --dry-run=0 --format=text

bundle / run

站点入库

host: video-test.com

priority: P1

todo: 先正式入库

高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。

php scripts/domain_bootstrap_run.php 'SEONexus/code/storage/domain_bootstrap_bundles/video-test-next-stage-a1' --dry-run=0 --format=text

run

站点策略

host: chuanjiafeng.net

priority: P1

todo: 先正式应用

高层 dry-run 已确认域名可继续 apply,下一步应正式执行 bootstrap run。

php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-next-stage-a1' --dry-run=0 --format=text

run

补料发布

host: traffic-supply.example.com

priority: P2

todo: 先进入 Prepare

域名记录与 SEO 策略已经正式落地,下一步可以直接进入 prepare 和 release dry-run 门禁链。

php scripts/seo_copy_batch_prepare.php '20260408_145449' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved'

bundle / run

+

Top Todo

+ + + + + + + + + +
hostpriorityownerhandofftodonext_commandupdated_at
*.expand-supply.example.comP0人工复核/排障需先入库先处理异常php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com' --dry-run=0 --format=text2026-04-08T15:13:14+08:00
video-test.comP1站点入库待正式入库先正式入库php scripts/domain_bootstrap_run.php 'SEONexus/code/storage/domain_bootstrap_bundles/video-test-next-stage-a1' --dry-run=0 --format=text2026-04-08T15:13:09+08:00
chuanjiafeng.netP1站点策略待正式应用先正式应用php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-next-stage-a1' --dry-run=0 --format=text2026-04-08T13:37:34+08:00
traffic-supply.example.comP2补料发布可进入 Prepare先进入 Preparephp scripts/seo_copy_batch_prepare.php '20260408_145449' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved'2026-04-08T15:13:14+08:00
demo.example.comP2补料发布可进入 Prepare先进入 Preparephp scripts/seo_copy_batch_prepare.php 'demo-core-batch1' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved'2026-04-08T14:39:15+08:00
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_oncall/index.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_oncall/index.json new file mode 100644 index 0000000..031aa93 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_oncall/index.json @@ -0,0 +1,176 @@ +{ + "generated_at": "2026-04-08T15:13:14+08:00", + "open_count": 6, + "pipeline_import_policy": { + "requested": false, + "armed": false, + "enabled": false, + "mode": "off", + "source_kind": "", + "source_path": "", + "summary": "默认关闭,需显式放行后才会自动导入 AI 结果。" + }, + "priority_p0_count": 1, + "priority_p1_count": 2, + "priority_p2_count": 3, + "priority_p3_count": 0, + "latest_entry": { + "host": "*.expand-supply.example.com", + "source": "bundle", + "source_label": "最新 bundle", + "handoff_stage_code": "needs_attention", + "handoff_stage_label": "需先入库", + "summary": "apply 仍返回 domain_not_found,说明当前目标域名还未正式落库,需要先完成 register。", + "next_step": "先执行高层 run 或 register", + "next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com' --dry-run=0 --format=text", + "updated_at": "2026-04-08T15:13:14+08:00", + "bundle_detail_slug": "expand-supply-example-com", + "run_detail_slug": "204648_expand-supply-example-com", + "priority_score": 100, + "priority_label": "P0", + "owner_label": "人工复核/排障", + "todo_title": "先处理异常" + }, + "top_entries": [ + { + "host": "*.expand-supply.example.com", + "source": "bundle", + "source_label": "最新 bundle", + "handoff_stage_code": "needs_attention", + "handoff_stage_label": "需先入库", + "summary": "apply 仍返回 domain_not_found,说明当前目标域名还未正式落库,需要先完成 register。", + "next_step": "先执行高层 run 或 register", + "next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com' --dry-run=0 --format=text", + "updated_at": "2026-04-08T15:13:14+08:00", + "bundle_detail_slug": "expand-supply-example-com", + "run_detail_slug": "204648_expand-supply-example-com", + "priority_score": 100, + "priority_label": "P0", + "owner_label": "人工复核/排障", + "todo_title": "先处理异常" + }, + { + "host": "video-test.com", + "source": "run", + "source_label": "最新 run", + "handoff_stage_code": "ready_to_register", + "handoff_stage_label": "待正式入库", + "summary": "高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。", + "next_step": "正式执行高层 run", + "next_command": "php scripts/domain_bootstrap_run.php 'SEONexus/code/storage/domain_bootstrap_bundles/video-test-next-stage-a1' --dry-run=0 --format=text", + "updated_at": "2026-04-08T15:13:09+08:00", + "bundle_detail_slug": "", + "run_detail_slug": "151309_video-test-com", + "priority_score": 90, + "priority_label": "P1", + "owner_label": "站点入库", + "todo_title": "先正式入库" + }, + { + "host": "chuanjiafeng.net", + "source": "run", + "source_label": "最新 run", + "handoff_stage_code": "ready_to_apply", + "handoff_stage_label": "待正式应用", + "summary": "高层 dry-run 已确认域名可继续 apply,下一步应正式执行 bootstrap run。", + "next_step": "正式执行高层 run", + "next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-next-stage-a1' --dry-run=0 --format=text", + "updated_at": "2026-04-08T13:37:34+08:00", + "bundle_detail_slug": "", + "run_detail_slug": "133734_chuanjiafeng-net", + "priority_score": 80, + "priority_label": "P1", + "owner_label": "站点策略", + "todo_title": "先正式应用" + }, + { + "host": "traffic-supply.example.com", + "source": "bundle", + "source_label": "最新 bundle", + "handoff_stage_code": "ready_for_prepare", + "handoff_stage_label": "可进入 Prepare", + "summary": "域名记录与 SEO 策略已经正式落地,下一步可以直接进入 prepare 和 release dry-run 门禁链。", + "next_step": "继续执行 prepare", + "next_command": "php scripts/seo_copy_batch_prepare.php '20260408_145449' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved'", + "updated_at": "2026-04-08T15:13:14+08:00", + "bundle_detail_slug": "traffic-supply-example-com", + "run_detail_slug": "144957_traffic-supply-example-com", + "priority_score": 70, + "priority_label": "P2", + "owner_label": "补料发布", + "todo_title": "先进入 Prepare" + }, + { + "host": "demo.example.com", + "source": "run", + "source_label": "最新 run", + "handoff_stage_code": "ready_for_prepare", + "handoff_stage_label": "可进入 Prepare", + "summary": "本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。", + "next_step": "继续执行 prepare", + "next_command": "php scripts/seo_copy_batch_prepare.php 'demo-core-batch1' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved'", + "updated_at": "2026-04-08T14:39:15+08:00", + "bundle_detail_slug": "", + "run_detail_slug": "143915_demo-example-com", + "priority_score": 70, + "priority_label": "P2", + "owner_label": "补料发布", + "todo_title": "先进入 Prepare" + } + ], + "owner_focus": [ + { + "owner_label": "人工复核/排障", + "host": "*.expand-supply.example.com", + "priority_label": "P0", + "todo_title": "先处理异常", + "summary": "apply 仍返回 domain_not_found,说明当前目标域名还未正式落库,需要先完成 register。", + "next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com' --dry-run=0 --format=text", + "bundle_detail_slug": "expand-supply-example-com", + "run_detail_slug": "204648_expand-supply-example-com", + "updated_at": "2026-04-08T15:13:14+08:00" + }, + { + "owner_label": "站点入库", + "host": "video-test.com", + "priority_label": "P1", + "todo_title": "先正式入库", + "summary": "高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。", + "next_command": "php scripts/domain_bootstrap_run.php 'SEONexus/code/storage/domain_bootstrap_bundles/video-test-next-stage-a1' --dry-run=0 --format=text", + "bundle_detail_slug": "", + "run_detail_slug": "151309_video-test-com", + "updated_at": "2026-04-08T15:13:09+08:00" + }, + { + "owner_label": "站点策略", + "host": "chuanjiafeng.net", + "priority_label": "P1", + "todo_title": "先正式应用", + "summary": "高层 dry-run 已确认域名可继续 apply,下一步应正式执行 bootstrap run。", + "next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-next-stage-a1' --dry-run=0 --format=text", + "bundle_detail_slug": "", + "run_detail_slug": "133734_chuanjiafeng-net", + "updated_at": "2026-04-08T13:37:34+08:00" + }, + { + "owner_label": "补料发布", + "host": "traffic-supply.example.com", + "priority_label": "P2", + "todo_title": "先进入 Prepare", + "summary": "域名记录与 SEO 策略已经正式落地,下一步可以直接进入 prepare 和 release dry-run 门禁链。", + "next_command": "php scripts/seo_copy_batch_prepare.php '20260408_145449' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved'", + "bundle_detail_slug": "traffic-supply-example-com", + "run_detail_slug": "144957_traffic-supply-example-com", + "updated_at": "2026-04-08T15:13:14+08:00" + } + ], + "recommended_commands": { + "next_dry_run": "php scripts/domain_bootstrap_oncall_run.php --dry-run=1 --format=text", + "next_run": "php scripts/domain_bootstrap_oncall_run.php --dry-run=0 --format=text", + "dispatch_dry_run": "php scripts/domain_bootstrap_oncall_run.php --limit=2 --dry-run=1 --format=text", + "dispatch_run": "php scripts/domain_bootstrap_oncall_run.php --limit=2 --dry-run=0 --format=text", + "pipeline_dry_run": "php scripts/domain_bootstrap_pipeline_run.php --step-limit=6 --dry-run=1 --allow-prepare=1 --format=text", + "pipeline_run": "php scripts/domain_bootstrap_pipeline_run.php --step-limit=6 --dry-run=0 --allow-prepare=1 --allow-release-dry-run=1 --format=text", + "pipeline_import": "php scripts/domain_bootstrap_pipeline_run.php --step-limit=3 --dry-run=0 --allow-import=1 --ai-result-dir= --allow-release-dry-run=1 --format=text" + } +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/011542_demo-example-com.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/011542_demo-example-com.html new file mode 100644 index 0000000..0b387d2 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/011542_demo-example-com.html @@ -0,0 +1,19 @@ + + + + +Bootstrap Run Detail + + + +

返回启动包运行记录 | 查看值班入口 | 查看启动包接手队列 | 查看值班待办 | 返回统一门户首页 | 查看新域名上线 SOP

+

返回对应 bundle 详情

+

011542_demo-example-com

+

状态摘要

+
run_name011542_demo-example-com
hostdemo.example.com
overall_statusdry_run_completed
register_statusready_to_create
apply_statusdomain_not_found
dry_runyes
run_registeryes
run_applyyes
errors_count0
executed_at2026-04-06T01:15:42+08:00
handoff_stage待正式入库
+

状态说明

+
summarystatus=dry_run_completed, register=ready_to_create, apply=domain_not_found
handoff_summary高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。
handoff_next_step正式执行高层 run
handoff_next_commandphp scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal' --dry-run=0 --format=text
register_message目标域名尚未创建,当前样板已具备建站记录所需最小字段。
apply_message请先在站点表中创建目标域名,再应用 bootstrap 策略样板。
errors
+

文件路径

+
run_json/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260406/011542_demo-example-com.json
bundle_root/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/011542_demo-example-com.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/011542_demo-example-com.json new file mode 100644 index 0000000..dca42db --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/011542_demo-example-com.json @@ -0,0 +1,31 @@ +{ + "run_name": "011542_demo-example-com", + "detail_slug": "011542_demo-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260406/011542_demo-example-com.json", + "host": "demo.example.com", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal", + "bundle_detail_slug": "demo-example-com", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved/demo-core-batch1.manifest.json", + "manifest_name": "demo-core-batch1", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy", + "base_url": "https://demo.example.com", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "ready_to_create", + "register_message": "目标域名尚未创建,当前样板已具备建站记录所需最小字段。", + "apply_status": "domain_not_found", + "apply_message": "请先在站点表中创建目标域名,再应用 bootstrap 策略样板。", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-06T01:15:42+08:00", + "updated_at": "2026-04-06T01:15:42+08:00", + "summary": "status=dry_run_completed, register=ready_to_create, apply=domain_not_found", + "handoff_stage_code": "ready_to_register", + "handoff_stage_label": "待正式入库", + "handoff_summary": "高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal' --dry-run=0 --format=text" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/012639_chuanjiafeng-net.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/012639_chuanjiafeng-net.html new file mode 100644 index 0000000..9423afc --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/012639_chuanjiafeng-net.html @@ -0,0 +1,19 @@ + + + + +Bootstrap Run Detail + + + +

返回启动包运行记录 | 查看值班入口 | 查看启动包接手队列 | 查看值班待办 | 返回统一门户首页 | 查看新域名上线 SOP

+

返回对应 bundle 详情

+

012639_chuanjiafeng-net

+

状态摘要

+
run_name012639_chuanjiafeng-net
hostchuanjiafeng.net
overall_statusdry_run_completed
register_statusdomain_exists
apply_statusdry_run
dry_runyes
run_registeryes
run_applyyes
errors_count0
executed_at2026-04-05T01:26:39+08:00
handoff_stage待正式应用
+

状态说明

+
summarystatus=dry_run_completed, register=domain_exists, apply=dry_run
handoff_summary高层 dry-run 已确认域名可继续 apply,下一步应正式执行 bootstrap run。
handoff_next_step正式执行高层 run
handoff_next_commandphp scripts/domain_bootstrap_run.php '/tmp/domain-bootstrap-bundles/chuanjiafeng-compact' --dry-run=0 --format=text
register_message目标域名已存在,可继续执行 SEO 策略 apply。
apply_message
errors
+

文件路径

+
run_json/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/012639_chuanjiafeng-net.json
bundle_root/tmp/domain-bootstrap-bundles/chuanjiafeng-compact
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/012639_chuanjiafeng-net.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/012639_chuanjiafeng-net.json new file mode 100644 index 0000000..a22e63e --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/012639_chuanjiafeng-net.json @@ -0,0 +1,31 @@ +{ + "run_name": "012639_chuanjiafeng-net", + "detail_slug": "012639_chuanjiafeng-net", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/012639_chuanjiafeng-net.json", + "host": "chuanjiafeng.net", + "bundle_root": "/tmp/domain-bootstrap-bundles/chuanjiafeng-compact", + "bundle_detail_slug": "chuanjiafeng-net", + "manifest_path": "/tmp/domain-bootstrap-bundles/chuanjiafeng-compact/data/seo_copy_jobs/approved/chuanjiafeng-core-batch1.manifest.json", + "manifest_name": "chuanjiafeng-core-batch1", + "approved_dir": "/tmp/domain-bootstrap-bundles/chuanjiafeng-compact/data/seo_copy_jobs/approved", + "target_root": "/tmp/domain-bootstrap-bundles/chuanjiafeng-compact/data/seo_copy", + "base_url": "https://chuanjiafeng.net", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "domain_exists", + "register_message": "目标域名已存在,可继续执行 SEO 策略 apply。", + "apply_status": "dry_run", + "apply_message": "", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-05T01:26:39+08:00", + "updated_at": "2026-04-05T01:26:39+08:00", + "summary": "status=dry_run_completed, register=domain_exists, apply=dry_run", + "handoff_stage_code": "ready_to_apply", + "handoff_stage_label": "待正式应用", + "handoff_summary": "高层 dry-run 已确认域名可继续 apply,下一步应正式执行 bootstrap run。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/tmp/domain-bootstrap-bundles/chuanjiafeng-compact' --dry-run=0 --format=text" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/012639_demo-example-com.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/012639_demo-example-com.html new file mode 100644 index 0000000..61ec26f --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/012639_demo-example-com.html @@ -0,0 +1,19 @@ + + + + +Bootstrap Run Detail + + + +

返回启动包运行记录 | 查看值班入口 | 查看启动包接手队列 | 查看值班待办 | 返回统一门户首页 | 查看新域名上线 SOP

+

返回对应 bundle 详情

+

012639_demo-example-com

+

状态摘要

+
run_name012639_demo-example-com
hostdemo.example.com
overall_statusdry_run_completed
register_statusready_to_create
apply_statusdomain_not_found
dry_runyes
run_registeryes
run_applyyes
errors_count0
executed_at2026-04-05T01:26:39+08:00
handoff_stage待正式入库
+

状态说明

+
summarystatus=dry_run_completed, register=ready_to_create, apply=domain_not_found
handoff_summary高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。
handoff_next_step正式执行高层 run
handoff_next_commandphp scripts/domain_bootstrap_run.php '/tmp/domain-bootstrap-bundles/demo-minimal' --dry-run=0 --format=text
register_message目标域名尚未创建,当前样板已具备建站记录所需最小字段。
apply_message请先在站点表中创建目标域名,再应用 bootstrap 策略样板。
errors
+

文件路径

+
run_json/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/012639_demo-example-com.json
bundle_root/tmp/domain-bootstrap-bundles/demo-minimal
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/012639_demo-example-com.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/012639_demo-example-com.json new file mode 100644 index 0000000..0fb5c35 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/012639_demo-example-com.json @@ -0,0 +1,31 @@ +{ + "run_name": "012639_demo-example-com", + "detail_slug": "012639_demo-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/012639_demo-example-com.json", + "host": "demo.example.com", + "bundle_root": "/tmp/domain-bootstrap-bundles/demo-minimal", + "bundle_detail_slug": "demo-example-com", + "manifest_path": "/tmp/domain-bootstrap-bundles/demo-minimal/data/seo_copy_jobs/approved/demo-core-batch1.manifest.json", + "manifest_name": "demo-core-batch1", + "approved_dir": "/tmp/domain-bootstrap-bundles/demo-minimal/data/seo_copy_jobs/approved", + "target_root": "/tmp/domain-bootstrap-bundles/demo-minimal/data/seo_copy", + "base_url": "https://demo.example.com", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "ready_to_create", + "register_message": "目标域名尚未创建,当前样板已具备建站记录所需最小字段。", + "apply_status": "domain_not_found", + "apply_message": "请先在站点表中创建目标域名,再应用 bootstrap 策略样板。", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-05T01:26:39+08:00", + "updated_at": "2026-04-05T01:26:39+08:00", + "summary": "status=dry_run_completed, register=ready_to_create, apply=domain_not_found", + "handoff_stage_code": "ready_to_register", + "handoff_stage_label": "待正式入库", + "handoff_summary": "高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/tmp/domain-bootstrap-bundles/demo-minimal' --dry-run=0 --format=text" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/013357_chuanjiafeng-net.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/013357_chuanjiafeng-net.html new file mode 100644 index 0000000..6ad663d --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/013357_chuanjiafeng-net.html @@ -0,0 +1,19 @@ + + + + +Bootstrap Run Detail + + + +

返回启动包运行记录 | 查看值班入口 | 查看启动包接手队列 | 查看值班待办 | 返回统一门户首页 | 查看新域名上线 SOP

+

返回对应 bundle 详情

+

013357_chuanjiafeng-net

+

状态摘要

+
run_name013357_chuanjiafeng-net
hostchuanjiafeng.net
overall_statusdry_run_completed
register_statusdomain_exists
apply_statusdry_run
dry_runyes
run_registeryes
run_applyyes
errors_count0
executed_at2026-04-05T01:33:57+08:00
handoff_stage待正式应用
+

状态说明

+
summarystatus=dry_run_completed, register=domain_exists, apply=dry_run
handoff_summary高层 dry-run 已确认域名可继续 apply,下一步应正式执行 bootstrap run。
handoff_next_step正式执行高层 run
handoff_next_commandphp scripts/domain_bootstrap_run.php '/tmp/domain-bootstrap-bundles/chuanjiafeng-compact' --dry-run=0 --format=text
register_message目标域名已存在,可继续执行 SEO 策略 apply。
apply_message
errors
+

文件路径

+
run_json/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/013357_chuanjiafeng-net.json
bundle_root/tmp/domain-bootstrap-bundles/chuanjiafeng-compact
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/013357_chuanjiafeng-net.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/013357_chuanjiafeng-net.json new file mode 100644 index 0000000..9ae0394 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/013357_chuanjiafeng-net.json @@ -0,0 +1,31 @@ +{ + "run_name": "013357_chuanjiafeng-net", + "detail_slug": "013357_chuanjiafeng-net", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/013357_chuanjiafeng-net.json", + "host": "chuanjiafeng.net", + "bundle_root": "/tmp/domain-bootstrap-bundles/chuanjiafeng-compact", + "bundle_detail_slug": "chuanjiafeng-net", + "manifest_path": "/tmp/domain-bootstrap-bundles/chuanjiafeng-compact/data/seo_copy_jobs/approved/chuanjiafeng-core-batch1.manifest.json", + "manifest_name": "chuanjiafeng-core-batch1", + "approved_dir": "/tmp/domain-bootstrap-bundles/chuanjiafeng-compact/data/seo_copy_jobs/approved", + "target_root": "/tmp/domain-bootstrap-bundles/chuanjiafeng-compact/data/seo_copy", + "base_url": "https://chuanjiafeng.net", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "domain_exists", + "register_message": "目标域名已存在,可继续执行 SEO 策略 apply。", + "apply_status": "dry_run", + "apply_message": "", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-05T01:33:57+08:00", + "updated_at": "2026-04-05T01:33:57+08:00", + "summary": "status=dry_run_completed, register=domain_exists, apply=dry_run", + "handoff_stage_code": "ready_to_apply", + "handoff_stage_label": "待正式应用", + "handoff_summary": "高层 dry-run 已确认域名可继续 apply,下一步应正式执行 bootstrap run。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/tmp/domain-bootstrap-bundles/chuanjiafeng-compact' --dry-run=0 --format=text" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/013357_demo-example-com.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/013357_demo-example-com.html new file mode 100644 index 0000000..9e47a89 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/013357_demo-example-com.html @@ -0,0 +1,19 @@ + + + + +Bootstrap Run Detail + + + +

返回启动包运行记录 | 查看值班入口 | 查看启动包接手队列 | 查看值班待办 | 返回统一门户首页 | 查看新域名上线 SOP

+

返回对应 bundle 详情

+

013357_demo-example-com

+

状态摘要

+
run_name013357_demo-example-com
hostdemo.example.com
overall_statusdry_run_completed
register_statusready_to_create
apply_statusdomain_not_found
dry_runyes
run_registeryes
run_applyyes
errors_count0
executed_at2026-04-05T01:33:57+08:00
handoff_stage待正式入库
+

状态说明

+
summarystatus=dry_run_completed, register=ready_to_create, apply=domain_not_found
handoff_summary高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。
handoff_next_step正式执行高层 run
handoff_next_commandphp scripts/domain_bootstrap_run.php '/tmp/domain-bootstrap-bundles/demo-minimal' --dry-run=0 --format=text
register_message目标域名尚未创建,当前样板已具备建站记录所需最小字段。
apply_message请先在站点表中创建目标域名,再应用 bootstrap 策略样板。
errors
+

文件路径

+
run_json/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/013357_demo-example-com.json
bundle_root/tmp/domain-bootstrap-bundles/demo-minimal
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/013357_demo-example-com.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/013357_demo-example-com.json new file mode 100644 index 0000000..d29acd2 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/013357_demo-example-com.json @@ -0,0 +1,31 @@ +{ + "run_name": "013357_demo-example-com", + "detail_slug": "013357_demo-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/013357_demo-example-com.json", + "host": "demo.example.com", + "bundle_root": "/tmp/domain-bootstrap-bundles/demo-minimal", + "bundle_detail_slug": "demo-example-com", + "manifest_path": "/tmp/domain-bootstrap-bundles/demo-minimal/data/seo_copy_jobs/approved/demo-core-batch1.manifest.json", + "manifest_name": "demo-core-batch1", + "approved_dir": "/tmp/domain-bootstrap-bundles/demo-minimal/data/seo_copy_jobs/approved", + "target_root": "/tmp/domain-bootstrap-bundles/demo-minimal/data/seo_copy", + "base_url": "https://demo.example.com", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "ready_to_create", + "register_message": "目标域名尚未创建,当前样板已具备建站记录所需最小字段。", + "apply_status": "domain_not_found", + "apply_message": "请先在站点表中创建目标域名,再应用 bootstrap 策略样板。", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-05T01:33:57+08:00", + "updated_at": "2026-04-05T01:33:57+08:00", + "summary": "status=dry_run_completed, register=ready_to_create, apply=domain_not_found", + "handoff_stage_code": "ready_to_register", + "handoff_stage_label": "待正式入库", + "handoff_summary": "高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/tmp/domain-bootstrap-bundles/demo-minimal' --dry-run=0 --format=text" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/013432_chuanjiafeng-net.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/013432_chuanjiafeng-net.html new file mode 100644 index 0000000..0a2bb21 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/013432_chuanjiafeng-net.html @@ -0,0 +1,19 @@ + + + + +Bootstrap Run Detail + + + +

返回启动包运行记录 | 查看值班入口 | 查看启动包接手队列 | 查看值班待办 | 返回统一门户首页 | 查看新域名上线 SOP

+

返回对应 bundle 详情

+

013432_chuanjiafeng-net

+

状态摘要

+
run_name013432_chuanjiafeng-net
hostchuanjiafeng.net
overall_statusdry_run_completed
register_statusdomain_exists
apply_statusdry_run
dry_runyes
run_registeryes
run_applyyes
errors_count0
executed_at2026-04-05T01:34:32+08:00
handoff_stage待正式应用
+

状态说明

+
summarystatus=dry_run_completed, register=domain_exists, apply=dry_run
handoff_summary高层 dry-run 已确认域名可继续 apply,下一步应正式执行 bootstrap run。
handoff_next_step正式执行高层 run
handoff_next_commandphp scripts/domain_bootstrap_run.php '/tmp/domain-bootstrap-bundles/chuanjiafeng-compact' --dry-run=0 --format=text
register_message目标域名已存在,可继续执行 SEO 策略 apply。
apply_message
errors
+

文件路径

+
run_json/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/013432_chuanjiafeng-net.json
bundle_root/tmp/domain-bootstrap-bundles/chuanjiafeng-compact
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/013432_chuanjiafeng-net.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/013432_chuanjiafeng-net.json new file mode 100644 index 0000000..cf61b9d --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/013432_chuanjiafeng-net.json @@ -0,0 +1,31 @@ +{ + "run_name": "013432_chuanjiafeng-net", + "detail_slug": "013432_chuanjiafeng-net", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/013432_chuanjiafeng-net.json", + "host": "chuanjiafeng.net", + "bundle_root": "/tmp/domain-bootstrap-bundles/chuanjiafeng-compact", + "bundle_detail_slug": "chuanjiafeng-net", + "manifest_path": "/tmp/domain-bootstrap-bundles/chuanjiafeng-compact/data/seo_copy_jobs/approved/chuanjiafeng-core-batch1.manifest.json", + "manifest_name": "chuanjiafeng-core-batch1", + "approved_dir": "/tmp/domain-bootstrap-bundles/chuanjiafeng-compact/data/seo_copy_jobs/approved", + "target_root": "/tmp/domain-bootstrap-bundles/chuanjiafeng-compact/data/seo_copy", + "base_url": "https://chuanjiafeng.net", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "domain_exists", + "register_message": "目标域名已存在,可继续执行 SEO 策略 apply。", + "apply_status": "dry_run", + "apply_message": "", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-05T01:34:32+08:00", + "updated_at": "2026-04-05T01:34:32+08:00", + "summary": "status=dry_run_completed, register=domain_exists, apply=dry_run", + "handoff_stage_code": "ready_to_apply", + "handoff_stage_label": "待正式应用", + "handoff_summary": "高层 dry-run 已确认域名可继续 apply,下一步应正式执行 bootstrap run。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/tmp/domain-bootstrap-bundles/chuanjiafeng-compact' --dry-run=0 --format=text" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/013432_demo-example-com.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/013432_demo-example-com.html new file mode 100644 index 0000000..01fb9d0 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/013432_demo-example-com.html @@ -0,0 +1,19 @@ + + + + +Bootstrap Run Detail + + + +

返回启动包运行记录 | 查看值班入口 | 查看启动包接手队列 | 查看值班待办 | 返回统一门户首页 | 查看新域名上线 SOP

+

返回对应 bundle 详情

+

013432_demo-example-com

+

状态摘要

+
run_name013432_demo-example-com
hostdemo.example.com
overall_statusdry_run_completed
register_statusready_to_create
apply_statusdomain_not_found
dry_runyes
run_registeryes
run_applyyes
errors_count0
executed_at2026-04-05T01:34:32+08:00
handoff_stage待正式入库
+

状态说明

+
summarystatus=dry_run_completed, register=ready_to_create, apply=domain_not_found
handoff_summary高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。
handoff_next_step正式执行高层 run
handoff_next_commandphp scripts/domain_bootstrap_run.php '/tmp/domain-bootstrap-bundles/demo-minimal' --dry-run=0 --format=text
register_message目标域名尚未创建,当前样板已具备建站记录所需最小字段。
apply_message请先在站点表中创建目标域名,再应用 bootstrap 策略样板。
errors
+

文件路径

+
run_json/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/013432_demo-example-com.json
bundle_root/tmp/domain-bootstrap-bundles/demo-minimal
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/013432_demo-example-com.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/013432_demo-example-com.json new file mode 100644 index 0000000..79175cb --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/013432_demo-example-com.json @@ -0,0 +1,31 @@ +{ + "run_name": "013432_demo-example-com", + "detail_slug": "013432_demo-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/013432_demo-example-com.json", + "host": "demo.example.com", + "bundle_root": "/tmp/domain-bootstrap-bundles/demo-minimal", + "bundle_detail_slug": "demo-example-com", + "manifest_path": "/tmp/domain-bootstrap-bundles/demo-minimal/data/seo_copy_jobs/approved/demo-core-batch1.manifest.json", + "manifest_name": "demo-core-batch1", + "approved_dir": "/tmp/domain-bootstrap-bundles/demo-minimal/data/seo_copy_jobs/approved", + "target_root": "/tmp/domain-bootstrap-bundles/demo-minimal/data/seo_copy", + "base_url": "https://demo.example.com", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "ready_to_create", + "register_message": "目标域名尚未创建,当前样板已具备建站记录所需最小字段。", + "apply_status": "domain_not_found", + "apply_message": "请先在站点表中创建目标域名,再应用 bootstrap 策略样板。", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-05T01:34:32+08:00", + "updated_at": "2026-04-05T01:34:32+08:00", + "summary": "status=dry_run_completed, register=ready_to_create, apply=domain_not_found", + "handoff_stage_code": "ready_to_register", + "handoff_stage_label": "待正式入库", + "handoff_summary": "高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/tmp/domain-bootstrap-bundles/demo-minimal' --dry-run=0 --format=text" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/014039_chuanjiafeng-net.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/014039_chuanjiafeng-net.html new file mode 100644 index 0000000..1a1e0a6 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/014039_chuanjiafeng-net.html @@ -0,0 +1,19 @@ + + + + +Bootstrap Run Detail + + + +

返回启动包运行记录 | 查看值班入口 | 查看启动包接手队列 | 查看值班待办 | 返回统一门户首页 | 查看新域名上线 SOP

+

返回对应 bundle 详情

+

014039_chuanjiafeng-net

+

状态摘要

+
run_name014039_chuanjiafeng-net
hostchuanjiafeng.net
overall_statusdry_run_completed
register_statusdomain_exists
apply_statusdry_run
dry_runyes
run_registeryes
run_applyyes
errors_count0
executed_at2026-04-05T01:40:39+08:00
handoff_stage待正式应用
+

状态说明

+
summarystatus=dry_run_completed, register=domain_exists, apply=dry_run
handoff_summary高层 dry-run 已确认域名可继续 apply,下一步应正式执行 bootstrap run。
handoff_next_step正式执行高层 run
handoff_next_commandphp scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact' --dry-run=0 --format=text
register_message目标域名已存在,可继续执行 SEO 策略 apply。
apply_message
errors
+

文件路径

+
run_json/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/014039_chuanjiafeng-net.json
bundle_root/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/014039_chuanjiafeng-net.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/014039_chuanjiafeng-net.json new file mode 100644 index 0000000..b73c271 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/014039_chuanjiafeng-net.json @@ -0,0 +1,31 @@ +{ + "run_name": "014039_chuanjiafeng-net", + "detail_slug": "014039_chuanjiafeng-net", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/014039_chuanjiafeng-net.json", + "host": "chuanjiafeng.net", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact", + "bundle_detail_slug": "chuanjiafeng-net", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact/data/seo_copy_jobs/approved/20260405_153500.manifest.json", + "manifest_name": "20260405_153500", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact/data/seo_copy", + "base_url": "https://chuanjiafeng.net", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "domain_exists", + "register_message": "目标域名已存在,可继续执行 SEO 策略 apply。", + "apply_status": "dry_run", + "apply_message": "", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-05T01:40:39+08:00", + "updated_at": "2026-04-05T01:40:39+08:00", + "summary": "status=dry_run_completed, register=domain_exists, apply=dry_run", + "handoff_stage_code": "ready_to_apply", + "handoff_stage_label": "待正式应用", + "handoff_summary": "高层 dry-run 已确认域名可继续 apply,下一步应正式执行 bootstrap run。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact' --dry-run=0 --format=text" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/014039_demo-example-com.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/014039_demo-example-com.html new file mode 100644 index 0000000..e25f7dd --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/014039_demo-example-com.html @@ -0,0 +1,19 @@ + + + + +Bootstrap Run Detail + + + +

返回启动包运行记录 | 查看值班入口 | 查看启动包接手队列 | 查看值班待办 | 返回统一门户首页 | 查看新域名上线 SOP

+

返回对应 bundle 详情

+

014039_demo-example-com

+

状态摘要

+
run_name014039_demo-example-com
hostdemo.example.com
overall_statusdry_run_completed
register_statusready_to_create
apply_statusdomain_not_found
dry_runyes
run_registeryes
run_applyyes
errors_count0
executed_at2026-04-05T01:40:39+08:00
handoff_stage待正式入库
+

状态说明

+
summarystatus=dry_run_completed, register=ready_to_create, apply=domain_not_found
handoff_summary高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。
handoff_next_step正式执行高层 run
handoff_next_commandphp scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal' --dry-run=0 --format=text
register_message目标域名尚未创建,当前样板已具备建站记录所需最小字段。
apply_message请先在站点表中创建目标域名,再应用 bootstrap 策略样板。
errors
+

文件路径

+
run_json/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/014039_demo-example-com.json
bundle_root/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/014039_demo-example-com.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/014039_demo-example-com.json new file mode 100644 index 0000000..c5e159a --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/014039_demo-example-com.json @@ -0,0 +1,31 @@ +{ + "run_name": "014039_demo-example-com", + "detail_slug": "014039_demo-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/014039_demo-example-com.json", + "host": "demo.example.com", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal", + "bundle_detail_slug": "demo-example-com", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved/demo-core-batch1.manifest.json", + "manifest_name": "demo-core-batch1", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy", + "base_url": "https://demo.example.com", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "ready_to_create", + "register_message": "目标域名尚未创建,当前样板已具备建站记录所需最小字段。", + "apply_status": "domain_not_found", + "apply_message": "请先在站点表中创建目标域名,再应用 bootstrap 策略样板。", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-05T01:40:39+08:00", + "updated_at": "2026-04-05T01:40:39+08:00", + "summary": "status=dry_run_completed, register=ready_to_create, apply=domain_not_found", + "handoff_stage_code": "ready_to_register", + "handoff_stage_label": "待正式入库", + "handoff_summary": "高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal' --dry-run=0 --format=text" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/014124_chuanjiafeng-net.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/014124_chuanjiafeng-net.html new file mode 100644 index 0000000..f987b49 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/014124_chuanjiafeng-net.html @@ -0,0 +1,19 @@ + + + + +Bootstrap Run Detail + + + +

返回启动包运行记录 | 查看值班入口 | 查看启动包接手队列 | 查看值班待办 | 返回统一门户首页 | 查看新域名上线 SOP

+

返回对应 bundle 详情

+

014124_chuanjiafeng-net

+

状态摘要

+
run_name014124_chuanjiafeng-net
hostchuanjiafeng.net
overall_statusdry_run_completed
register_statusdomain_exists
apply_statusdry_run
dry_runyes
run_registeryes
run_applyyes
errors_count0
executed_at2026-04-05T01:41:24+08:00
handoff_stage待正式应用
+

状态说明

+
summarystatus=dry_run_completed, register=domain_exists, apply=dry_run
handoff_summary高层 dry-run 已确认域名可继续 apply,下一步应正式执行 bootstrap run。
handoff_next_step正式执行高层 run
handoff_next_commandphp scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact' --dry-run=0 --format=text
register_message目标域名已存在,可继续执行 SEO 策略 apply。
apply_message
errors
+

文件路径

+
run_json/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/014124_chuanjiafeng-net.json
bundle_root/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/014124_chuanjiafeng-net.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/014124_chuanjiafeng-net.json new file mode 100644 index 0000000..43ab1b3 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/014124_chuanjiafeng-net.json @@ -0,0 +1,31 @@ +{ + "run_name": "014124_chuanjiafeng-net", + "detail_slug": "014124_chuanjiafeng-net", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/014124_chuanjiafeng-net.json", + "host": "chuanjiafeng.net", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact", + "bundle_detail_slug": "chuanjiafeng-net", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact/data/seo_copy_jobs/approved/20260405_153500.manifest.json", + "manifest_name": "20260405_153500", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact/data/seo_copy", + "base_url": "https://chuanjiafeng.net", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "domain_exists", + "register_message": "目标域名已存在,可继续执行 SEO 策略 apply。", + "apply_status": "dry_run", + "apply_message": "", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-05T01:41:24+08:00", + "updated_at": "2026-04-05T01:41:24+08:00", + "summary": "status=dry_run_completed, register=domain_exists, apply=dry_run", + "handoff_stage_code": "ready_to_apply", + "handoff_stage_label": "待正式应用", + "handoff_summary": "高层 dry-run 已确认域名可继续 apply,下一步应正式执行 bootstrap run。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact' --dry-run=0 --format=text" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/014124_demo-example-com.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/014124_demo-example-com.html new file mode 100644 index 0000000..576faba --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/014124_demo-example-com.html @@ -0,0 +1,19 @@ + + + + +Bootstrap Run Detail + + + +

返回启动包运行记录 | 查看值班入口 | 查看启动包接手队列 | 查看值班待办 | 返回统一门户首页 | 查看新域名上线 SOP

+

返回对应 bundle 详情

+

014124_demo-example-com

+

状态摘要

+
run_name014124_demo-example-com
hostdemo.example.com
overall_statusdry_run_completed
register_statusready_to_create
apply_statusdomain_not_found
dry_runyes
run_registeryes
run_applyyes
errors_count0
executed_at2026-04-05T01:41:24+08:00
handoff_stage待正式入库
+

状态说明

+
summarystatus=dry_run_completed, register=ready_to_create, apply=domain_not_found
handoff_summary高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。
handoff_next_step正式执行高层 run
handoff_next_commandphp scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal' --dry-run=0 --format=text
register_message目标域名尚未创建,当前样板已具备建站记录所需最小字段。
apply_message请先在站点表中创建目标域名,再应用 bootstrap 策略样板。
errors
+

文件路径

+
run_json/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/014124_demo-example-com.json
bundle_root/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/014124_demo-example-com.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/014124_demo-example-com.json new file mode 100644 index 0000000..13f220c --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/014124_demo-example-com.json @@ -0,0 +1,31 @@ +{ + "run_name": "014124_demo-example-com", + "detail_slug": "014124_demo-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/014124_demo-example-com.json", + "host": "demo.example.com", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal", + "bundle_detail_slug": "demo-example-com", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved/demo-core-batch1.manifest.json", + "manifest_name": "demo-core-batch1", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy", + "base_url": "https://demo.example.com", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "ready_to_create", + "register_message": "目标域名尚未创建,当前样板已具备建站记录所需最小字段。", + "apply_status": "domain_not_found", + "apply_message": "请先在站点表中创建目标域名,再应用 bootstrap 策略样板。", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-05T01:41:24+08:00", + "updated_at": "2026-04-05T01:41:24+08:00", + "summary": "status=dry_run_completed, register=ready_to_create, apply=domain_not_found", + "handoff_stage_code": "ready_to_register", + "handoff_stage_label": "待正式入库", + "handoff_summary": "高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal' --dry-run=0 --format=text" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/014155_demo-example-com.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/014155_demo-example-com.html new file mode 100644 index 0000000..f6e2e88 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/014155_demo-example-com.html @@ -0,0 +1,19 @@ + + + + +Bootstrap Run Detail + + + +

返回启动包运行记录 | 查看值班入口 | 查看启动包接手队列 | 查看值班待办 | 返回统一门户首页 | 查看新域名上线 SOP

+

返回对应 bundle 详情

+

014155_demo-example-com

+

状态摘要

+
run_name014155_demo-example-com
hostdemo.example.com
overall_statusdry_run_completed
register_statusready_to_create
apply_statusdomain_not_found
dry_runyes
run_registeryes
run_applyyes
errors_count0
executed_at2026-04-06T01:41:55+08:00
handoff_stage待正式入库
+

状态说明

+
summarystatus=dry_run_completed, register=ready_to_create, apply=domain_not_found
handoff_summary高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。
handoff_next_step正式执行高层 run
handoff_next_commandphp scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal' --dry-run=0 --format=text
register_message目标域名尚未创建,当前样板已具备建站记录所需最小字段。
apply_message请先在站点表中创建目标域名,再应用 bootstrap 策略样板。
errors
+

文件路径

+
run_json/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260406/014155_demo-example-com.json
bundle_root/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/014155_demo-example-com.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/014155_demo-example-com.json new file mode 100644 index 0000000..6ccd53e --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/014155_demo-example-com.json @@ -0,0 +1,31 @@ +{ + "run_name": "014155_demo-example-com", + "detail_slug": "014155_demo-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260406/014155_demo-example-com.json", + "host": "demo.example.com", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal", + "bundle_detail_slug": "demo-example-com", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved/demo-core-batch1.manifest.json", + "manifest_name": "demo-core-batch1", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy", + "base_url": "https://demo.example.com", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "ready_to_create", + "register_message": "目标域名尚未创建,当前样板已具备建站记录所需最小字段。", + "apply_status": "domain_not_found", + "apply_message": "请先在站点表中创建目标域名,再应用 bootstrap 策略样板。", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-06T01:41:55+08:00", + "updated_at": "2026-04-06T01:41:55+08:00", + "summary": "status=dry_run_completed, register=ready_to_create, apply=domain_not_found", + "handoff_stage_code": "ready_to_register", + "handoff_stage_label": "待正式入库", + "handoff_summary": "高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal' --dry-run=0 --format=text" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/014156_demo-example-com.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/014156_demo-example-com.html new file mode 100644 index 0000000..adfad10 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/014156_demo-example-com.html @@ -0,0 +1,19 @@ + + + + +Bootstrap Run Detail + + + +

返回启动包运行记录 | 查看值班入口 | 查看启动包接手队列 | 查看值班待办 | 返回统一门户首页 | 查看新域名上线 SOP

+

返回对应 bundle 详情

+

014156_demo-example-com

+

状态摘要

+
run_name014156_demo-example-com
hostdemo.example.com
overall_statusdry_run_completed
register_statusready_to_create
apply_statusdomain_not_found
dry_runyes
run_registeryes
run_applyyes
errors_count0
executed_at2026-04-06T01:41:56+08:00
handoff_stage待正式入库
+

状态说明

+
summarystatus=dry_run_completed, register=ready_to_create, apply=domain_not_found
handoff_summary高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。
handoff_next_step正式执行高层 run
handoff_next_commandphp scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal' --dry-run=0 --format=text
register_message目标域名尚未创建,当前样板已具备建站记录所需最小字段。
apply_message请先在站点表中创建目标域名,再应用 bootstrap 策略样板。
errors
+

文件路径

+
run_json/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260406/014156_demo-example-com.json
bundle_root/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/014156_demo-example-com.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/014156_demo-example-com.json new file mode 100644 index 0000000..c38323e --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/014156_demo-example-com.json @@ -0,0 +1,31 @@ +{ + "run_name": "014156_demo-example-com", + "detail_slug": "014156_demo-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260406/014156_demo-example-com.json", + "host": "demo.example.com", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal", + "bundle_detail_slug": "demo-example-com", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved/demo-core-batch1.manifest.json", + "manifest_name": "demo-core-batch1", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy", + "base_url": "https://demo.example.com", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "ready_to_create", + "register_message": "目标域名尚未创建,当前样板已具备建站记录所需最小字段。", + "apply_status": "domain_not_found", + "apply_message": "请先在站点表中创建目标域名,再应用 bootstrap 策略样板。", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-06T01:41:56+08:00", + "updated_at": "2026-04-06T01:41:56+08:00", + "summary": "status=dry_run_completed, register=ready_to_create, apply=domain_not_found", + "handoff_stage_code": "ready_to_register", + "handoff_stage_label": "待正式入库", + "handoff_summary": "高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal' --dry-run=0 --format=text" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/020311_chuanjiafeng-net.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/020311_chuanjiafeng-net.html new file mode 100644 index 0000000..6780b66 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/020311_chuanjiafeng-net.html @@ -0,0 +1,19 @@ + + + + +Bootstrap Run Detail + + + +

返回启动包运行记录 | 查看值班入口 | 查看启动包接手队列 | 查看值班待办 | 返回统一门户首页 | 查看新域名上线 SOP

+

返回对应 bundle 详情

+

020311_chuanjiafeng-net

+

状态摘要

+
run_name020311_chuanjiafeng-net
hostchuanjiafeng.net
overall_statusdry_run_completed
register_statusdomain_exists
apply_statusdry_run
dry_runyes
run_registeryes
run_applyyes
errors_count0
executed_at2026-04-05T02:03:11+08:00
handoff_stage待正式应用
+

状态说明

+
summarystatus=dry_run_completed, register=domain_exists, apply=dry_run
handoff_summary高层 dry-run 已确认域名可继续 apply,下一步应正式执行 bootstrap run。
handoff_next_step正式执行高层 run
handoff_next_commandphp scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact' --dry-run=0 --format=text
register_message目标域名已存在,可继续执行 SEO 策略 apply。
apply_message
errors
+

文件路径

+
run_json/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/020311_chuanjiafeng-net.json
bundle_root/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/020311_chuanjiafeng-net.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/020311_chuanjiafeng-net.json new file mode 100644 index 0000000..6b3e671 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/020311_chuanjiafeng-net.json @@ -0,0 +1,31 @@ +{ + "run_name": "020311_chuanjiafeng-net", + "detail_slug": "020311_chuanjiafeng-net", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/020311_chuanjiafeng-net.json", + "host": "chuanjiafeng.net", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact", + "bundle_detail_slug": "chuanjiafeng-net", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact/data/seo_copy_jobs/approved/20260405_153500.manifest.json", + "manifest_name": "20260405_153500", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact/data/seo_copy", + "base_url": "https://chuanjiafeng.net", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "domain_exists", + "register_message": "目标域名已存在,可继续执行 SEO 策略 apply。", + "apply_status": "dry_run", + "apply_message": "", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-05T02:03:11+08:00", + "updated_at": "2026-04-05T02:03:11+08:00", + "summary": "status=dry_run_completed, register=domain_exists, apply=dry_run", + "handoff_stage_code": "ready_to_apply", + "handoff_stage_label": "待正式应用", + "handoff_summary": "高层 dry-run 已确认域名可继续 apply,下一步应正式执行 bootstrap run。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact' --dry-run=0 --format=text" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/133734_chuanjiafeng-net.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/133734_chuanjiafeng-net.html new file mode 100644 index 0000000..14781f9 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/133734_chuanjiafeng-net.html @@ -0,0 +1,19 @@ + + + + +Bootstrap Run Detail + + + +

返回启动包运行记录 | 查看值班入口 | 查看启动包接手队列 | 查看值班待办 | 返回统一门户首页 | 查看新域名上线 SOP

+

返回对应 bundle 详情

+

133734_chuanjiafeng-net

+

状态摘要

+
run_name133734_chuanjiafeng-net
hostchuanjiafeng.net
overall_statusdry_run_completed
register_statusdomain_exists
apply_statusdry_run
dry_runyes
run_registeryes
run_applyyes
errors_count0
executed_at2026-04-08T13:37:34+08:00
handoff_stage待正式应用
+

状态说明

+
summarystatus=dry_run_completed, register=domain_exists, apply=dry_run
handoff_summary高层 dry-run 已确认域名可继续 apply,下一步应正式执行 bootstrap run。
handoff_next_step正式执行高层 run
handoff_next_commandphp scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-next-stage-a1' --dry-run=0 --format=text
register_message目标域名已存在,可继续执行 SEO 策略 apply。
apply_message
errors
+

文件路径

+
run_json/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260408/133734_chuanjiafeng-net.json
bundle_root/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-next-stage-a1
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/133734_chuanjiafeng-net.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/133734_chuanjiafeng-net.json new file mode 100644 index 0000000..f17680e --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/133734_chuanjiafeng-net.json @@ -0,0 +1,31 @@ +{ + "run_name": "133734_chuanjiafeng-net", + "detail_slug": "133734_chuanjiafeng-net", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260408/133734_chuanjiafeng-net.json", + "host": "chuanjiafeng.net", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-next-stage-a1", + "bundle_detail_slug": "chuanjiafeng-net", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-next-stage-a1/data/seo_copy_jobs/approved/chuanjiafeng-next-stage-a1.manifest.json", + "manifest_name": "chuanjiafeng-next-stage-a1", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-next-stage-a1/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-next-stage-a1/data/seo_copy", + "base_url": "https://chuanjiafeng.net", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "domain_exists", + "register_message": "目标域名已存在,可继续执行 SEO 策略 apply。", + "apply_status": "dry_run", + "apply_message": "", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-08T13:37:34+08:00", + "updated_at": "2026-04-08T13:37:34+08:00", + "summary": "status=dry_run_completed, register=domain_exists, apply=dry_run", + "handoff_stage_code": "ready_to_apply", + "handoff_stage_label": "待正式应用", + "handoff_summary": "高层 dry-run 已确认域名可继续 apply,下一步应正式执行 bootstrap run。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-next-stage-a1' --dry-run=0 --format=text" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/134303_liangzuan-net.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/134303_liangzuan-net.html new file mode 100644 index 0000000..407c521 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/134303_liangzuan-net.html @@ -0,0 +1,19 @@ + + + + +Bootstrap Run Detail + + + +

返回启动包运行记录 | 查看值班入口 | 查看启动包接手队列 | 查看值班待办 | 返回统一门户首页 | 查看新域名上线 SOP

+

返回对应 bundle 详情

+

134303_liangzuan-net

+

状态摘要

+
run_name134303_liangzuan-net
hostliangzuan.net
overall_statusdry_run_completed
register_statusdomain_exists
apply_statusdry_run
dry_runyes
run_registeryes
run_applyyes
errors_count0
executed_at2026-04-08T13:43:03+08:00
handoff_stage待正式应用
+

状态说明

+
summarystatus=dry_run_completed, register=domain_exists, apply=dry_run
handoff_summary高层 dry-run 已确认域名可继续 apply,下一步应正式执行 bootstrap run。
handoff_next_step正式执行高层 run
handoff_next_commandphp scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/liangzuan-next-stage-b1' --dry-run=0 --format=text
register_message目标域名已存在,可继续执行 SEO 策略 apply。
apply_message
errors
+

文件路径

+
run_json/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260408/134303_liangzuan-net.json
bundle_root/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/liangzuan-next-stage-b1
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/134303_liangzuan-net.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/134303_liangzuan-net.json new file mode 100644 index 0000000..e7c66f7 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/134303_liangzuan-net.json @@ -0,0 +1,31 @@ +{ + "run_name": "134303_liangzuan-net", + "detail_slug": "134303_liangzuan-net", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260408/134303_liangzuan-net.json", + "host": "liangzuan.net", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/liangzuan-next-stage-b1", + "bundle_detail_slug": "liangzuan-net", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/liangzuan-next-stage-b1/data/seo_copy_jobs/approved/liangzuan-next-stage-b1.manifest.json", + "manifest_name": "liangzuan-next-stage-b1", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/liangzuan-next-stage-b1/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/liangzuan-next-stage-b1/data/seo_copy", + "base_url": "https://liangzuan.net", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "domain_exists", + "register_message": "目标域名已存在,可继续执行 SEO 策略 apply。", + "apply_status": "dry_run", + "apply_message": "", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-08T13:43:03+08:00", + "updated_at": "2026-04-08T13:43:03+08:00", + "summary": "status=dry_run_completed, register=domain_exists, apply=dry_run", + "handoff_stage_code": "ready_to_apply", + "handoff_stage_label": "待正式应用", + "handoff_summary": "高层 dry-run 已确认域名可继续 apply,下一步应正式执行 bootstrap run。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/liangzuan-next-stage-b1' --dry-run=0 --format=text" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/134414_liangzuan-net.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/134414_liangzuan-net.html new file mode 100644 index 0000000..27c18c0 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/134414_liangzuan-net.html @@ -0,0 +1,19 @@ + + + + +Bootstrap Run Detail + + + +

返回启动包运行记录 | 查看值班入口 | 查看启动包接手队列 | 查看值班待办 | 返回统一门户首页 | 查看新域名上线 SOP

+

返回对应 bundle 详情

+

134414_liangzuan-net

+

状态摘要

+
run_name134414_liangzuan-net
hostliangzuan.net
overall_statuscompleted
register_statusdomain_exists
apply_statusapplied
dry_runno
run_registeryes
run_applyyes
errors_count0
executed_at2026-04-08T13:44:14+08:00
handoff_stage可进入 Prepare
+

状态说明

+
summarystatus=completed, register=domain_exists, apply=applied
handoff_summary本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。
handoff_next_step继续执行 prepare
handoff_next_commandphp scripts/seo_copy_batch_prepare.php 'liangzuan-next-stage-b1' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/liangzuan-next-stage-b1/data/seo_copy_jobs/approved'
register_message目标域名已存在,可继续执行 SEO 策略 apply。
apply_message
errors
+

文件路径

+
run_json/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260408/134414_liangzuan-net.json
bundle_root/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/liangzuan-next-stage-b1
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/134414_liangzuan-net.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/134414_liangzuan-net.json new file mode 100644 index 0000000..04bd94b --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/134414_liangzuan-net.json @@ -0,0 +1,31 @@ +{ + "run_name": "134414_liangzuan-net", + "detail_slug": "134414_liangzuan-net", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260408/134414_liangzuan-net.json", + "host": "liangzuan.net", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/liangzuan-next-stage-b1", + "bundle_detail_slug": "liangzuan-net", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/liangzuan-next-stage-b1/data/seo_copy_jobs/approved/liangzuan-next-stage-b1.manifest.json", + "manifest_name": "liangzuan-next-stage-b1", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/liangzuan-next-stage-b1/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/liangzuan-next-stage-b1/data/seo_copy", + "base_url": "https://liangzuan.net", + "dry_run": false, + "run_register": true, + "run_apply": true, + "overall_status": "completed", + "register_status": "domain_exists", + "register_message": "目标域名已存在,可继续执行 SEO 策略 apply。", + "apply_status": "applied", + "apply_message": "", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-08T13:44:14+08:00", + "updated_at": "2026-04-08T13:44:14+08:00", + "summary": "status=completed, register=domain_exists, apply=applied", + "handoff_stage_code": "ready_for_prepare", + "handoff_stage_label": "可进入 Prepare", + "handoff_summary": "本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。", + "handoff_next_step": "继续执行 prepare", + "handoff_next_command": "php scripts/seo_copy_batch_prepare.php 'liangzuan-next-stage-b1' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/liangzuan-next-stage-b1/data/seo_copy_jobs/approved'" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/134719_liangzuan-net.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/134719_liangzuan-net.html new file mode 100644 index 0000000..bb3476f --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/134719_liangzuan-net.html @@ -0,0 +1,19 @@ + + + + +Bootstrap Run Detail + + + +

返回启动包运行记录 | 查看值班入口 | 查看启动包接手队列 | 查看值班待办 | 返回统一门户首页 | 查看新域名上线 SOP

+

返回对应 bundle 详情

+

134719_liangzuan-net

+

状态摘要

+
run_name134719_liangzuan-net
hostliangzuan.net
overall_statuscompleted
register_statusdomain_exists
apply_statusnoop
dry_runno
run_registeryes
run_applyyes
errors_count0
executed_at2026-04-08T13:47:19+08:00
handoff_stage可进入 Prepare
+

状态说明

+
summarystatus=completed, register=domain_exists, apply=noop
handoff_summary本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。
handoff_next_step继续执行 prepare
handoff_next_commandphp scripts/seo_copy_batch_prepare.php 'liangzuan-next-stage-b1' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/liangzuan-next-stage-b1/data/seo_copy_jobs/approved'
register_message目标域名已存在,可继续执行 SEO 策略 apply。
apply_message目标域名当前策略已经与 bootstrap 样板一致。
errors
+

文件路径

+
run_json/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260408/134719_liangzuan-net.json
bundle_root/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/liangzuan-next-stage-b1
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/134719_liangzuan-net.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/134719_liangzuan-net.json new file mode 100644 index 0000000..4f5828c --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/134719_liangzuan-net.json @@ -0,0 +1,31 @@ +{ + "run_name": "134719_liangzuan-net", + "detail_slug": "134719_liangzuan-net", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260408/134719_liangzuan-net.json", + "host": "liangzuan.net", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/liangzuan-next-stage-b1", + "bundle_detail_slug": "liangzuan-net", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/liangzuan-next-stage-b1/data/seo_copy_jobs/approved/liangzuan-next-stage-b1.manifest.json", + "manifest_name": "liangzuan-next-stage-b1", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/liangzuan-next-stage-b1/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/liangzuan-next-stage-b1/data/seo_copy", + "base_url": "https://liangzuan.net", + "dry_run": false, + "run_register": true, + "run_apply": true, + "overall_status": "completed", + "register_status": "domain_exists", + "register_message": "目标域名已存在,可继续执行 SEO 策略 apply。", + "apply_status": "noop", + "apply_message": "目标域名当前策略已经与 bootstrap 样板一致。", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-08T13:47:19+08:00", + "updated_at": "2026-04-08T13:47:19+08:00", + "summary": "status=completed, register=domain_exists, apply=noop", + "handoff_stage_code": "ready_for_prepare", + "handoff_stage_label": "可进入 Prepare", + "handoff_summary": "本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。", + "handoff_next_step": "继续执行 prepare", + "handoff_next_command": "php scripts/seo_copy_batch_prepare.php 'liangzuan-next-stage-b1' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/liangzuan-next-stage-b1/data/seo_copy_jobs/approved'" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/135937_chuanjiafeng-net.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/135937_chuanjiafeng-net.html new file mode 100644 index 0000000..82b5b69 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/135937_chuanjiafeng-net.html @@ -0,0 +1,19 @@ + + + + +Bootstrap Run Detail + + + +

返回启动包运行记录 | 查看值班入口 | 查看启动包接手队列 | 查看值班待办 | 返回统一门户首页 | 查看新域名上线 SOP

+

返回对应 bundle 详情

+

135937_chuanjiafeng-net

+

状态摘要

+
run_name135937_chuanjiafeng-net
hostchuanjiafeng.net
overall_statusfailed
register_status
apply_status
dry_runyes
run_registeryes
run_applyyes
errors_count1
executed_at2026-04-05T13:59:37+08:00
handoff_stage需关注
+

状态说明

+
summarystatus=failed, register=, apply=
handoff_summary当前 bootstrap run 已出现错误或异常状态,建议先重跑 dry-run 并核对 register/apply 明细。
handoff_next_step先重跑高层 dry-run
handoff_next_commandphp scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact' --dry-run=1 --format=text
register_message
apply_message
errorsUndefined db config:mysql
+

文件路径

+
run_json/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/135937_chuanjiafeng-net.json
bundle_root/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/135937_chuanjiafeng-net.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/135937_chuanjiafeng-net.json new file mode 100644 index 0000000..aff5006 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/135937_chuanjiafeng-net.json @@ -0,0 +1,33 @@ +{ + "run_name": "135937_chuanjiafeng-net", + "detail_slug": "135937_chuanjiafeng-net", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/135937_chuanjiafeng-net.json", + "host": "chuanjiafeng.net", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact", + "bundle_detail_slug": "chuanjiafeng-net", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact/data/seo_copy_jobs/approved/20260405_153500.manifest.json", + "manifest_name": "20260405_153500", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact/data/seo_copy", + "base_url": "https://chuanjiafeng.net", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "failed", + "register_status": "", + "register_message": "", + "apply_status": "", + "apply_message": "", + "errors_count": 1, + "errors": [ + "Undefined db config:mysql" + ], + "executed_at": "2026-04-05T13:59:37+08:00", + "updated_at": "2026-04-05T13:59:37+08:00", + "summary": "status=failed, register=, apply=", + "handoff_stage_code": "needs_attention", + "handoff_stage_label": "需关注", + "handoff_summary": "当前 bootstrap run 已出现错误或异常状态,建议先重跑 dry-run 并核对 register/apply 明细。", + "handoff_next_step": "先重跑高层 dry-run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact' --dry-run=1 --format=text" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/135937_demo-example-com.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/135937_demo-example-com.html new file mode 100644 index 0000000..715605b --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/135937_demo-example-com.html @@ -0,0 +1,19 @@ + + + + +Bootstrap Run Detail + + + +

返回启动包运行记录 | 查看值班入口 | 查看启动包接手队列 | 查看值班待办 | 返回统一门户首页 | 查看新域名上线 SOP

+

返回对应 bundle 详情

+

135937_demo-example-com

+

状态摘要

+
run_name135937_demo-example-com
hostdemo.example.com
overall_statusfailed
register_status
apply_status
dry_runyes
run_registeryes
run_applyyes
errors_count1
executed_at2026-04-05T13:59:37+08:00
handoff_stage需关注
+

状态说明

+
summarystatus=failed, register=, apply=
handoff_summary当前 bootstrap run 已出现错误或异常状态,建议先重跑 dry-run 并核对 register/apply 明细。
handoff_next_step先重跑高层 dry-run
handoff_next_commandphp scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal' --dry-run=1 --format=text
register_message
apply_message
errorsUndefined db config:mysql
+

文件路径

+
run_json/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/135937_demo-example-com.json
bundle_root/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/135937_demo-example-com.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/135937_demo-example-com.json new file mode 100644 index 0000000..5eb5ae5 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/135937_demo-example-com.json @@ -0,0 +1,33 @@ +{ + "run_name": "135937_demo-example-com", + "detail_slug": "135937_demo-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/135937_demo-example-com.json", + "host": "demo.example.com", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal", + "bundle_detail_slug": "demo-example-com", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved/demo-core-batch1.manifest.json", + "manifest_name": "demo-core-batch1", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy", + "base_url": "https://demo.example.com", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "failed", + "register_status": "", + "register_message": "", + "apply_status": "", + "apply_message": "", + "errors_count": 1, + "errors": [ + "Undefined db config:mysql" + ], + "executed_at": "2026-04-05T13:59:37+08:00", + "updated_at": "2026-04-05T13:59:37+08:00", + "summary": "status=failed, register=, apply=", + "handoff_stage_code": "needs_attention", + "handoff_stage_label": "需关注", + "handoff_summary": "当前 bootstrap run 已出现错误或异常状态,建议先重跑 dry-run 并核对 register/apply 明细。", + "handoff_next_step": "先重跑高层 dry-run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal' --dry-run=1 --format=text" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/140605_chuanjiafeng-net.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/140605_chuanjiafeng-net.html new file mode 100644 index 0000000..832ba0c --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/140605_chuanjiafeng-net.html @@ -0,0 +1,19 @@ + + + + +Bootstrap Run Detail + + + +

返回启动包运行记录 | 查看值班入口 | 查看启动包接手队列 | 查看值班待办 | 返回统一门户首页 | 查看新域名上线 SOP

+

返回对应 bundle 详情

+

140605_chuanjiafeng-net

+

状态摘要

+
run_name140605_chuanjiafeng-net
hostchuanjiafeng.net
overall_statusdry_run_completed
register_statusdomain_exists
apply_statusdry_run
dry_runyes
run_registeryes
run_applyyes
errors_count0
executed_at2026-04-05T14:06:05+08:00
handoff_stage待正式应用
+

状态说明

+
summarystatus=dry_run_completed, register=domain_exists, apply=dry_run
handoff_summary高层 dry-run 已确认域名可继续 apply,下一步应正式执行 bootstrap run。
handoff_next_step正式执行高层 run
handoff_next_commandphp scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact' --dry-run=0 --format=text
register_message目标域名已存在,可继续执行 SEO 策略 apply。
apply_message
errors
+

文件路径

+
run_json/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/140605_chuanjiafeng-net.json
bundle_root/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/140605_chuanjiafeng-net.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/140605_chuanjiafeng-net.json new file mode 100644 index 0000000..b2d6992 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/140605_chuanjiafeng-net.json @@ -0,0 +1,31 @@ +{ + "run_name": "140605_chuanjiafeng-net", + "detail_slug": "140605_chuanjiafeng-net", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/140605_chuanjiafeng-net.json", + "host": "chuanjiafeng.net", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact", + "bundle_detail_slug": "chuanjiafeng-net", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact/data/seo_copy_jobs/approved/20260405_153500.manifest.json", + "manifest_name": "20260405_153500", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact/data/seo_copy", + "base_url": "https://chuanjiafeng.net", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "domain_exists", + "register_message": "目标域名已存在,可继续执行 SEO 策略 apply。", + "apply_status": "dry_run", + "apply_message": "", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-05T14:06:05+08:00", + "updated_at": "2026-04-05T14:06:05+08:00", + "summary": "status=dry_run_completed, register=domain_exists, apply=dry_run", + "handoff_stage_code": "ready_to_apply", + "handoff_stage_label": "待正式应用", + "handoff_summary": "高层 dry-run 已确认域名可继续 apply,下一步应正式执行 bootstrap run。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact' --dry-run=0 --format=text" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/140609_demo-example-com.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/140609_demo-example-com.html new file mode 100644 index 0000000..9d7884e --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/140609_demo-example-com.html @@ -0,0 +1,19 @@ + + + + +Bootstrap Run Detail + + + +

返回启动包运行记录 | 查看值班入口 | 查看启动包接手队列 | 查看值班待办 | 返回统一门户首页 | 查看新域名上线 SOP

+

返回对应 bundle 详情

+

140609_demo-example-com

+

状态摘要

+
run_name140609_demo-example-com
hostdemo.example.com
overall_statusdry_run_completed
register_statusready_to_create
apply_statusdomain_not_found
dry_runyes
run_registeryes
run_applyyes
errors_count0
executed_at2026-04-05T14:06:09+08:00
handoff_stage待正式入库
+

状态说明

+
summarystatus=dry_run_completed, register=ready_to_create, apply=domain_not_found
handoff_summary高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。
handoff_next_step正式执行高层 run
handoff_next_commandphp scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal' --dry-run=0 --format=text
register_message目标域名尚未创建,当前样板已具备建站记录所需最小字段。
apply_message请先在站点表中创建目标域名,再应用 bootstrap 策略样板。
errors
+

文件路径

+
run_json/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/140609_demo-example-com.json
bundle_root/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/140609_demo-example-com.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/140609_demo-example-com.json new file mode 100644 index 0000000..f4b2be5 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/140609_demo-example-com.json @@ -0,0 +1,31 @@ +{ + "run_name": "140609_demo-example-com", + "detail_slug": "140609_demo-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/140609_demo-example-com.json", + "host": "demo.example.com", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal", + "bundle_detail_slug": "demo-example-com", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved/demo-core-batch1.manifest.json", + "manifest_name": "demo-core-batch1", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy", + "base_url": "https://demo.example.com", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "ready_to_create", + "register_message": "目标域名尚未创建,当前样板已具备建站记录所需最小字段。", + "apply_status": "domain_not_found", + "apply_message": "请先在站点表中创建目标域名,再应用 bootstrap 策略样板。", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-05T14:06:09+08:00", + "updated_at": "2026-04-05T14:06:09+08:00", + "summary": "status=dry_run_completed, register=ready_to_create, apply=domain_not_found", + "handoff_stage_code": "ready_to_register", + "handoff_stage_label": "待正式入库", + "handoff_summary": "高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal' --dry-run=0 --format=text" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/140711_demo-example-com.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/140711_demo-example-com.html new file mode 100644 index 0000000..b3a59d2 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/140711_demo-example-com.html @@ -0,0 +1,19 @@ + + + + +Bootstrap Run Detail + + + +

返回启动包运行记录 | 查看值班入口 | 查看启动包接手队列 | 查看值班待办 | 返回统一门户首页 | 查看新域名上线 SOP

+

返回对应 bundle 详情

+

140711_demo-example-com

+

状态摘要

+
run_name140711_demo-example-com
hostdemo.example.com
overall_statusdry_run_completed
register_statusready_to_create
apply_statusdomain_not_found
dry_runyes
run_registeryes
run_applyyes
errors_count0
executed_at2026-04-05T14:07:11+08:00
handoff_stage待正式入库
+

状态说明

+
summarystatus=dry_run_completed, register=ready_to_create, apply=domain_not_found
handoff_summary高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。
handoff_next_step正式执行高层 run
handoff_next_commandphp scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal' --dry-run=0 --format=text
register_message目标域名尚未创建,当前样板已具备建站记录所需最小字段。
apply_message请先在站点表中创建目标域名,再应用 bootstrap 策略样板。
errors
+

文件路径

+
run_json/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/140711_demo-example-com.json
bundle_root/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/140711_demo-example-com.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/140711_demo-example-com.json new file mode 100644 index 0000000..f32ef74 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/140711_demo-example-com.json @@ -0,0 +1,31 @@ +{ + "run_name": "140711_demo-example-com", + "detail_slug": "140711_demo-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/140711_demo-example-com.json", + "host": "demo.example.com", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal", + "bundle_detail_slug": "demo-example-com", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved/demo-core-batch1.manifest.json", + "manifest_name": "demo-core-batch1", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy", + "base_url": "https://demo.example.com", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "ready_to_create", + "register_message": "目标域名尚未创建,当前样板已具备建站记录所需最小字段。", + "apply_status": "domain_not_found", + "apply_message": "请先在站点表中创建目标域名,再应用 bootstrap 策略样板。", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-05T14:07:11+08:00", + "updated_at": "2026-04-05T14:07:11+08:00", + "summary": "status=dry_run_completed, register=ready_to_create, apply=domain_not_found", + "handoff_stage_code": "ready_to_register", + "handoff_stage_label": "待正式入库", + "handoff_summary": "高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal' --dry-run=0 --format=text" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/141405_demo-example-com.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/141405_demo-example-com.html new file mode 100644 index 0000000..b872887 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/141405_demo-example-com.html @@ -0,0 +1,19 @@ + + + + +Bootstrap Run Detail + + + +

返回启动包运行记录 | 查看值班入口 | 查看启动包接手队列 | 查看值班待办 | 返回统一门户首页 | 查看新域名上线 SOP

+

返回对应 bundle 详情

+

141405_demo-example-com

+

状态摘要

+
run_name141405_demo-example-com
hostdemo.example.com
overall_statusdry_run_completed
register_statusready_to_create
apply_statusdomain_not_found
dry_runyes
run_registeryes
run_applyyes
errors_count0
executed_at2026-04-05T14:14:05+08:00
handoff_stage待正式入库
+

状态说明

+
summarystatus=dry_run_completed, register=ready_to_create, apply=domain_not_found
handoff_summary高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。
handoff_next_step正式执行高层 run
handoff_next_commandphp scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal' --dry-run=0 --format=text
register_message目标域名尚未创建,当前样板已具备建站记录所需最小字段。
apply_message请先在站点表中创建目标域名,再应用 bootstrap 策略样板。
errors
+

文件路径

+
run_json/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/141405_demo-example-com.json
bundle_root/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/141405_demo-example-com.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/141405_demo-example-com.json new file mode 100644 index 0000000..c708282 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/141405_demo-example-com.json @@ -0,0 +1,31 @@ +{ + "run_name": "141405_demo-example-com", + "detail_slug": "141405_demo-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/141405_demo-example-com.json", + "host": "demo.example.com", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal", + "bundle_detail_slug": "demo-example-com", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved/demo-core-batch1.manifest.json", + "manifest_name": "demo-core-batch1", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy", + "base_url": "https://demo.example.com", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "ready_to_create", + "register_message": "目标域名尚未创建,当前样板已具备建站记录所需最小字段。", + "apply_status": "domain_not_found", + "apply_message": "请先在站点表中创建目标域名,再应用 bootstrap 策略样板。", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-05T14:14:05+08:00", + "updated_at": "2026-04-05T14:14:05+08:00", + "summary": "status=dry_run_completed, register=ready_to_create, apply=domain_not_found", + "handoff_stage_code": "ready_to_register", + "handoff_stage_label": "待正式入库", + "handoff_summary": "高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal' --dry-run=0 --format=text" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/142621_demo-example-com.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/142621_demo-example-com.html new file mode 100644 index 0000000..d0fcae5 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/142621_demo-example-com.html @@ -0,0 +1,19 @@ + + + + +Bootstrap Run Detail + + + +

返回启动包运行记录 | 查看值班入口 | 查看启动包接手队列 | 查看值班待办 | 返回统一门户首页 | 查看新域名上线 SOP

+

返回对应 bundle 详情

+

142621_demo-example-com

+

状态摘要

+
run_name142621_demo-example-com
hostdemo.example.com
overall_statusdry_run_completed
register_statusready_to_create
apply_statusdomain_not_found
dry_runyes
run_registeryes
run_applyyes
errors_count0
executed_at2026-04-05T14:26:21+08:00
handoff_stage待正式入库
+

状态说明

+
summarystatus=dry_run_completed, register=ready_to_create, apply=domain_not_found
handoff_summary高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。
handoff_next_step正式执行高层 run
handoff_next_commandphp scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal' --dry-run=0 --format=text
register_message目标域名尚未创建,当前样板已具备建站记录所需最小字段。
apply_message请先在站点表中创建目标域名,再应用 bootstrap 策略样板。
errors
+

文件路径

+
run_json/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/142621_demo-example-com.json
bundle_root/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/142621_demo-example-com.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/142621_demo-example-com.json new file mode 100644 index 0000000..8fef9ec --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/142621_demo-example-com.json @@ -0,0 +1,31 @@ +{ + "run_name": "142621_demo-example-com", + "detail_slug": "142621_demo-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/142621_demo-example-com.json", + "host": "demo.example.com", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal", + "bundle_detail_slug": "demo-example-com", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved/demo-core-batch1.manifest.json", + "manifest_name": "demo-core-batch1", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy", + "base_url": "https://demo.example.com", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "ready_to_create", + "register_message": "目标域名尚未创建,当前样板已具备建站记录所需最小字段。", + "apply_status": "domain_not_found", + "apply_message": "请先在站点表中创建目标域名,再应用 bootstrap 策略样板。", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-05T14:26:21+08:00", + "updated_at": "2026-04-05T14:26:21+08:00", + "summary": "status=dry_run_completed, register=ready_to_create, apply=domain_not_found", + "handoff_stage_code": "ready_to_register", + "handoff_stage_label": "待正式入库", + "handoff_summary": "高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal' --dry-run=0 --format=text" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/142726_demo-example-com.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/142726_demo-example-com.html new file mode 100644 index 0000000..719e8d3 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/142726_demo-example-com.html @@ -0,0 +1,19 @@ + + + + +Bootstrap Run Detail + + + +

返回启动包运行记录 | 查看值班入口 | 查看启动包接手队列 | 查看值班待办 | 返回统一门户首页 | 查看新域名上线 SOP

+

返回对应 bundle 详情

+

142726_demo-example-com

+

状态摘要

+
run_name142726_demo-example-com
hostdemo.example.com
overall_statusdry_run_completed
register_statusready_to_create
apply_statusdomain_not_found
dry_runyes
run_registeryes
run_applyyes
errors_count0
executed_at2026-04-08T14:27:26+08:00
handoff_stage待正式入库
+

状态说明

+
summarystatus=dry_run_completed, register=ready_to_create, apply=domain_not_found
handoff_summary高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。
handoff_next_step正式执行高层 run
handoff_next_commandphp scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal' --dry-run=0 --format=text
register_message目标域名尚未创建,当前样板已具备建站记录所需最小字段。
apply_message请先在站点表中创建目标域名,再应用 bootstrap 策略样板。
errors
+

文件路径

+
run_json/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260408/142726_demo-example-com.json
bundle_root/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/142726_demo-example-com.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/142726_demo-example-com.json new file mode 100644 index 0000000..a7e6a88 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/142726_demo-example-com.json @@ -0,0 +1,31 @@ +{ + "run_name": "142726_demo-example-com", + "detail_slug": "142726_demo-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260408/142726_demo-example-com.json", + "host": "demo.example.com", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal", + "bundle_detail_slug": "demo-example-com", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved/demo-core-batch1.manifest.json", + "manifest_name": "demo-core-batch1", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy", + "base_url": "https://demo.example.com", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "ready_to_create", + "register_message": "目标域名尚未创建,当前样板已具备建站记录所需最小字段。", + "apply_status": "domain_not_found", + "apply_message": "请先在站点表中创建目标域名,再应用 bootstrap 策略样板。", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-08T14:27:26+08:00", + "updated_at": "2026-04-08T14:27:26+08:00", + "summary": "status=dry_run_completed, register=ready_to_create, apply=domain_not_found", + "handoff_stage_code": "ready_to_register", + "handoff_stage_label": "待正式入库", + "handoff_summary": "高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal' --dry-run=0 --format=text" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/142730_demo-example-com.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/142730_demo-example-com.html new file mode 100644 index 0000000..6411cf9 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/142730_demo-example-com.html @@ -0,0 +1,19 @@ + + + + +Bootstrap Run Detail + + + +

返回启动包运行记录 | 查看值班入口 | 查看启动包接手队列 | 查看值班待办 | 返回统一门户首页 | 查看新域名上线 SOP

+

返回对应 bundle 详情

+

142730_demo-example-com

+

状态摘要

+
run_name142730_demo-example-com
hostdemo.example.com
overall_statuscompleted
register_statuscreated
apply_statusnoop
dry_runno
run_registeryes
run_applyyes
errors_count0
executed_at2026-04-08T14:27:30+08:00
handoff_stage可进入 Prepare
+

状态说明

+
summarystatus=completed, register=created, apply=noop
handoff_summary本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。
handoff_next_step继续执行 prepare
handoff_next_commandphp scripts/seo_copy_batch_prepare.php 'demo-core-batch1' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved'
register_message目标域名尚未创建,当前样板已具备建站记录所需最小字段。
apply_message目标域名当前策略已经与 bootstrap 样板一致。
errors
+

文件路径

+
run_json/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260408/142730_demo-example-com.json
bundle_root/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/142730_demo-example-com.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/142730_demo-example-com.json new file mode 100644 index 0000000..90859d6 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/142730_demo-example-com.json @@ -0,0 +1,31 @@ +{ + "run_name": "142730_demo-example-com", + "detail_slug": "142730_demo-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260408/142730_demo-example-com.json", + "host": "demo.example.com", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal", + "bundle_detail_slug": "demo-example-com", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved/demo-core-batch1.manifest.json", + "manifest_name": "demo-core-batch1", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy", + "base_url": "https://demo.example.com", + "dry_run": false, + "run_register": true, + "run_apply": true, + "overall_status": "completed", + "register_status": "created", + "register_message": "目标域名尚未创建,当前样板已具备建站记录所需最小字段。", + "apply_status": "noop", + "apply_message": "目标域名当前策略已经与 bootstrap 样板一致。", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-08T14:27:30+08:00", + "updated_at": "2026-04-08T14:27:30+08:00", + "summary": "status=completed, register=created, apply=noop", + "handoff_stage_code": "ready_for_prepare", + "handoff_stage_label": "可进入 Prepare", + "handoff_summary": "本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。", + "handoff_next_step": "继续执行 prepare", + "handoff_next_command": "php scripts/seo_copy_batch_prepare.php 'demo-core-batch1' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved'" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/143915_demo-example-com.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/143915_demo-example-com.html new file mode 100644 index 0000000..d8525a6 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/143915_demo-example-com.html @@ -0,0 +1,19 @@ + + + + +Bootstrap Run Detail + + + +

返回启动包运行记录 | 查看值班入口 | 查看启动包接手队列 | 查看值班待办 | 返回统一门户首页 | 查看新域名上线 SOP

+

返回对应 bundle 详情

+

143915_demo-example-com

+

状态摘要

+
run_name143915_demo-example-com
hostdemo.example.com
overall_statuscompleted
register_statusdomain_exists
apply_statusapplied
dry_runno
run_registeryes
run_applyyes
errors_count0
executed_at2026-04-08T14:39:15+08:00
handoff_stage可进入 Prepare
+

状态说明

+
summarystatus=completed, register=domain_exists, apply=applied
handoff_summary本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。
handoff_next_step继续执行 prepare
handoff_next_commandphp scripts/seo_copy_batch_prepare.php 'demo-core-batch1' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved'
register_message目标域名已存在,可继续执行 SEO 策略 apply。
apply_message
errors
+

文件路径

+
run_json/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260408/143915_demo-example-com.json
bundle_rootSEONexus/code/storage/domain_bootstrap_bundles/demo-minimal
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/143915_demo-example-com.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/143915_demo-example-com.json new file mode 100644 index 0000000..35002db --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/143915_demo-example-com.json @@ -0,0 +1,31 @@ +{ + "run_name": "143915_demo-example-com", + "detail_slug": "143915_demo-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260408/143915_demo-example-com.json", + "host": "demo.example.com", + "bundle_root": "SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal", + "bundle_detail_slug": "demo-example-com", + "manifest_path": "SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved/demo-core-batch1.manifest.json", + "manifest_name": "demo-core-batch1", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy", + "base_url": "https://demo.example.com", + "dry_run": false, + "run_register": true, + "run_apply": true, + "overall_status": "completed", + "register_status": "domain_exists", + "register_message": "目标域名已存在,可继续执行 SEO 策略 apply。", + "apply_status": "applied", + "apply_message": "", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-08T14:39:15+08:00", + "updated_at": "2026-04-08T14:39:15+08:00", + "summary": "status=completed, register=domain_exists, apply=applied", + "handoff_stage_code": "ready_for_prepare", + "handoff_stage_label": "可进入 Prepare", + "handoff_summary": "本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。", + "handoff_next_step": "继续执行 prepare", + "handoff_next_command": "php scripts/seo_copy_batch_prepare.php 'demo-core-batch1' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved'" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144045_demo-example-com.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144045_demo-example-com.html new file mode 100644 index 0000000..dc4d132 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144045_demo-example-com.html @@ -0,0 +1,19 @@ + + + + +Bootstrap Run Detail + + + +

返回启动包运行记录 | 查看值班入口 | 查看启动包接手队列 | 查看值班待办 | 返回统一门户首页 | 查看新域名上线 SOP

+

返回对应 bundle 详情

+

144045_demo-example-com

+

状态摘要

+
run_name144045_demo-example-com
hostdemo.example.com
overall_statusdry_run_completed
register_statusready_to_create
apply_statusdomain_not_found
dry_runyes
run_registeryes
run_applyyes
errors_count0
executed_at2026-04-05T14:40:45+08:00
handoff_stage待正式入库
+

状态说明

+
summarystatus=dry_run_completed, register=ready_to_create, apply=domain_not_found
handoff_summary高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。
handoff_next_step正式执行高层 run
handoff_next_commandphp scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal' --dry-run=0 --format=text
register_message目标域名尚未创建,当前样板已具备建站记录所需最小字段。
apply_message请先在站点表中创建目标域名,再应用 bootstrap 策略样板。
errors
+

文件路径

+
run_json/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/144045_demo-example-com.json
bundle_root/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144045_demo-example-com.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144045_demo-example-com.json new file mode 100644 index 0000000..60a5d4a --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144045_demo-example-com.json @@ -0,0 +1,31 @@ +{ + "run_name": "144045_demo-example-com", + "detail_slug": "144045_demo-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/144045_demo-example-com.json", + "host": "demo.example.com", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal", + "bundle_detail_slug": "demo-example-com", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved/demo-core-batch1.manifest.json", + "manifest_name": "demo-core-batch1", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy", + "base_url": "https://demo.example.com", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "ready_to_create", + "register_message": "目标域名尚未创建,当前样板已具备建站记录所需最小字段。", + "apply_status": "domain_not_found", + "apply_message": "请先在站点表中创建目标域名,再应用 bootstrap 策略样板。", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-05T14:40:45+08:00", + "updated_at": "2026-04-05T14:40:45+08:00", + "summary": "status=dry_run_completed, register=ready_to_create, apply=domain_not_found", + "handoff_stage_code": "ready_to_register", + "handoff_stage_label": "待正式入库", + "handoff_summary": "高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal' --dry-run=0 --format=text" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144055_chuanjiafeng-net.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144055_chuanjiafeng-net.html new file mode 100644 index 0000000..0e6fd1c --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144055_chuanjiafeng-net.html @@ -0,0 +1,19 @@ + + + + +Bootstrap Run Detail + + + +

返回启动包运行记录 | 查看值班入口 | 查看启动包接手队列 | 查看值班待办 | 返回统一门户首页 | 查看新域名上线 SOP

+

返回对应 bundle 详情

+

144055_chuanjiafeng-net

+

状态摘要

+
run_name144055_chuanjiafeng-net
hostchuanjiafeng.net
overall_statusdry_run_completed
register_statusdomain_exists
apply_statusdry_run
dry_runyes
run_registeryes
run_applyyes
errors_count0
executed_at2026-04-05T14:40:55+08:00
handoff_stage待正式应用
+

状态说明

+
summarystatus=dry_run_completed, register=domain_exists, apply=dry_run
handoff_summary高层 dry-run 已确认域名可继续 apply,下一步应正式执行 bootstrap run。
handoff_next_step正式执行高层 run
handoff_next_commandphp scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact' --dry-run=0 --format=text
register_message目标域名已存在,可继续执行 SEO 策略 apply。
apply_message
errors
+

文件路径

+
run_json/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/144055_chuanjiafeng-net.json
bundle_root/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144055_chuanjiafeng-net.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144055_chuanjiafeng-net.json new file mode 100644 index 0000000..4187e1c --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144055_chuanjiafeng-net.json @@ -0,0 +1,31 @@ +{ + "run_name": "144055_chuanjiafeng-net", + "detail_slug": "144055_chuanjiafeng-net", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/144055_chuanjiafeng-net.json", + "host": "chuanjiafeng.net", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact", + "bundle_detail_slug": "chuanjiafeng-net", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact/data/seo_copy_jobs/approved/20260405_153500.manifest.json", + "manifest_name": "20260405_153500", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact/data/seo_copy", + "base_url": "https://chuanjiafeng.net", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "domain_exists", + "register_message": "目标域名已存在,可继续执行 SEO 策略 apply。", + "apply_status": "dry_run", + "apply_message": "", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-05T14:40:55+08:00", + "updated_at": "2026-04-05T14:40:55+08:00", + "summary": "status=dry_run_completed, register=domain_exists, apply=dry_run", + "handoff_stage_code": "ready_to_apply", + "handoff_stage_label": "待正式应用", + "handoff_summary": "高层 dry-run 已确认域名可继续 apply,下一步应正式执行 bootstrap run。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact' --dry-run=0 --format=text" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144055_demo-example-com.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144055_demo-example-com.html new file mode 100644 index 0000000..c24a567 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144055_demo-example-com.html @@ -0,0 +1,19 @@ + + + + +Bootstrap Run Detail + + + +

返回启动包运行记录 | 查看值班入口 | 查看启动包接手队列 | 查看值班待办 | 返回统一门户首页 | 查看新域名上线 SOP

+

返回对应 bundle 详情

+

144055_demo-example-com

+

状态摘要

+
run_name144055_demo-example-com
hostdemo.example.com
overall_statusdry_run_completed
register_statusready_to_create
apply_statusdomain_not_found
dry_runyes
run_registeryes
run_applyyes
errors_count0
executed_at2026-04-05T14:40:55+08:00
handoff_stage待正式入库
+

状态说明

+
summarystatus=dry_run_completed, register=ready_to_create, apply=domain_not_found
handoff_summary高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。
handoff_next_step正式执行高层 run
handoff_next_commandphp scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal' --dry-run=0 --format=text
register_message目标域名尚未创建,当前样板已具备建站记录所需最小字段。
apply_message请先在站点表中创建目标域名,再应用 bootstrap 策略样板。
errors
+

文件路径

+
run_json/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/144055_demo-example-com.json
bundle_root/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144055_demo-example-com.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144055_demo-example-com.json new file mode 100644 index 0000000..48e6ec7 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144055_demo-example-com.json @@ -0,0 +1,31 @@ +{ + "run_name": "144055_demo-example-com", + "detail_slug": "144055_demo-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/144055_demo-example-com.json", + "host": "demo.example.com", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal", + "bundle_detail_slug": "demo-example-com", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved/demo-core-batch1.manifest.json", + "manifest_name": "demo-core-batch1", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy", + "base_url": "https://demo.example.com", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "ready_to_create", + "register_message": "目标域名尚未创建,当前样板已具备建站记录所需最小字段。", + "apply_status": "domain_not_found", + "apply_message": "请先在站点表中创建目标域名,再应用 bootstrap 策略样板。", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-05T14:40:55+08:00", + "updated_at": "2026-04-05T14:40:55+08:00", + "summary": "status=dry_run_completed, register=ready_to_create, apply=domain_not_found", + "handoff_stage_code": "ready_to_register", + "handoff_stage_label": "待正式入库", + "handoff_summary": "高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal' --dry-run=0 --format=text" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144100_chuanjiafeng-net.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144100_chuanjiafeng-net.html new file mode 100644 index 0000000..51f7a09 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144100_chuanjiafeng-net.html @@ -0,0 +1,19 @@ + + + + +Bootstrap Run Detail + + + +

返回启动包运行记录 | 查看值班入口 | 查看启动包接手队列 | 查看值班待办 | 返回统一门户首页 | 查看新域名上线 SOP

+

返回对应 bundle 详情

+

144100_chuanjiafeng-net

+

状态摘要

+
run_name144100_chuanjiafeng-net
hostchuanjiafeng.net
overall_statusdry_run_completed
register_statusdomain_exists
apply_statusdry_run
dry_runyes
run_registeryes
run_applyyes
errors_count0
executed_at2026-04-05T14:41:00+08:00
handoff_stage待正式应用
+

状态说明

+
summarystatus=dry_run_completed, register=domain_exists, apply=dry_run
handoff_summary高层 dry-run 已确认域名可继续 apply,下一步应正式执行 bootstrap run。
handoff_next_step正式执行高层 run
handoff_next_commandphp scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact' --dry-run=0 --format=text
register_message目标域名已存在,可继续执行 SEO 策略 apply。
apply_message
errors
+

文件路径

+
run_json/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/144100_chuanjiafeng-net.json
bundle_root/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144100_chuanjiafeng-net.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144100_chuanjiafeng-net.json new file mode 100644 index 0000000..b180b91 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144100_chuanjiafeng-net.json @@ -0,0 +1,31 @@ +{ + "run_name": "144100_chuanjiafeng-net", + "detail_slug": "144100_chuanjiafeng-net", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/144100_chuanjiafeng-net.json", + "host": "chuanjiafeng.net", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact", + "bundle_detail_slug": "chuanjiafeng-net", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact/data/seo_copy_jobs/approved/20260405_153500.manifest.json", + "manifest_name": "20260405_153500", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact/data/seo_copy", + "base_url": "https://chuanjiafeng.net", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "domain_exists", + "register_message": "目标域名已存在,可继续执行 SEO 策略 apply。", + "apply_status": "dry_run", + "apply_message": "", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-05T14:41:00+08:00", + "updated_at": "2026-04-05T14:41:00+08:00", + "summary": "status=dry_run_completed, register=domain_exists, apply=dry_run", + "handoff_stage_code": "ready_to_apply", + "handoff_stage_label": "待正式应用", + "handoff_summary": "高层 dry-run 已确认域名可继续 apply,下一步应正式执行 bootstrap run。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact' --dry-run=0 --format=text" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144100_demo-example-com.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144100_demo-example-com.html new file mode 100644 index 0000000..9cd7315 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144100_demo-example-com.html @@ -0,0 +1,19 @@ + + + + +Bootstrap Run Detail + + + +

返回启动包运行记录 | 查看值班入口 | 查看启动包接手队列 | 查看值班待办 | 返回统一门户首页 | 查看新域名上线 SOP

+

返回对应 bundle 详情

+

144100_demo-example-com

+

状态摘要

+
run_name144100_demo-example-com
hostdemo.example.com
overall_statusdry_run_completed
register_statusready_to_create
apply_statusdomain_not_found
dry_runyes
run_registeryes
run_applyyes
errors_count0
executed_at2026-04-05T14:41:00+08:00
handoff_stage待正式入库
+

状态说明

+
summarystatus=dry_run_completed, register=ready_to_create, apply=domain_not_found
handoff_summary高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。
handoff_next_step正式执行高层 run
handoff_next_commandphp scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal' --dry-run=0 --format=text
register_message目标域名尚未创建,当前样板已具备建站记录所需最小字段。
apply_message请先在站点表中创建目标域名,再应用 bootstrap 策略样板。
errors
+

文件路径

+
run_json/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/144100_demo-example-com.json
bundle_root/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144100_demo-example-com.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144100_demo-example-com.json new file mode 100644 index 0000000..e2999e7 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144100_demo-example-com.json @@ -0,0 +1,31 @@ +{ + "run_name": "144100_demo-example-com", + "detail_slug": "144100_demo-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/144100_demo-example-com.json", + "host": "demo.example.com", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal", + "bundle_detail_slug": "demo-example-com", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved/demo-core-batch1.manifest.json", + "manifest_name": "demo-core-batch1", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy", + "base_url": "https://demo.example.com", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "ready_to_create", + "register_message": "目标域名尚未创建,当前样板已具备建站记录所需最小字段。", + "apply_status": "domain_not_found", + "apply_message": "请先在站点表中创建目标域名,再应用 bootstrap 策略样板。", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-05T14:41:00+08:00", + "updated_at": "2026-04-05T14:41:00+08:00", + "summary": "status=dry_run_completed, register=ready_to_create, apply=domain_not_found", + "handoff_stage_code": "ready_to_register", + "handoff_stage_label": "待正式入库", + "handoff_summary": "高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal' --dry-run=0 --format=text" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144129_demo-example-com.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144129_demo-example-com.html new file mode 100644 index 0000000..35b9e57 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144129_demo-example-com.html @@ -0,0 +1,19 @@ + + + + +Bootstrap Run Detail + + + +

返回启动包运行记录 | 查看值班入口 | 查看启动包接手队列 | 查看值班待办 | 返回统一门户首页 | 查看新域名上线 SOP

+

返回对应 bundle 详情

+

144129_demo-example-com

+

状态摘要

+
run_name144129_demo-example-com
hostdemo.example.com
overall_statusdry_run_completed
register_statusready_to_create
apply_statusdomain_not_found
dry_runyes
run_registeryes
run_applyyes
errors_count0
executed_at2026-04-05T14:41:29+08:00
handoff_stage待正式入库
+

状态说明

+
summarystatus=dry_run_completed, register=ready_to_create, apply=domain_not_found
handoff_summary高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。
handoff_next_step正式执行高层 run
handoff_next_commandphp scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal' --dry-run=0 --format=text
register_message目标域名尚未创建,当前样板已具备建站记录所需最小字段。
apply_message请先在站点表中创建目标域名,再应用 bootstrap 策略样板。
errors
+

文件路径

+
run_json/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/144129_demo-example-com.json
bundle_root/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144129_demo-example-com.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144129_demo-example-com.json new file mode 100644 index 0000000..ac3dd3a --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144129_demo-example-com.json @@ -0,0 +1,31 @@ +{ + "run_name": "144129_demo-example-com", + "detail_slug": "144129_demo-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/144129_demo-example-com.json", + "host": "demo.example.com", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal", + "bundle_detail_slug": "demo-example-com", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved/demo-core-batch1.manifest.json", + "manifest_name": "demo-core-batch1", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy", + "base_url": "https://demo.example.com", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "ready_to_create", + "register_message": "目标域名尚未创建,当前样板已具备建站记录所需最小字段。", + "apply_status": "domain_not_found", + "apply_message": "请先在站点表中创建目标域名,再应用 bootstrap 策略样板。", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-05T14:41:29+08:00", + "updated_at": "2026-04-05T14:41:29+08:00", + "summary": "status=dry_run_completed, register=ready_to_create, apply=domain_not_found", + "handoff_stage_code": "ready_to_register", + "handoff_stage_label": "待正式入库", + "handoff_summary": "高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal' --dry-run=0 --format=text" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144204_chuanjiafeng-net.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144204_chuanjiafeng-net.html new file mode 100644 index 0000000..da983c5 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144204_chuanjiafeng-net.html @@ -0,0 +1,19 @@ + + + + +Bootstrap Run Detail + + + +

返回启动包运行记录 | 查看值班入口 | 查看启动包接手队列 | 查看值班待办 | 返回统一门户首页 | 查看新域名上线 SOP

+

返回对应 bundle 详情

+

144204_chuanjiafeng-net

+

状态摘要

+
run_name144204_chuanjiafeng-net
hostchuanjiafeng.net
overall_statusdry_run_completed
register_statusdomain_exists
apply_statusdry_run
dry_runyes
run_registeryes
run_applyyes
errors_count0
executed_at2026-04-05T14:42:04+08:00
handoff_stage待正式应用
+

状态说明

+
summarystatus=dry_run_completed, register=domain_exists, apply=dry_run
handoff_summary高层 dry-run 已确认域名可继续 apply,下一步应正式执行 bootstrap run。
handoff_next_step正式执行高层 run
handoff_next_commandphp scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact' --dry-run=0 --format=text
register_message目标域名已存在,可继续执行 SEO 策略 apply。
apply_message
errors
+

文件路径

+
run_json/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/144204_chuanjiafeng-net.json
bundle_root/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144204_chuanjiafeng-net.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144204_chuanjiafeng-net.json new file mode 100644 index 0000000..715e180 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144204_chuanjiafeng-net.json @@ -0,0 +1,31 @@ +{ + "run_name": "144204_chuanjiafeng-net", + "detail_slug": "144204_chuanjiafeng-net", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/144204_chuanjiafeng-net.json", + "host": "chuanjiafeng.net", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact", + "bundle_detail_slug": "chuanjiafeng-net", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact/data/seo_copy_jobs/approved/20260405_153500.manifest.json", + "manifest_name": "20260405_153500", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact/data/seo_copy", + "base_url": "https://chuanjiafeng.net", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "domain_exists", + "register_message": "目标域名已存在,可继续执行 SEO 策略 apply。", + "apply_status": "dry_run", + "apply_message": "", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-05T14:42:04+08:00", + "updated_at": "2026-04-05T14:42:04+08:00", + "summary": "status=dry_run_completed, register=domain_exists, apply=dry_run", + "handoff_stage_code": "ready_to_apply", + "handoff_stage_label": "待正式应用", + "handoff_summary": "高层 dry-run 已确认域名可继续 apply,下一步应正式执行 bootstrap run。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact' --dry-run=0 --format=text" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144204_demo-example-com.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144204_demo-example-com.html new file mode 100644 index 0000000..cdab46c --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144204_demo-example-com.html @@ -0,0 +1,19 @@ + + + + +Bootstrap Run Detail + + + +

返回启动包运行记录 | 查看值班入口 | 查看启动包接手队列 | 查看值班待办 | 返回统一门户首页 | 查看新域名上线 SOP

+

返回对应 bundle 详情

+

144204_demo-example-com

+

状态摘要

+
run_name144204_demo-example-com
hostdemo.example.com
overall_statusdry_run_completed
register_statusready_to_create
apply_statusdomain_not_found
dry_runyes
run_registeryes
run_applyyes
errors_count0
executed_at2026-04-05T14:42:04+08:00
handoff_stage待正式入库
+

状态说明

+
summarystatus=dry_run_completed, register=ready_to_create, apply=domain_not_found
handoff_summary高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。
handoff_next_step正式执行高层 run
handoff_next_commandphp scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal' --dry-run=0 --format=text
register_message目标域名尚未创建,当前样板已具备建站记录所需最小字段。
apply_message请先在站点表中创建目标域名,再应用 bootstrap 策略样板。
errors
+

文件路径

+
run_json/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/144204_demo-example-com.json
bundle_root/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144204_demo-example-com.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144204_demo-example-com.json new file mode 100644 index 0000000..3935bae --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144204_demo-example-com.json @@ -0,0 +1,31 @@ +{ + "run_name": "144204_demo-example-com", + "detail_slug": "144204_demo-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/144204_demo-example-com.json", + "host": "demo.example.com", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal", + "bundle_detail_slug": "demo-example-com", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved/demo-core-batch1.manifest.json", + "manifest_name": "demo-core-batch1", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy", + "base_url": "https://demo.example.com", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "ready_to_create", + "register_message": "目标域名尚未创建,当前样板已具备建站记录所需最小字段。", + "apply_status": "domain_not_found", + "apply_message": "请先在站点表中创建目标域名,再应用 bootstrap 策略样板。", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-05T14:42:04+08:00", + "updated_at": "2026-04-05T14:42:04+08:00", + "summary": "status=dry_run_completed, register=ready_to_create, apply=domain_not_found", + "handoff_stage_code": "ready_to_register", + "handoff_stage_label": "待正式入库", + "handoff_summary": "高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal' --dry-run=0 --format=text" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144948_chuanjiafeng-net.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144948_chuanjiafeng-net.html new file mode 100644 index 0000000..99fc2c3 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144948_chuanjiafeng-net.html @@ -0,0 +1,19 @@ + + + + +Bootstrap Run Detail + + + +

返回启动包运行记录 | 查看值班入口 | 查看启动包接手队列 | 查看值班待办 | 返回统一门户首页 | 查看新域名上线 SOP

+

返回对应 bundle 详情

+

144948_chuanjiafeng-net

+

状态摘要

+
run_name144948_chuanjiafeng-net
hostchuanjiafeng.net
overall_statuscompleted
register_statusdomain_exists
apply_statusapplied
dry_runno
run_registeryes
run_applyyes
errors_count0
executed_at2026-04-05T14:49:48+08:00
handoff_stage可进入 Prepare
+

状态说明

+
summarystatus=completed, register=domain_exists, apply=applied
handoff_summary本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。
handoff_next_step继续执行 prepare
handoff_next_commandphp scripts/seo_copy_batch_prepare.php '20260405_153500' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact/data/seo_copy_jobs/approved'
register_message目标域名已存在,可继续执行 SEO 策略 apply。
apply_message
errors
+

文件路径

+
run_json/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/144948_chuanjiafeng-net.json
bundle_root/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144948_chuanjiafeng-net.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144948_chuanjiafeng-net.json new file mode 100644 index 0000000..bc5da6c --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144948_chuanjiafeng-net.json @@ -0,0 +1,31 @@ +{ + "run_name": "144948_chuanjiafeng-net", + "detail_slug": "144948_chuanjiafeng-net", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/144948_chuanjiafeng-net.json", + "host": "chuanjiafeng.net", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact", + "bundle_detail_slug": "chuanjiafeng-net", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact/data/seo_copy_jobs/approved/20260405_153500.manifest.json", + "manifest_name": "20260405_153500", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact/data/seo_copy", + "base_url": "https://chuanjiafeng.net", + "dry_run": false, + "run_register": true, + "run_apply": true, + "overall_status": "completed", + "register_status": "domain_exists", + "register_message": "目标域名已存在,可继续执行 SEO 策略 apply。", + "apply_status": "applied", + "apply_message": "", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-05T14:49:48+08:00", + "updated_at": "2026-04-05T14:49:48+08:00", + "summary": "status=completed, register=domain_exists, apply=applied", + "handoff_stage_code": "ready_for_prepare", + "handoff_stage_label": "可进入 Prepare", + "handoff_summary": "本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。", + "handoff_next_step": "继续执行 prepare", + "handoff_next_command": "php scripts/seo_copy_batch_prepare.php '20260405_153500' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact/data/seo_copy_jobs/approved'" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144952_traffic-supply-example-com.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144952_traffic-supply-example-com.html new file mode 100644 index 0000000..bcbedb5 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144952_traffic-supply-example-com.html @@ -0,0 +1,19 @@ + + + + +Bootstrap Run Detail + + + +

返回启动包运行记录 | 查看值班入口 | 查看启动包接手队列 | 查看值班待办 | 返回统一门户首页 | 查看新域名上线 SOP

+

返回对应 bundle 详情

+

144952_traffic-supply-example-com

+

状态摘要

+
run_name144952_traffic-supply-example-com
hosttraffic-supply.example.com
overall_statusdry_run_completed
register_statusready_to_create
apply_statusdomain_not_found
dry_runyes
run_registeryes
run_applyyes
errors_count0
executed_at2026-04-08T14:49:52+08:00
handoff_stage待正式入库
+

状态说明

+
summarystatus=dry_run_completed, register=ready_to_create, apply=domain_not_found
handoff_summary高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。
handoff_next_step正式执行高层 run
handoff_next_commandphp scripts/domain_bootstrap_run.php 'SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com' --dry-run=0 --format=text
register_message目标域名尚未创建,当前样板已具备建站记录所需最小字段。
apply_message请先在站点表中创建目标域名,再应用 bootstrap 策略样板。
errors
+

文件路径

+
run_json/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260408/144952_traffic-supply-example-com.json
bundle_rootSEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144952_traffic-supply-example-com.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144952_traffic-supply-example-com.json new file mode 100644 index 0000000..52765ff --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144952_traffic-supply-example-com.json @@ -0,0 +1,31 @@ +{ + "run_name": "144952_traffic-supply-example-com", + "detail_slug": "144952_traffic-supply-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260408/144952_traffic-supply-example-com.json", + "host": "traffic-supply.example.com", + "bundle_root": "SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com", + "bundle_detail_slug": "traffic-supply-example-com", + "manifest_path": "SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved/20260408_145449.manifest.json", + "manifest_name": "20260408_145449", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy", + "base_url": "https://traffic-supply.example.com", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "ready_to_create", + "register_message": "目标域名尚未创建,当前样板已具备建站记录所需最小字段。", + "apply_status": "domain_not_found", + "apply_message": "请先在站点表中创建目标域名,再应用 bootstrap 策略样板。", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-08T14:49:52+08:00", + "updated_at": "2026-04-08T14:49:52+08:00", + "summary": "status=dry_run_completed, register=ready_to_create, apply=domain_not_found", + "handoff_stage_code": "ready_to_register", + "handoff_stage_label": "待正式入库", + "handoff_summary": "高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php 'SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com' --dry-run=0 --format=text" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144957_traffic-supply-example-com.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144957_traffic-supply-example-com.html new file mode 100644 index 0000000..67456e2 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144957_traffic-supply-example-com.html @@ -0,0 +1,19 @@ + + + + +Bootstrap Run Detail + + + +

返回启动包运行记录 | 查看值班入口 | 查看启动包接手队列 | 查看值班待办 | 返回统一门户首页 | 查看新域名上线 SOP

+

返回对应 bundle 详情

+

144957_traffic-supply-example-com

+

状态摘要

+
run_name144957_traffic-supply-example-com
hosttraffic-supply.example.com
overall_statuscompleted
register_statuscreated
apply_statusapplied
dry_runno
run_registeryes
run_applyyes
errors_count0
executed_at2026-04-08T14:49:57+08:00
handoff_stage可进入 Prepare
+

状态说明

+
summarystatus=completed, register=created, apply=applied
handoff_summary本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。
handoff_next_step继续执行 prepare
handoff_next_commandphp scripts/seo_copy_batch_prepare.php '20260408_145449' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved'
register_message目标域名尚未创建,当前样板已具备建站记录所需最小字段。
apply_message
errors
+

文件路径

+
run_json/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260408/144957_traffic-supply-example-com.json
bundle_rootSEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144957_traffic-supply-example-com.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144957_traffic-supply-example-com.json new file mode 100644 index 0000000..359382c --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/144957_traffic-supply-example-com.json @@ -0,0 +1,31 @@ +{ + "run_name": "144957_traffic-supply-example-com", + "detail_slug": "144957_traffic-supply-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260408/144957_traffic-supply-example-com.json", + "host": "traffic-supply.example.com", + "bundle_root": "SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com", + "bundle_detail_slug": "traffic-supply-example-com", + "manifest_path": "SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved/20260408_145449.manifest.json", + "manifest_name": "20260408_145449", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy", + "base_url": "https://traffic-supply.example.com", + "dry_run": false, + "run_register": true, + "run_apply": true, + "overall_status": "completed", + "register_status": "created", + "register_message": "目标域名尚未创建,当前样板已具备建站记录所需最小字段。", + "apply_status": "applied", + "apply_message": "", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-08T14:49:57+08:00", + "updated_at": "2026-04-08T14:49:57+08:00", + "summary": "status=completed, register=created, apply=applied", + "handoff_stage_code": "ready_for_prepare", + "handoff_stage_label": "可进入 Prepare", + "handoff_summary": "本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。", + "handoff_next_step": "继续执行 prepare", + "handoff_next_command": "php scripts/seo_copy_batch_prepare.php '20260408_145449' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved'" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/151309_video-test-com.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/151309_video-test-com.html new file mode 100644 index 0000000..4084992 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/151309_video-test-com.html @@ -0,0 +1,19 @@ + + + + +Bootstrap Run Detail + + + +

返回启动包运行记录 | 查看值班入口 | 查看启动包接手队列 | 查看值班待办 | 返回统一门户首页 | 查看新域名上线 SOP

+

返回对应 bundle 详情

+

151309_video-test-com

+

状态摘要

+
run_name151309_video-test-com
hostvideo-test.com
overall_statusdry_run_completed
register_statusready_to_create
apply_statusdomain_not_found
dry_runyes
run_registeryes
run_applyyes
errors_count0
executed_at2026-04-08T15:13:09+08:00
handoff_stage待正式入库
+

状态说明

+
summarystatus=dry_run_completed, register=ready_to_create, apply=domain_not_found
handoff_summary高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。
handoff_next_step正式执行高层 run
handoff_next_commandphp scripts/domain_bootstrap_run.php 'SEONexus/code/storage/domain_bootstrap_bundles/video-test-next-stage-a1' --dry-run=0 --format=text
register_message目标域名尚未创建,当前样板已具备建站记录所需最小字段。
apply_message请先在站点表中创建目标域名,再应用 bootstrap 策略样板。
errors
+

文件路径

+
run_json/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260408/151309_video-test-com.json
bundle_rootSEONexus/code/storage/domain_bootstrap_bundles/video-test-next-stage-a1
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/151309_video-test-com.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/151309_video-test-com.json new file mode 100644 index 0000000..06f0ce1 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/151309_video-test-com.json @@ -0,0 +1,31 @@ +{ + "run_name": "151309_video-test-com", + "detail_slug": "151309_video-test-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260408/151309_video-test-com.json", + "host": "video-test.com", + "bundle_root": "SEONexus/code/storage/domain_bootstrap_bundles/video-test-next-stage-a1", + "bundle_detail_slug": "video-test-com", + "manifest_path": "SEONexus/code/storage/domain_bootstrap_bundles/video-test-next-stage-a1/data/seo_copy_jobs/approved/20260408_145449.manifest.json", + "manifest_name": "20260408_145449", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/video-test-example-com/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/video-test-example-com/data/seo_copy", + "base_url": "https://video-test.com", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "ready_to_create", + "register_message": "目标域名尚未创建,当前样板已具备建站记录所需最小字段。", + "apply_status": "domain_not_found", + "apply_message": "请先在站点表中创建目标域名,再应用 bootstrap 策略样板。", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-08T15:13:09+08:00", + "updated_at": "2026-04-08T15:13:09+08:00", + "summary": "status=dry_run_completed, register=ready_to_create, apply=domain_not_found", + "handoff_stage_code": "ready_to_register", + "handoff_stage_label": "待正式入库", + "handoff_summary": "高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php 'SEONexus/code/storage/domain_bootstrap_bundles/video-test-next-stage-a1' --dry-run=0 --format=text" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/151314_video-test-com.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/151314_video-test-com.html new file mode 100644 index 0000000..df08cc9 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/151314_video-test-com.html @@ -0,0 +1,19 @@ + + + + +Bootstrap Run Detail + + + +

返回启动包运行记录 | 查看值班入口 | 查看启动包接手队列 | 查看值班待办 | 返回统一门户首页 | 查看新域名上线 SOP

+

返回对应 bundle 详情

+

151314_video-test-com

+

状态摘要

+
run_name151314_video-test-com
hostvideo-test.com
overall_statuscompleted
register_statuscreated
apply_statusapplied
dry_runno
run_registeryes
run_applyyes
errors_count0
executed_at2026-04-08T15:13:14+08:00
handoff_stage可进入 Prepare
+

状态说明

+
summarystatus=completed, register=created, apply=applied
handoff_summary本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。
handoff_next_step继续执行 prepare
handoff_next_commandphp scripts/seo_copy_batch_prepare.php '20260408_145449' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/video-test-example-com/data/seo_copy_jobs/approved'
register_message目标域名尚未创建,当前样板已具备建站记录所需最小字段。
apply_message
errors
+

文件路径

+
run_json/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260408/151314_video-test-com.json
bundle_rootSEONexus/code/storage/domain_bootstrap_bundles/video-test-next-stage-a1
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/151314_video-test-com.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/151314_video-test-com.json new file mode 100644 index 0000000..5dd231f --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/151314_video-test-com.json @@ -0,0 +1,31 @@ +{ + "run_name": "151314_video-test-com", + "detail_slug": "151314_video-test-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260408/151314_video-test-com.json", + "host": "video-test.com", + "bundle_root": "SEONexus/code/storage/domain_bootstrap_bundles/video-test-next-stage-a1", + "bundle_detail_slug": "video-test-com", + "manifest_path": "SEONexus/code/storage/domain_bootstrap_bundles/video-test-next-stage-a1/data/seo_copy_jobs/approved/20260408_145449.manifest.json", + "manifest_name": "20260408_145449", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/video-test-example-com/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/video-test-example-com/data/seo_copy", + "base_url": "https://video-test.com", + "dry_run": false, + "run_register": true, + "run_apply": true, + "overall_status": "completed", + "register_status": "created", + "register_message": "目标域名尚未创建,当前样板已具备建站记录所需最小字段。", + "apply_status": "applied", + "apply_message": "", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-08T15:13:14+08:00", + "updated_at": "2026-04-08T15:13:14+08:00", + "summary": "status=completed, register=created, apply=applied", + "handoff_stage_code": "ready_for_prepare", + "handoff_stage_label": "可进入 Prepare", + "handoff_summary": "本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。", + "handoff_next_step": "继续执行 prepare", + "handoff_next_command": "php scripts/seo_copy_batch_prepare.php '20260408_145449' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/video-test-example-com/data/seo_copy_jobs/approved'" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/154823_demo-example-com.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/154823_demo-example-com.html new file mode 100644 index 0000000..7e97b45 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/154823_demo-example-com.html @@ -0,0 +1,19 @@ + + + + +Bootstrap Run Detail + + + +

返回启动包运行记录 | 查看值班入口 | 查看启动包接手队列 | 查看值班待办 | 返回统一门户首页 | 查看新域名上线 SOP

+

返回对应 bundle 详情

+

154823_demo-example-com

+

状态摘要

+
run_name154823_demo-example-com
hostdemo.example.com
overall_statusdry_run_completed
register_statusready_to_create
apply_statusdomain_not_found
dry_runyes
run_registeryes
run_applyyes
errors_count0
executed_at2026-04-05T15:48:23+08:00
handoff_stage待正式入库
+

状态说明

+
summarystatus=dry_run_completed, register=ready_to_create, apply=domain_not_found
handoff_summary高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。
handoff_next_step正式执行高层 run
handoff_next_commandphp scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal' --dry-run=0 --format=text
register_message目标域名尚未创建,当前样板已具备建站记录所需最小字段。
apply_message请先在站点表中创建目标域名,再应用 bootstrap 策略样板。
errors
+

文件路径

+
run_json/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/154823_demo-example-com.json
bundle_root/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/154823_demo-example-com.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/154823_demo-example-com.json new file mode 100644 index 0000000..ea34688 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/154823_demo-example-com.json @@ -0,0 +1,31 @@ +{ + "run_name": "154823_demo-example-com", + "detail_slug": "154823_demo-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/154823_demo-example-com.json", + "host": "demo.example.com", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal", + "bundle_detail_slug": "demo-example-com", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved/demo-core-batch1.manifest.json", + "manifest_name": "demo-core-batch1", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy", + "base_url": "https://demo.example.com", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "ready_to_create", + "register_message": "目标域名尚未创建,当前样板已具备建站记录所需最小字段。", + "apply_status": "domain_not_found", + "apply_message": "请先在站点表中创建目标域名,再应用 bootstrap 策略样板。", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-05T15:48:23+08:00", + "updated_at": "2026-04-05T15:48:23+08:00", + "summary": "status=dry_run_completed, register=ready_to_create, apply=domain_not_found", + "handoff_stage_code": "ready_to_register", + "handoff_stage_label": "待正式入库", + "handoff_summary": "高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal' --dry-run=0 --format=text" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/155925_demo-example-com.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/155925_demo-example-com.html new file mode 100644 index 0000000..5ead86f --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/155925_demo-example-com.html @@ -0,0 +1,19 @@ + + + + +Bootstrap Run Detail + + + +

返回启动包运行记录 | 查看值班入口 | 查看启动包接手队列 | 查看值班待办 | 返回统一门户首页 | 查看新域名上线 SOP

+

返回对应 bundle 详情

+

155925_demo-example-com

+

状态摘要

+
run_name155925_demo-example-com
hostdemo.example.com
overall_statusdry_run_completed
register_statusready_to_create
apply_statusdomain_not_found
dry_runyes
run_registeryes
run_applyyes
errors_count0
executed_at2026-04-05T15:59:25+08:00
handoff_stage待正式入库
+

状态说明

+
summarystatus=dry_run_completed, register=ready_to_create, apply=domain_not_found
handoff_summary高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。
handoff_next_step正式执行高层 run
handoff_next_commandphp scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal' --dry-run=0 --format=text
register_message目标域名尚未创建,当前样板已具备建站记录所需最小字段。
apply_message请先在站点表中创建目标域名,再应用 bootstrap 策略样板。
errors
+

文件路径

+
run_json/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/155925_demo-example-com.json
bundle_root/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/155925_demo-example-com.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/155925_demo-example-com.json new file mode 100644 index 0000000..366f535 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/155925_demo-example-com.json @@ -0,0 +1,31 @@ +{ + "run_name": "155925_demo-example-com", + "detail_slug": "155925_demo-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/155925_demo-example-com.json", + "host": "demo.example.com", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal", + "bundle_detail_slug": "demo-example-com", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved/demo-core-batch1.manifest.json", + "manifest_name": "demo-core-batch1", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy", + "base_url": "https://demo.example.com", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "ready_to_create", + "register_message": "目标域名尚未创建,当前样板已具备建站记录所需最小字段。", + "apply_status": "domain_not_found", + "apply_message": "请先在站点表中创建目标域名,再应用 bootstrap 策略样板。", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-05T15:59:25+08:00", + "updated_at": "2026-04-05T15:59:25+08:00", + "summary": "status=dry_run_completed, register=ready_to_create, apply=domain_not_found", + "handoff_stage_code": "ready_to_register", + "handoff_stage_label": "待正式入库", + "handoff_summary": "高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal' --dry-run=0 --format=text" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/155926_demo-example-com.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/155926_demo-example-com.html new file mode 100644 index 0000000..226c7df --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/155926_demo-example-com.html @@ -0,0 +1,19 @@ + + + + +Bootstrap Run Detail + + + +

返回启动包运行记录 | 查看值班入口 | 查看启动包接手队列 | 查看值班待办 | 返回统一门户首页 | 查看新域名上线 SOP

+

返回对应 bundle 详情

+

155926_demo-example-com

+

状态摘要

+
run_name155926_demo-example-com
hostdemo.example.com
overall_statusdry_run_completed
register_statusready_to_create
apply_statusdomain_not_found
dry_runyes
run_registeryes
run_applyyes
errors_count0
executed_at2026-04-05T15:59:26+08:00
handoff_stage待正式入库
+

状态说明

+
summarystatus=dry_run_completed, register=ready_to_create, apply=domain_not_found
handoff_summary高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。
handoff_next_step正式执行高层 run
handoff_next_commandphp scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal' --dry-run=0 --format=text
register_message目标域名尚未创建,当前样板已具备建站记录所需最小字段。
apply_message请先在站点表中创建目标域名,再应用 bootstrap 策略样板。
errors
+

文件路径

+
run_json/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/155926_demo-example-com.json
bundle_root/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/155926_demo-example-com.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/155926_demo-example-com.json new file mode 100644 index 0000000..328eb94 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/155926_demo-example-com.json @@ -0,0 +1,31 @@ +{ + "run_name": "155926_demo-example-com", + "detail_slug": "155926_demo-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/155926_demo-example-com.json", + "host": "demo.example.com", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal", + "bundle_detail_slug": "demo-example-com", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved/demo-core-batch1.manifest.json", + "manifest_name": "demo-core-batch1", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy", + "base_url": "https://demo.example.com", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "ready_to_create", + "register_message": "目标域名尚未创建,当前样板已具备建站记录所需最小字段。", + "apply_status": "domain_not_found", + "apply_message": "请先在站点表中创建目标域名,再应用 bootstrap 策略样板。", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-05T15:59:26+08:00", + "updated_at": "2026-04-05T15:59:26+08:00", + "summary": "status=dry_run_completed, register=ready_to_create, apply=domain_not_found", + "handoff_stage_code": "ready_to_register", + "handoff_stage_label": "待正式入库", + "handoff_summary": "高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal' --dry-run=0 --format=text" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/201626_chuanjiafeng-net.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/201626_chuanjiafeng-net.html new file mode 100644 index 0000000..ee6c70d --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/201626_chuanjiafeng-net.html @@ -0,0 +1,19 @@ + + + + +Bootstrap Run Detail + + + +

返回启动包运行记录 | 查看值班入口 | 查看启动包接手队列 | 查看值班待办 | 返回统一门户首页 | 查看新域名上线 SOP

+

返回对应 bundle 详情

+

201626_chuanjiafeng-net

+

状态摘要

+
run_name201626_chuanjiafeng-net
hostchuanjiafeng.net
overall_statusdry_run_completed
register_statusdomain_exists
apply_statusdry_run
dry_runyes
run_registeryes
run_applyyes
errors_count0
executed_at2026-04-07T20:16:26+08:00
handoff_stage待正式应用
+

状态说明

+
summarystatus=dry_run_completed, register=domain_exists, apply=dry_run
handoff_summary高层 dry-run 已确认域名可继续 apply,下一步应正式执行 bootstrap run。
handoff_next_step正式执行高层 run
handoff_next_commandphp scripts/domain_bootstrap_run.php 'SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact' --dry-run=0 --format=text
register_message目标域名已存在,可继续执行 SEO 策略 apply。
apply_message
errors
+

文件路径

+
run_json/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260407/201626_chuanjiafeng-net.json
bundle_rootSEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/201626_chuanjiafeng-net.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/201626_chuanjiafeng-net.json new file mode 100644 index 0000000..39e6eb8 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/201626_chuanjiafeng-net.json @@ -0,0 +1,31 @@ +{ + "run_name": "201626_chuanjiafeng-net", + "detail_slug": "201626_chuanjiafeng-net", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260407/201626_chuanjiafeng-net.json", + "host": "chuanjiafeng.net", + "bundle_root": "SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact", + "bundle_detail_slug": "chuanjiafeng-net", + "manifest_path": "SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact/data/seo_copy_jobs/approved/20260405_153500.manifest.json", + "manifest_name": "20260405_153500", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact/data/seo_copy", + "base_url": "https://chuanjiafeng.net", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "domain_exists", + "register_message": "目标域名已存在,可继续执行 SEO 策略 apply。", + "apply_status": "dry_run", + "apply_message": "", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-07T20:16:26+08:00", + "updated_at": "2026-04-07T20:16:26+08:00", + "summary": "status=dry_run_completed, register=domain_exists, apply=dry_run", + "handoff_stage_code": "ready_to_apply", + "handoff_stage_label": "待正式应用", + "handoff_summary": "高层 dry-run 已确认域名可继续 apply,下一步应正式执行 bootstrap run。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php 'SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact' --dry-run=0 --format=text" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/201915_expand-supply-example-com.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/201915_expand-supply-example-com.html new file mode 100644 index 0000000..aa8a997 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/201915_expand-supply-example-com.html @@ -0,0 +1,19 @@ + + + + +Bootstrap Run Detail + + + +

返回启动包运行记录 | 查看值班入口 | 查看启动包接手队列 | 查看值班待办 | 返回统一门户首页 | 查看新域名上线 SOP

+

返回对应 bundle 详情

+

201915_expand-supply-example-com

+

状态摘要

+
run_name201915_expand-supply-example-com
host*.expand-supply.example.com
overall_statusdry_run_needs_attention
register_statustemplate_not_found
apply_statusdomain_not_found
dry_runyes
run_registeryes
run_applyyes
errors_count0
executed_at2026-04-07T20:19:15+08:00
handoff_stage需关注
+

状态说明

+
summarystatus=dry_run_needs_attention, register=template_not_found, apply=domain_not_found
handoff_summary当前 bootstrap run 已出现错误或异常状态,建议先重跑 dry-run 并核对 register/apply 明细。
handoff_next_step先重跑高层 dry-run
handoff_next_commandphp scripts/domain_bootstrap_run.php 'SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard' --dry-run=1 --format=text
register_message模板不存在,无法创建站点记录。
apply_message请先在站点表中创建目标域名,再应用 bootstrap 策略样板。
errors
+

文件路径

+
run_json/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260407/201915_expand-supply-example-com.json
bundle_rootSEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/201915_expand-supply-example-com.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/201915_expand-supply-example-com.json new file mode 100644 index 0000000..4f818bf --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/201915_expand-supply-example-com.json @@ -0,0 +1,31 @@ +{ + "run_name": "201915_expand-supply-example-com", + "detail_slug": "201915_expand-supply-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260407/201915_expand-supply-example-com.json", + "host": "*.expand-supply.example.com", + "bundle_root": "SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard", + "bundle_detail_slug": "expand-supply-example-com", + "manifest_path": "SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard/data/seo_copy_jobs/approved/expand-supply-core-batch1.manifest.json", + "manifest_name": "expand-supply-core-batch1", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard/data/seo_copy", + "base_url": "https://*.expand-supply.example.com", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_needs_attention", + "register_status": "template_not_found", + "register_message": "模板不存在,无法创建站点记录。", + "apply_status": "domain_not_found", + "apply_message": "请先在站点表中创建目标域名,再应用 bootstrap 策略样板。", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-07T20:19:15+08:00", + "updated_at": "2026-04-07T20:19:15+08:00", + "summary": "status=dry_run_needs_attention, register=template_not_found, apply=domain_not_found", + "handoff_stage_code": "needs_attention", + "handoff_stage_label": "需关注", + "handoff_summary": "当前 bootstrap run 已出现错误或异常状态,建议先重跑 dry-run 并核对 register/apply 明细。", + "handoff_next_step": "先重跑高层 dry-run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php 'SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard' --dry-run=1 --format=text" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/201921_expand-supply-example-com.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/201921_expand-supply-example-com.html new file mode 100644 index 0000000..34eec11 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/201921_expand-supply-example-com.html @@ -0,0 +1,19 @@ + + + + +Bootstrap Run Detail + + + +

返回启动包运行记录 | 查看值班入口 | 查看启动包接手队列 | 查看值班待办 | 返回统一门户首页 | 查看新域名上线 SOP

+

返回对应 bundle 详情

+

201921_expand-supply-example-com

+

状态摘要

+
run_name201921_expand-supply-example-com
host*.expand-supply.example.com
overall_statusdry_run_completed
register_statusready_to_create
apply_statusdomain_not_found
dry_runyes
run_registeryes
run_applyyes
errors_count0
executed_at2026-04-07T20:19:21+08:00
handoff_stage待正式入库
+

状态说明

+
summarystatus=dry_run_completed, register=ready_to_create, apply=domain_not_found
handoff_summary高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。
handoff_next_step正式执行高层 run
handoff_next_commandphp scripts/domain_bootstrap_run.php 'SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard' --dry-run=0 --format=text
register_message目标域名尚未创建,当前样板已具备建站记录所需最小字段。
apply_message请先在站点表中创建目标域名,再应用 bootstrap 策略样板。
errors
+

文件路径

+
run_json/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260407/201921_expand-supply-example-com.json
bundle_rootSEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/201921_expand-supply-example-com.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/201921_expand-supply-example-com.json new file mode 100644 index 0000000..9e21ce2 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/201921_expand-supply-example-com.json @@ -0,0 +1,31 @@ +{ + "run_name": "201921_expand-supply-example-com", + "detail_slug": "201921_expand-supply-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260407/201921_expand-supply-example-com.json", + "host": "*.expand-supply.example.com", + "bundle_root": "SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard", + "bundle_detail_slug": "expand-supply-example-com", + "manifest_path": "SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard/data/seo_copy_jobs/approved/expand-supply-core-batch1.manifest.json", + "manifest_name": "expand-supply-core-batch1", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard/data/seo_copy", + "base_url": "https://*.expand-supply.example.com", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "ready_to_create", + "register_message": "目标域名尚未创建,当前样板已具备建站记录所需最小字段。", + "apply_status": "domain_not_found", + "apply_message": "请先在站点表中创建目标域名,再应用 bootstrap 策略样板。", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-07T20:19:21+08:00", + "updated_at": "2026-04-07T20:19:21+08:00", + "summary": "status=dry_run_completed, register=ready_to_create, apply=domain_not_found", + "handoff_stage_code": "ready_to_register", + "handoff_stage_label": "待正式入库", + "handoff_summary": "高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php 'SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard' --dry-run=0 --format=text" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/201958_expand-supply-example-com.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/201958_expand-supply-example-com.html new file mode 100644 index 0000000..0ca7701 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/201958_expand-supply-example-com.html @@ -0,0 +1,19 @@ + + + + +Bootstrap Run Detail + + + +

返回启动包运行记录 | 查看值班入口 | 查看启动包接手队列 | 查看值班待办 | 返回统一门户首页 | 查看新域名上线 SOP

+

返回对应 bundle 详情

+

201958_expand-supply-example-com

+

状态摘要

+
run_name201958_expand-supply-example-com
host*.expand-supply.example.com
overall_statuscompleted
register_statuscreated
apply_statusapplied
dry_runno
run_registeryes
run_applyyes
errors_count0
executed_at2026-04-07T20:19:58+08:00
handoff_stage可进入 Prepare
+

状态说明

+
summarystatus=completed, register=created, apply=applied
handoff_summary本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。
handoff_next_step继续执行 prepare
handoff_next_commandphp scripts/seo_copy_batch_prepare.php 'expand-supply-core-batch1' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard/data/seo_copy_jobs/approved'
register_message目标域名尚未创建,当前样板已具备建站记录所需最小字段。
apply_message
errors
+

文件路径

+
run_json/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260407/201958_expand-supply-example-com.json
bundle_root/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/201958_expand-supply-example-com.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/201958_expand-supply-example-com.json new file mode 100644 index 0000000..f729558 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/201958_expand-supply-example-com.json @@ -0,0 +1,31 @@ +{ + "run_name": "201958_expand-supply-example-com", + "detail_slug": "201958_expand-supply-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260407/201958_expand-supply-example-com.json", + "host": "*.expand-supply.example.com", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard", + "bundle_detail_slug": "expand-supply-example-com", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard/data/seo_copy_jobs/approved/expand-supply-core-batch1.manifest.json", + "manifest_name": "expand-supply-core-batch1", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard/data/seo_copy", + "base_url": "https://*.expand-supply.example.com", + "dry_run": false, + "run_register": true, + "run_apply": true, + "overall_status": "completed", + "register_status": "created", + "register_message": "目标域名尚未创建,当前样板已具备建站记录所需最小字段。", + "apply_status": "applied", + "apply_message": "", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-07T20:19:58+08:00", + "updated_at": "2026-04-07T20:19:58+08:00", + "summary": "status=completed, register=created, apply=applied", + "handoff_stage_code": "ready_for_prepare", + "handoff_stage_label": "可进入 Prepare", + "handoff_summary": "本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。", + "handoff_next_step": "继续执行 prepare", + "handoff_next_command": "php scripts/seo_copy_batch_prepare.php 'expand-supply-core-batch1' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard/data/seo_copy_jobs/approved'" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/202301_expand-supply-example-com.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/202301_expand-supply-example-com.html new file mode 100644 index 0000000..064f296 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/202301_expand-supply-example-com.html @@ -0,0 +1,19 @@ + + + + +Bootstrap Run Detail + + + +

返回启动包运行记录 | 查看值班入口 | 查看启动包接手队列 | 查看值班待办 | 返回统一门户首页 | 查看新域名上线 SOP

+

返回对应 bundle 详情

+

202301_expand-supply-example-com

+

状态摘要

+
run_name202301_expand-supply-example-com
host*.expand-supply.example.com
overall_statuscompleted
register_statusdomain_exists
apply_statusapplied
dry_runno
run_registeryes
run_applyyes
errors_count0
executed_at2026-04-07T20:23:01+08:00
handoff_stage可进入 Prepare
+

状态说明

+
summarystatus=completed, register=domain_exists, apply=applied
handoff_summary本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。
handoff_next_step继续执行 prepare
handoff_next_commandphp scripts/seo_copy_batch_prepare.php 'expand-supply-core-batch1' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard/data/seo_copy_jobs/approved'
register_message目标域名已存在,可继续执行 SEO 策略 apply。
apply_message
errors
+

文件路径

+
run_json/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260407/202301_expand-supply-example-com.json
bundle_root/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/202301_expand-supply-example-com.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/202301_expand-supply-example-com.json new file mode 100644 index 0000000..5186f06 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/202301_expand-supply-example-com.json @@ -0,0 +1,31 @@ +{ + "run_name": "202301_expand-supply-example-com", + "detail_slug": "202301_expand-supply-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260407/202301_expand-supply-example-com.json", + "host": "*.expand-supply.example.com", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard", + "bundle_detail_slug": "expand-supply-example-com", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard/data/seo_copy_jobs/approved/expand-supply-core-batch1.manifest.json", + "manifest_name": "expand-supply-core-batch1", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard/data/seo_copy", + "base_url": "https://*.expand-supply.example.com", + "dry_run": false, + "run_register": true, + "run_apply": true, + "overall_status": "completed", + "register_status": "domain_exists", + "register_message": "目标域名已存在,可继续执行 SEO 策略 apply。", + "apply_status": "applied", + "apply_message": "", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-07T20:23:01+08:00", + "updated_at": "2026-04-07T20:23:01+08:00", + "summary": "status=completed, register=domain_exists, apply=applied", + "handoff_stage_code": "ready_for_prepare", + "handoff_stage_label": "可进入 Prepare", + "handoff_summary": "本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。", + "handoff_next_step": "继续执行 prepare", + "handoff_next_command": "php scripts/seo_copy_batch_prepare.php 'expand-supply-core-batch1' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard/data/seo_copy_jobs/approved'" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/202349_expand-supply-example-com.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/202349_expand-supply-example-com.html new file mode 100644 index 0000000..b082d08 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/202349_expand-supply-example-com.html @@ -0,0 +1,19 @@ + + + + +Bootstrap Run Detail + + + +

返回启动包运行记录 | 查看值班入口 | 查看启动包接手队列 | 查看值班待办 | 返回统一门户首页 | 查看新域名上线 SOP

+

返回对应 bundle 详情

+

202349_expand-supply-example-com

+

状态摘要

+
run_name202349_expand-supply-example-com
host*.expand-supply.example.com
overall_statuscompleted
register_statusdomain_exists
apply_statusapplied
dry_runno
run_registeryes
run_applyyes
errors_count0
executed_at2026-04-07T20:23:49+08:00
handoff_stage可进入 Prepare
+

状态说明

+
summarystatus=completed, register=domain_exists, apply=applied
handoff_summary本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。
handoff_next_step继续执行 prepare
handoff_next_commandphp scripts/seo_copy_batch_prepare.php 'expand-supply-core-batch1' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard/data/seo_copy_jobs/approved'
register_message目标域名已存在,可继续执行 SEO 策略 apply。
apply_message
errors
+

文件路径

+
run_json/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260407/202349_expand-supply-example-com.json
bundle_root/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/202349_expand-supply-example-com.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/202349_expand-supply-example-com.json new file mode 100644 index 0000000..da6f4a8 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/202349_expand-supply-example-com.json @@ -0,0 +1,31 @@ +{ + "run_name": "202349_expand-supply-example-com", + "detail_slug": "202349_expand-supply-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260407/202349_expand-supply-example-com.json", + "host": "*.expand-supply.example.com", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard", + "bundle_detail_slug": "expand-supply-example-com", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard/data/seo_copy_jobs/approved/expand-supply-core-batch1.manifest.json", + "manifest_name": "expand-supply-core-batch1", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard/data/seo_copy", + "base_url": "https://*.expand-supply.example.com", + "dry_run": false, + "run_register": true, + "run_apply": true, + "overall_status": "completed", + "register_status": "domain_exists", + "register_message": "目标域名已存在,可继续执行 SEO 策略 apply。", + "apply_status": "applied", + "apply_message": "", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-07T20:23:49+08:00", + "updated_at": "2026-04-07T20:23:49+08:00", + "summary": "status=completed, register=domain_exists, apply=applied", + "handoff_stage_code": "ready_for_prepare", + "handoff_stage_label": "可进入 Prepare", + "handoff_summary": "本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。", + "handoff_next_step": "继续执行 prepare", + "handoff_next_command": "php scripts/seo_copy_batch_prepare.php 'expand-supply-core-batch1' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard/data/seo_copy_jobs/approved'" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/202440_expand-supply-example-com.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/202440_expand-supply-example-com.html new file mode 100644 index 0000000..6c5a229 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/202440_expand-supply-example-com.html @@ -0,0 +1,19 @@ + + + + +Bootstrap Run Detail + + + +

返回启动包运行记录 | 查看值班入口 | 查看启动包接手队列 | 查看值班待办 | 返回统一门户首页 | 查看新域名上线 SOP

+

返回对应 bundle 详情

+

202440_expand-supply-example-com

+

状态摘要

+
run_name202440_expand-supply-example-com
host*.expand-supply.example.com
overall_statuscompleted
register_statusdomain_exists
apply_statusapplied
dry_runno
run_registeryes
run_applyyes
errors_count0
executed_at2026-04-07T20:24:40+08:00
handoff_stage可进入 Prepare
+

状态说明

+
summarystatus=completed, register=domain_exists, apply=applied
handoff_summary本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。
handoff_next_step继续执行 prepare
handoff_next_commandphp scripts/seo_copy_batch_prepare.php 'expand-supply-core-batch1' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard/data/seo_copy_jobs/approved'
register_message目标域名已存在,可继续执行 SEO 策略 apply。
apply_message
errors
+

文件路径

+
run_json/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260407/202440_expand-supply-example-com.json
bundle_root/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/202440_expand-supply-example-com.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/202440_expand-supply-example-com.json new file mode 100644 index 0000000..553ef5a --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/202440_expand-supply-example-com.json @@ -0,0 +1,31 @@ +{ + "run_name": "202440_expand-supply-example-com", + "detail_slug": "202440_expand-supply-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260407/202440_expand-supply-example-com.json", + "host": "*.expand-supply.example.com", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard", + "bundle_detail_slug": "expand-supply-example-com", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard/data/seo_copy_jobs/approved/expand-supply-core-batch1.manifest.json", + "manifest_name": "expand-supply-core-batch1", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard/data/seo_copy", + "base_url": "https://*.expand-supply.example.com", + "dry_run": false, + "run_register": true, + "run_apply": true, + "overall_status": "completed", + "register_status": "domain_exists", + "register_message": "目标域名已存在,可继续执行 SEO 策略 apply。", + "apply_status": "applied", + "apply_message": "", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-07T20:24:40+08:00", + "updated_at": "2026-04-07T20:24:40+08:00", + "summary": "status=completed, register=domain_exists, apply=applied", + "handoff_stage_code": "ready_for_prepare", + "handoff_stage_label": "可进入 Prepare", + "handoff_summary": "本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。", + "handoff_next_step": "继续执行 prepare", + "handoff_next_command": "php scripts/seo_copy_batch_prepare.php 'expand-supply-core-batch1' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard/data/seo_copy_jobs/approved'" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/204003_chuanjiafeng-net.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/204003_chuanjiafeng-net.html new file mode 100644 index 0000000..737620f --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/204003_chuanjiafeng-net.html @@ -0,0 +1,19 @@ + + + + +Bootstrap Run Detail + + + +

返回启动包运行记录 | 查看值班入口 | 查看启动包接手队列 | 查看值班待办 | 返回统一门户首页 | 查看新域名上线 SOP

+

返回对应 bundle 详情

+

204003_chuanjiafeng-net

+

状态摘要

+
run_name204003_chuanjiafeng-net
hostchuanjiafeng.net
overall_statuscompleted
register_statusdomain_exists
apply_statusapplied
dry_runno
run_registeryes
run_applyyes
errors_count0
executed_at2026-04-07T20:40:03+08:00
handoff_stage可进入 Prepare
+

状态说明

+
summarystatus=completed, register=domain_exists, apply=applied
handoff_summary本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。
handoff_next_step继续执行 prepare
handoff_next_commandphp scripts/seo_copy_batch_prepare.php 'chuanjiafeng-host-seed-batch2' --approved-dir='SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-host-seed/data/seo_copy_jobs/approved'
register_message目标域名已存在,可继续执行 SEO 策略 apply。
apply_message
errors
+

文件路径

+
run_json/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260407/204003_chuanjiafeng-net.json
bundle_root/www/wwwroot/diff-maccms/SEONexus/code/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-host-seed
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/204003_chuanjiafeng-net.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/204003_chuanjiafeng-net.json new file mode 100644 index 0000000..ff9784e --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/204003_chuanjiafeng-net.json @@ -0,0 +1,31 @@ +{ + "run_name": "204003_chuanjiafeng-net", + "detail_slug": "204003_chuanjiafeng-net", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260407/204003_chuanjiafeng-net.json", + "host": "chuanjiafeng.net", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-host-seed", + "bundle_detail_slug": "chuanjiafeng-net", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-host-seed/data/seo_copy_jobs/approved/chuanjiafeng-host-seed-batch2.manifest.json", + "manifest_name": "chuanjiafeng-host-seed-batch2", + "approved_dir": "SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-host-seed/data/seo_copy_jobs/approved", + "target_root": "SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-host-seed/data/seo_copy", + "base_url": "https://chuanjiafeng.net", + "dry_run": false, + "run_register": true, + "run_apply": true, + "overall_status": "completed", + "register_status": "domain_exists", + "register_message": "目标域名已存在,可继续执行 SEO 策略 apply。", + "apply_status": "applied", + "apply_message": "", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-07T20:40:03+08:00", + "updated_at": "2026-04-07T20:40:03+08:00", + "summary": "status=completed, register=domain_exists, apply=applied", + "handoff_stage_code": "ready_for_prepare", + "handoff_stage_label": "可进入 Prepare", + "handoff_summary": "本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。", + "handoff_next_step": "继续执行 prepare", + "handoff_next_command": "php scripts/seo_copy_batch_prepare.php 'chuanjiafeng-host-seed-batch2' --approved-dir='SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-host-seed/data/seo_copy_jobs/approved'" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/204003_expand-supply-example-com.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/204003_expand-supply-example-com.html new file mode 100644 index 0000000..c6e61f5 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/204003_expand-supply-example-com.html @@ -0,0 +1,19 @@ + + + + +Bootstrap Run Detail + + + +

返回启动包运行记录 | 查看值班入口 | 查看启动包接手队列 | 查看值班待办 | 返回统一门户首页 | 查看新域名上线 SOP

+

返回对应 bundle 详情

+

204003_expand-supply-example-com

+

状态摘要

+
run_name204003_expand-supply-example-com
host*.expand-supply.example.com
overall_statuscompleted
register_statusdomain_exists
apply_statusapplied
dry_runno
run_registeryes
run_applyyes
errors_count0
executed_at2026-04-07T20:40:03+08:00
handoff_stage可进入 Prepare
+

状态说明

+
summarystatus=completed, register=domain_exists, apply=applied
handoff_summary本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。
handoff_next_step继续执行 prepare
handoff_next_commandphp scripts/seo_copy_batch_prepare.php 'expand-supply-domain-seed-batch2' --approved-dir='SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-domain-seed/data/seo_copy_jobs/approved'
register_message目标域名已存在,可继续执行 SEO 策略 apply。
apply_message
errors
+

文件路径

+
run_json/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260407/204003_expand-supply-example-com.json
bundle_root/www/wwwroot/diff-maccms/SEONexus/code/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-domain-seed
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/204003_expand-supply-example-com.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/204003_expand-supply-example-com.json new file mode 100644 index 0000000..8914e74 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/204003_expand-supply-example-com.json @@ -0,0 +1,31 @@ +{ + "run_name": "204003_expand-supply-example-com", + "detail_slug": "204003_expand-supply-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260407/204003_expand-supply-example-com.json", + "host": "*.expand-supply.example.com", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-domain-seed", + "bundle_detail_slug": "expand-supply-example-com", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-domain-seed/data/seo_copy_jobs/approved/expand-supply-domain-seed-batch2.manifest.json", + "manifest_name": "expand-supply-domain-seed-batch2", + "approved_dir": "SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-domain-seed/data/seo_copy_jobs/approved", + "target_root": "SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-domain-seed/data/seo_copy", + "base_url": "https://*.expand-supply.example.com", + "dry_run": false, + "run_register": true, + "run_apply": true, + "overall_status": "completed", + "register_status": "domain_exists", + "register_message": "目标域名已存在,可继续执行 SEO 策略 apply。", + "apply_status": "applied", + "apply_message": "", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-07T20:40:03+08:00", + "updated_at": "2026-04-07T20:40:03+08:00", + "summary": "status=completed, register=domain_exists, apply=applied", + "handoff_stage_code": "ready_for_prepare", + "handoff_stage_label": "可进入 Prepare", + "handoff_summary": "本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。", + "handoff_next_step": "继续执行 prepare", + "handoff_next_command": "php scripts/seo_copy_batch_prepare.php 'expand-supply-domain-seed-batch2' --approved-dir='SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-domain-seed/data/seo_copy_jobs/approved'" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/204046_chuanjiafeng-net.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/204046_chuanjiafeng-net.html new file mode 100644 index 0000000..71ccb0d --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/204046_chuanjiafeng-net.html @@ -0,0 +1,19 @@ + + + + +Bootstrap Run Detail + + + +

返回启动包运行记录 | 查看值班入口 | 查看启动包接手队列 | 查看值班待办 | 返回统一门户首页 | 查看新域名上线 SOP

+

返回对应 bundle 详情

+

204046_chuanjiafeng-net

+

状态摘要

+
run_name204046_chuanjiafeng-net
hostchuanjiafeng.net
overall_statuscompleted
register_statusdomain_exists
apply_statusapplied
dry_runno
run_registeryes
run_applyyes
errors_count0
executed_at2026-04-07T20:40:46+08:00
handoff_stage可进入 Prepare
+

状态说明

+
summarystatus=completed, register=domain_exists, apply=applied
handoff_summary本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。
handoff_next_step继续执行 prepare
handoff_next_commandphp scripts/seo_copy_batch_prepare.php 'chuanjiafeng-host-seed-batch2' --approved-dir='SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-host-seed/data/seo_copy_jobs/approved'
register_message目标域名已存在,可继续执行 SEO 策略 apply。
apply_message
errors
+

文件路径

+
run_json/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260407/204046_chuanjiafeng-net.json
bundle_root/www/wwwroot/diff-maccms/SEONexus/code/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-host-seed
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/204046_chuanjiafeng-net.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/204046_chuanjiafeng-net.json new file mode 100644 index 0000000..2e938ae --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/204046_chuanjiafeng-net.json @@ -0,0 +1,31 @@ +{ + "run_name": "204046_chuanjiafeng-net", + "detail_slug": "204046_chuanjiafeng-net", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260407/204046_chuanjiafeng-net.json", + "host": "chuanjiafeng.net", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-host-seed", + "bundle_detail_slug": "chuanjiafeng-net", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-host-seed/data/seo_copy_jobs/approved/chuanjiafeng-host-seed-batch2.manifest.json", + "manifest_name": "chuanjiafeng-host-seed-batch2", + "approved_dir": "SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-host-seed/data/seo_copy_jobs/approved", + "target_root": "SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-host-seed/data/seo_copy", + "base_url": "https://chuanjiafeng.net", + "dry_run": false, + "run_register": true, + "run_apply": true, + "overall_status": "completed", + "register_status": "domain_exists", + "register_message": "目标域名已存在,可继续执行 SEO 策略 apply。", + "apply_status": "applied", + "apply_message": "", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-07T20:40:46+08:00", + "updated_at": "2026-04-07T20:40:46+08:00", + "summary": "status=completed, register=domain_exists, apply=applied", + "handoff_stage_code": "ready_for_prepare", + "handoff_stage_label": "可进入 Prepare", + "handoff_summary": "本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。", + "handoff_next_step": "继续执行 prepare", + "handoff_next_command": "php scripts/seo_copy_batch_prepare.php 'chuanjiafeng-host-seed-batch2' --approved-dir='SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-host-seed/data/seo_copy_jobs/approved'" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/204046_expand-supply-example-com.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/204046_expand-supply-example-com.html new file mode 100644 index 0000000..924f474 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/204046_expand-supply-example-com.html @@ -0,0 +1,19 @@ + + + + +Bootstrap Run Detail + + + +

返回启动包运行记录 | 查看值班入口 | 查看启动包接手队列 | 查看值班待办 | 返回统一门户首页 | 查看新域名上线 SOP

+

返回对应 bundle 详情

+

204046_expand-supply-example-com

+

状态摘要

+
run_name204046_expand-supply-example-com
host*.expand-supply.example.com
overall_statuscompleted
register_statusdomain_exists
apply_statusapplied
dry_runno
run_registeryes
run_applyyes
errors_count0
executed_at2026-04-07T20:40:46+08:00
handoff_stage可进入 Prepare
+

状态说明

+
summarystatus=completed, register=domain_exists, apply=applied
handoff_summary本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。
handoff_next_step继续执行 prepare
handoff_next_commandphp scripts/seo_copy_batch_prepare.php 'expand-supply-domain-seed-batch2' --approved-dir='SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-domain-seed/data/seo_copy_jobs/approved'
register_message目标域名已存在,可继续执行 SEO 策略 apply。
apply_message
errors
+

文件路径

+
run_json/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260407/204046_expand-supply-example-com.json
bundle_root/www/wwwroot/diff-maccms/SEONexus/code/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-domain-seed
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/204046_expand-supply-example-com.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/204046_expand-supply-example-com.json new file mode 100644 index 0000000..f0980f3 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/204046_expand-supply-example-com.json @@ -0,0 +1,31 @@ +{ + "run_name": "204046_expand-supply-example-com", + "detail_slug": "204046_expand-supply-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260407/204046_expand-supply-example-com.json", + "host": "*.expand-supply.example.com", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-domain-seed", + "bundle_detail_slug": "expand-supply-example-com", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-domain-seed/data/seo_copy_jobs/approved/expand-supply-domain-seed-batch2.manifest.json", + "manifest_name": "expand-supply-domain-seed-batch2", + "approved_dir": "SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-domain-seed/data/seo_copy_jobs/approved", + "target_root": "SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-domain-seed/data/seo_copy", + "base_url": "https://*.expand-supply.example.com", + "dry_run": false, + "run_register": true, + "run_apply": true, + "overall_status": "completed", + "register_status": "domain_exists", + "register_message": "目标域名已存在,可继续执行 SEO 策略 apply。", + "apply_status": "applied", + "apply_message": "", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-07T20:40:46+08:00", + "updated_at": "2026-04-07T20:40:46+08:00", + "summary": "status=completed, register=domain_exists, apply=applied", + "handoff_stage_code": "ready_for_prepare", + "handoff_stage_label": "可进入 Prepare", + "handoff_summary": "本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。", + "handoff_next_step": "继续执行 prepare", + "handoff_next_command": "php scripts/seo_copy_batch_prepare.php 'expand-supply-domain-seed-batch2' --approved-dir='SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-domain-seed/data/seo_copy_jobs/approved'" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/204230_chuanjiafeng-net.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/204230_chuanjiafeng-net.html new file mode 100644 index 0000000..ccf2de0 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/204230_chuanjiafeng-net.html @@ -0,0 +1,19 @@ + + + + +Bootstrap Run Detail + + + +

返回启动包运行记录 | 查看值班入口 | 查看启动包接手队列 | 查看值班待办 | 返回统一门户首页 | 查看新域名上线 SOP

+

返回对应 bundle 详情

+

204230_chuanjiafeng-net

+

状态摘要

+
run_name204230_chuanjiafeng-net
hostchuanjiafeng.net
overall_statuscompleted
register_statusdomain_exists
apply_statusapplied
dry_runno
run_registeryes
run_applyyes
errors_count0
executed_at2026-04-07T20:42:30+08:00
handoff_stage可进入 Prepare
+

状态说明

+
summarystatus=completed, register=domain_exists, apply=applied
handoff_summary本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。
handoff_next_step继续执行 prepare
handoff_next_commandphp scripts/seo_copy_batch_prepare.php 'chuanjiafeng-host-seed-batch2' --approved-dir='SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-host-seed/data/seo_copy_jobs/approved'
register_message目标域名已存在,可继续执行 SEO 策略 apply。
apply_message
errors
+

文件路径

+
run_json/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260407/204230_chuanjiafeng-net.json
bundle_root/www/wwwroot/diff-maccms/SEONexus/code/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-host-seed
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/204230_chuanjiafeng-net.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/204230_chuanjiafeng-net.json new file mode 100644 index 0000000..deff0da --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/204230_chuanjiafeng-net.json @@ -0,0 +1,31 @@ +{ + "run_name": "204230_chuanjiafeng-net", + "detail_slug": "204230_chuanjiafeng-net", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260407/204230_chuanjiafeng-net.json", + "host": "chuanjiafeng.net", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-host-seed", + "bundle_detail_slug": "chuanjiafeng-net", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-host-seed/data/seo_copy_jobs/approved/chuanjiafeng-host-seed-batch2.manifest.json", + "manifest_name": "chuanjiafeng-host-seed-batch2", + "approved_dir": "SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-host-seed/data/seo_copy_jobs/approved", + "target_root": "SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-host-seed/data/seo_copy", + "base_url": "https://chuanjiafeng.net", + "dry_run": false, + "run_register": true, + "run_apply": true, + "overall_status": "completed", + "register_status": "domain_exists", + "register_message": "目标域名已存在,可继续执行 SEO 策略 apply。", + "apply_status": "applied", + "apply_message": "", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-07T20:42:30+08:00", + "updated_at": "2026-04-07T20:42:30+08:00", + "summary": "status=completed, register=domain_exists, apply=applied", + "handoff_stage_code": "ready_for_prepare", + "handoff_stage_label": "可进入 Prepare", + "handoff_summary": "本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。", + "handoff_next_step": "继续执行 prepare", + "handoff_next_command": "php scripts/seo_copy_batch_prepare.php 'chuanjiafeng-host-seed-batch2' --approved-dir='SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-host-seed/data/seo_copy_jobs/approved'" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/204230_expand-supply-example-com.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/204230_expand-supply-example-com.html new file mode 100644 index 0000000..159bd74 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/204230_expand-supply-example-com.html @@ -0,0 +1,19 @@ + + + + +Bootstrap Run Detail + + + +

返回启动包运行记录 | 查看值班入口 | 查看启动包接手队列 | 查看值班待办 | 返回统一门户首页 | 查看新域名上线 SOP

+

返回对应 bundle 详情

+

204230_expand-supply-example-com

+

状态摘要

+
run_name204230_expand-supply-example-com
host*.expand-supply.example.com
overall_statuscompleted
register_statusdomain_exists
apply_statusapplied
dry_runno
run_registeryes
run_applyyes
errors_count0
executed_at2026-04-07T20:42:30+08:00
handoff_stage可进入 Prepare
+

状态说明

+
summarystatus=completed, register=domain_exists, apply=applied
handoff_summary本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。
handoff_next_step继续执行 prepare
handoff_next_commandphp scripts/seo_copy_batch_prepare.php 'expand-supply-domain-seed-batch2' --approved-dir='SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-domain-seed/data/seo_copy_jobs/approved'
register_message目标域名已存在,可继续执行 SEO 策略 apply。
apply_message
errors
+

文件路径

+
run_json/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260407/204230_expand-supply-example-com.json
bundle_root/www/wwwroot/diff-maccms/SEONexus/code/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-domain-seed
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/204230_expand-supply-example-com.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/204230_expand-supply-example-com.json new file mode 100644 index 0000000..e0eacd8 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/204230_expand-supply-example-com.json @@ -0,0 +1,31 @@ +{ + "run_name": "204230_expand-supply-example-com", + "detail_slug": "204230_expand-supply-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260407/204230_expand-supply-example-com.json", + "host": "*.expand-supply.example.com", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-domain-seed", + "bundle_detail_slug": "expand-supply-example-com", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-domain-seed/data/seo_copy_jobs/approved/expand-supply-domain-seed-batch2.manifest.json", + "manifest_name": "expand-supply-domain-seed-batch2", + "approved_dir": "SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-domain-seed/data/seo_copy_jobs/approved", + "target_root": "SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-domain-seed/data/seo_copy", + "base_url": "https://*.expand-supply.example.com", + "dry_run": false, + "run_register": true, + "run_apply": true, + "overall_status": "completed", + "register_status": "domain_exists", + "register_message": "目标域名已存在,可继续执行 SEO 策略 apply。", + "apply_status": "applied", + "apply_message": "", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-07T20:42:30+08:00", + "updated_at": "2026-04-07T20:42:30+08:00", + "summary": "status=completed, register=domain_exists, apply=applied", + "handoff_stage_code": "ready_for_prepare", + "handoff_stage_label": "可进入 Prepare", + "handoff_summary": "本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。", + "handoff_next_step": "继续执行 prepare", + "handoff_next_command": "php scripts/seo_copy_batch_prepare.php 'expand-supply-domain-seed-batch2' --approved-dir='SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-domain-seed/data/seo_copy_jobs/approved'" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/204407_expand-supply-example-com.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/204407_expand-supply-example-com.html new file mode 100644 index 0000000..d85edd8 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/204407_expand-supply-example-com.html @@ -0,0 +1,19 @@ + + + + +Bootstrap Run Detail + + + +

返回启动包运行记录 | 查看值班入口 | 查看启动包接手队列 | 查看值班待办 | 返回统一门户首页 | 查看新域名上线 SOP

+

返回对应 bundle 详情

+

204407_expand-supply-example-com

+

状态摘要

+
run_name204407_expand-supply-example-com
host*.expand-supply.example.com
overall_statuscompleted
register_statusdomain_exists
apply_statusapplied
dry_runno
run_registeryes
run_applyyes
errors_count0
executed_at2026-04-07T20:44:07+08:00
handoff_stage可进入 Prepare
+

状态说明

+
summarystatus=completed, register=domain_exists, apply=applied
handoff_summary本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。
handoff_next_step继续执行 prepare
handoff_next_commandphp scripts/seo_copy_batch_prepare.php 'expand-supply-domain-seed-batch2' --approved-dir='SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-domain-seed/data/seo_copy_jobs/approved'
register_message目标域名已存在,可继续执行 SEO 策略 apply。
apply_message
errors
+

文件路径

+
run_json/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260407/204407_expand-supply-example-com.json
bundle_root/www/wwwroot/diff-maccms/SEONexus/code/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-domain-seed
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/204407_expand-supply-example-com.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/204407_expand-supply-example-com.json new file mode 100644 index 0000000..b503bce --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/204407_expand-supply-example-com.json @@ -0,0 +1,31 @@ +{ + "run_name": "204407_expand-supply-example-com", + "detail_slug": "204407_expand-supply-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260407/204407_expand-supply-example-com.json", + "host": "*.expand-supply.example.com", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-domain-seed", + "bundle_detail_slug": "expand-supply-example-com", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-domain-seed/data/seo_copy_jobs/approved/expand-supply-domain-seed-batch2.manifest.json", + "manifest_name": "expand-supply-domain-seed-batch2", + "approved_dir": "SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-domain-seed/data/seo_copy_jobs/approved", + "target_root": "SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-domain-seed/data/seo_copy", + "base_url": "https://*.expand-supply.example.com", + "dry_run": false, + "run_register": true, + "run_apply": true, + "overall_status": "completed", + "register_status": "domain_exists", + "register_message": "目标域名已存在,可继续执行 SEO 策略 apply。", + "apply_status": "applied", + "apply_message": "", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-07T20:44:07+08:00", + "updated_at": "2026-04-07T20:44:07+08:00", + "summary": "status=completed, register=domain_exists, apply=applied", + "handoff_stage_code": "ready_for_prepare", + "handoff_stage_label": "可进入 Prepare", + "handoff_summary": "本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。", + "handoff_next_step": "继续执行 prepare", + "handoff_next_command": "php scripts/seo_copy_batch_prepare.php 'expand-supply-domain-seed-batch2' --approved-dir='SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-domain-seed/data/seo_copy_jobs/approved'" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/204648_expand-supply-example-com.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/204648_expand-supply-example-com.html new file mode 100644 index 0000000..89061aa --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/204648_expand-supply-example-com.html @@ -0,0 +1,19 @@ + + + + +Bootstrap Run Detail + + + +

返回启动包运行记录 | 查看值班入口 | 查看启动包接手队列 | 查看值班待办 | 返回统一门户首页 | 查看新域名上线 SOP

+

返回对应 bundle 详情

+

204648_expand-supply-example-com

+

状态摘要

+
run_name204648_expand-supply-example-com
host*.expand-supply.example.com
overall_statuscompleted
register_statusdomain_exists
apply_statusapplied
dry_runno
run_registeryes
run_applyyes
errors_count0
executed_at2026-04-07T20:46:48+08:00
handoff_stage可进入 Prepare
+

状态说明

+
summarystatus=completed, register=domain_exists, apply=applied
handoff_summary本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。
handoff_next_step继续执行 prepare
handoff_next_command
register_message目标域名已存在,可继续执行 SEO 策略 apply。
apply_message
errors
+

文件路径

+
run_json/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260407/204648_expand-supply-example-com.json
bundle_rootcode/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-domain-seed
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/204648_expand-supply-example-com.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/204648_expand-supply-example-com.json new file mode 100644 index 0000000..8d7cc2e --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/details/204648_expand-supply-example-com.json @@ -0,0 +1,31 @@ +{ + "run_name": "204648_expand-supply-example-com", + "detail_slug": "204648_expand-supply-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260407/204648_expand-supply-example-com.json", + "host": "*.expand-supply.example.com", + "bundle_root": "code/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-domain-seed", + "bundle_detail_slug": "expand-supply-example-com", + "manifest_path": "", + "manifest_name": "", + "approved_dir": "", + "target_root": "", + "base_url": "", + "dry_run": false, + "run_register": true, + "run_apply": true, + "overall_status": "completed", + "register_status": "domain_exists", + "register_message": "目标域名已存在,可继续执行 SEO 策略 apply。", + "apply_status": "applied", + "apply_message": "", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-07T20:46:48+08:00", + "updated_at": "2026-04-07T20:46:48+08:00", + "summary": "status=completed, register=domain_exists, apply=applied", + "handoff_stage_code": "ready_for_prepare", + "handoff_stage_label": "可进入 Prepare", + "handoff_summary": "本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。", + "handoff_next_step": "继续执行 prepare", + "handoff_next_command": "" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/index.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/index.html new file mode 100644 index 0000000..947e653 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/index.html @@ -0,0 +1,80 @@ + + + + +Domain Bootstrap Runs + + + +

返回启动包总览 | 查看值班入口 | 查看启动包接手队列 | 查看值班待办 | 返回统一门户首页 | 查看新域名上线 SOP

+

Domain Bootstrap Runs

+

scan_root: /www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs

+

runs_count: 59

+

status_totals: completed: 19 / dry_run_completed: 37 / dry_run_needs_attention: 1 / failed: 2

+

handoff: 待入库 24 / 待应用 13 / 可进 prepare 19 / 需关注 3

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
run_namehoststatusregisterapplyhandoffdry_runerrorssummaryupdated_atbundle
151314_video-test-comvideo-test.comcompletedcreatedapplied可进入 Prepareno0status=completed, register=created, apply=applied2026-04-08T15:13:14+08:00video-test.com
SEONexus/code/storage/domain_bootstrap_bundles/video-test-next-stage-a1
151309_video-test-comvideo-test.comdry_run_completedready_to_createdomain_not_found待正式入库yes0status=dry_run_completed, register=ready_to_create, apply=domain_not_found2026-04-08T15:13:09+08:00video-test.com
SEONexus/code/storage/domain_bootstrap_bundles/video-test-next-stage-a1
144957_traffic-supply-example-comtraffic-supply.example.comcompletedcreatedapplied可进入 Prepareno0status=completed, register=created, apply=applied2026-04-08T14:49:57+08:00traffic-supply.example.com
SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com
144952_traffic-supply-example-comtraffic-supply.example.comdry_run_completedready_to_createdomain_not_found待正式入库yes0status=dry_run_completed, register=ready_to_create, apply=domain_not_found2026-04-08T14:49:52+08:00traffic-supply.example.com
SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com
143915_demo-example-comdemo.example.comcompleteddomain_existsapplied可进入 Prepareno0status=completed, register=domain_exists, apply=applied2026-04-08T14:39:15+08:00demo.example.com
SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal
142730_demo-example-comdemo.example.comcompletedcreatednoop可进入 Prepareno0status=completed, register=created, apply=noop2026-04-08T14:27:30+08:00demo.example.com
/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal
142726_demo-example-comdemo.example.comdry_run_completedready_to_createdomain_not_found待正式入库yes0status=dry_run_completed, register=ready_to_create, apply=domain_not_found2026-04-08T14:27:26+08:00demo.example.com
/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal
134719_liangzuan-netliangzuan.netcompleteddomain_existsnoop可进入 Prepareno0status=completed, register=domain_exists, apply=noop2026-04-08T13:47:19+08:00liangzuan.net
/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/liangzuan-next-stage-b1
134414_liangzuan-netliangzuan.netcompleteddomain_existsapplied可进入 Prepareno0status=completed, register=domain_exists, apply=applied2026-04-08T13:44:14+08:00liangzuan.net
/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/liangzuan-next-stage-b1
134303_liangzuan-netliangzuan.netdry_run_completeddomain_existsdry_run待正式应用yes0status=dry_run_completed, register=domain_exists, apply=dry_run2026-04-08T13:43:03+08:00liangzuan.net
/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/liangzuan-next-stage-b1
133734_chuanjiafeng-netchuanjiafeng.netdry_run_completeddomain_existsdry_run待正式应用yes0status=dry_run_completed, register=domain_exists, apply=dry_run2026-04-08T13:37:34+08:00chuanjiafeng.net
/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-next-stage-a1
204648_expand-supply-example-com*.expand-supply.example.comcompleteddomain_existsapplied可进入 Prepareno0status=completed, register=domain_exists, apply=applied2026-04-07T20:46:48+08:00*.expand-supply.example.com
code/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-domain-seed
204407_expand-supply-example-com*.expand-supply.example.comcompleteddomain_existsapplied可进入 Prepareno0status=completed, register=domain_exists, apply=applied2026-04-07T20:44:07+08:00*.expand-supply.example.com
/www/wwwroot/diff-maccms/SEONexus/code/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-domain-seed
204230_chuanjiafeng-netchuanjiafeng.netcompleteddomain_existsapplied可进入 Prepareno0status=completed, register=domain_exists, apply=applied2026-04-07T20:42:30+08:00chuanjiafeng.net
/www/wwwroot/diff-maccms/SEONexus/code/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-host-seed
204230_expand-supply-example-com*.expand-supply.example.comcompleteddomain_existsapplied可进入 Prepareno0status=completed, register=domain_exists, apply=applied2026-04-07T20:42:30+08:00*.expand-supply.example.com
/www/wwwroot/diff-maccms/SEONexus/code/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-domain-seed
204046_chuanjiafeng-netchuanjiafeng.netcompleteddomain_existsapplied可进入 Prepareno0status=completed, register=domain_exists, apply=applied2026-04-07T20:40:46+08:00chuanjiafeng.net
/www/wwwroot/diff-maccms/SEONexus/code/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-host-seed
204046_expand-supply-example-com*.expand-supply.example.comcompleteddomain_existsapplied可进入 Prepareno0status=completed, register=domain_exists, apply=applied2026-04-07T20:40:46+08:00*.expand-supply.example.com
/www/wwwroot/diff-maccms/SEONexus/code/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-domain-seed
204003_chuanjiafeng-netchuanjiafeng.netcompleteddomain_existsapplied可进入 Prepareno0status=completed, register=domain_exists, apply=applied2026-04-07T20:40:03+08:00chuanjiafeng.net
/www/wwwroot/diff-maccms/SEONexus/code/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-host-seed
204003_expand-supply-example-com*.expand-supply.example.comcompleteddomain_existsapplied可进入 Prepareno0status=completed, register=domain_exists, apply=applied2026-04-07T20:40:03+08:00*.expand-supply.example.com
/www/wwwroot/diff-maccms/SEONexus/code/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-domain-seed
202440_expand-supply-example-com*.expand-supply.example.comcompleteddomain_existsapplied可进入 Prepareno0status=completed, register=domain_exists, apply=applied2026-04-07T20:24:40+08:00*.expand-supply.example.com
/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard
202349_expand-supply-example-com*.expand-supply.example.comcompleteddomain_existsapplied可进入 Prepareno0status=completed, register=domain_exists, apply=applied2026-04-07T20:23:49+08:00*.expand-supply.example.com
/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard
202301_expand-supply-example-com*.expand-supply.example.comcompleteddomain_existsapplied可进入 Prepareno0status=completed, register=domain_exists, apply=applied2026-04-07T20:23:01+08:00*.expand-supply.example.com
/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard
201958_expand-supply-example-com*.expand-supply.example.comcompletedcreatedapplied可进入 Prepareno0status=completed, register=created, apply=applied2026-04-07T20:19:58+08:00*.expand-supply.example.com
/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard
201921_expand-supply-example-com*.expand-supply.example.comdry_run_completedready_to_createdomain_not_found待正式入库yes0status=dry_run_completed, register=ready_to_create, apply=domain_not_found2026-04-07T20:19:21+08:00*.expand-supply.example.com
SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard
201915_expand-supply-example-com*.expand-supply.example.comdry_run_needs_attentiontemplate_not_founddomain_not_found需关注yes0status=dry_run_needs_attention, register=template_not_found, apply=domain_not_found2026-04-07T20:19:15+08:00*.expand-supply.example.com
SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard
201626_chuanjiafeng-netchuanjiafeng.netdry_run_completeddomain_existsdry_run待正式应用yes0status=dry_run_completed, register=domain_exists, apply=dry_run2026-04-07T20:16:26+08:00chuanjiafeng.net
SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact
014156_demo-example-comdemo.example.comdry_run_completedready_to_createdomain_not_found待正式入库yes0status=dry_run_completed, register=ready_to_create, apply=domain_not_found2026-04-06T01:41:56+08:00demo.example.com
/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal
014155_demo-example-comdemo.example.comdry_run_completedready_to_createdomain_not_found待正式入库yes0status=dry_run_completed, register=ready_to_create, apply=domain_not_found2026-04-06T01:41:55+08:00demo.example.com
/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal
011542_demo-example-comdemo.example.comdry_run_completedready_to_createdomain_not_found待正式入库yes0status=dry_run_completed, register=ready_to_create, apply=domain_not_found2026-04-06T01:15:42+08:00demo.example.com
/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal
155926_demo-example-comdemo.example.comdry_run_completedready_to_createdomain_not_found待正式入库yes0status=dry_run_completed, register=ready_to_create, apply=domain_not_found2026-04-05T15:59:26+08:00demo.example.com
/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal
155925_demo-example-comdemo.example.comdry_run_completedready_to_createdomain_not_found待正式入库yes0status=dry_run_completed, register=ready_to_create, apply=domain_not_found2026-04-05T15:59:25+08:00demo.example.com
/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal
154823_demo-example-comdemo.example.comdry_run_completedready_to_createdomain_not_found待正式入库yes0status=dry_run_completed, register=ready_to_create, apply=domain_not_found2026-04-05T15:48:23+08:00demo.example.com
/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal
144948_chuanjiafeng-netchuanjiafeng.netcompleteddomain_existsapplied可进入 Prepareno0status=completed, register=domain_exists, apply=applied2026-04-05T14:49:48+08:00chuanjiafeng.net
/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact
144204_chuanjiafeng-netchuanjiafeng.netdry_run_completeddomain_existsdry_run待正式应用yes0status=dry_run_completed, register=domain_exists, apply=dry_run2026-04-05T14:42:04+08:00chuanjiafeng.net
/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact
144204_demo-example-comdemo.example.comdry_run_completedready_to_createdomain_not_found待正式入库yes0status=dry_run_completed, register=ready_to_create, apply=domain_not_found2026-04-05T14:42:04+08:00demo.example.com
/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal
144129_demo-example-comdemo.example.comdry_run_completedready_to_createdomain_not_found待正式入库yes0status=dry_run_completed, register=ready_to_create, apply=domain_not_found2026-04-05T14:41:29+08:00demo.example.com
/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal
144100_chuanjiafeng-netchuanjiafeng.netdry_run_completeddomain_existsdry_run待正式应用yes0status=dry_run_completed, register=domain_exists, apply=dry_run2026-04-05T14:41:00+08:00chuanjiafeng.net
/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact
144100_demo-example-comdemo.example.comdry_run_completedready_to_createdomain_not_found待正式入库yes0status=dry_run_completed, register=ready_to_create, apply=domain_not_found2026-04-05T14:41:00+08:00demo.example.com
/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal
144055_chuanjiafeng-netchuanjiafeng.netdry_run_completeddomain_existsdry_run待正式应用yes0status=dry_run_completed, register=domain_exists, apply=dry_run2026-04-05T14:40:55+08:00chuanjiafeng.net
/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact
144055_demo-example-comdemo.example.comdry_run_completedready_to_createdomain_not_found待正式入库yes0status=dry_run_completed, register=ready_to_create, apply=domain_not_found2026-04-05T14:40:55+08:00demo.example.com
/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal
144045_demo-example-comdemo.example.comdry_run_completedready_to_createdomain_not_found待正式入库yes0status=dry_run_completed, register=ready_to_create, apply=domain_not_found2026-04-05T14:40:45+08:00demo.example.com
/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal
142621_demo-example-comdemo.example.comdry_run_completedready_to_createdomain_not_found待正式入库yes0status=dry_run_completed, register=ready_to_create, apply=domain_not_found2026-04-05T14:26:21+08:00demo.example.com
/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal
141405_demo-example-comdemo.example.comdry_run_completedready_to_createdomain_not_found待正式入库yes0status=dry_run_completed, register=ready_to_create, apply=domain_not_found2026-04-05T14:14:05+08:00demo.example.com
/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal
140711_demo-example-comdemo.example.comdry_run_completedready_to_createdomain_not_found待正式入库yes0status=dry_run_completed, register=ready_to_create, apply=domain_not_found2026-04-05T14:07:11+08:00demo.example.com
/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal
140609_demo-example-comdemo.example.comdry_run_completedready_to_createdomain_not_found待正式入库yes0status=dry_run_completed, register=ready_to_create, apply=domain_not_found2026-04-05T14:06:09+08:00demo.example.com
/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal
140605_chuanjiafeng-netchuanjiafeng.netdry_run_completeddomain_existsdry_run待正式应用yes0status=dry_run_completed, register=domain_exists, apply=dry_run2026-04-05T14:06:05+08:00chuanjiafeng.net
/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact
135937_chuanjiafeng-netchuanjiafeng.netfailed需关注yes1status=failed, register=, apply=2026-04-05T13:59:37+08:00chuanjiafeng.net
/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact
135937_demo-example-comdemo.example.comfailed需关注yes1status=failed, register=, apply=2026-04-05T13:59:37+08:00demo.example.com
/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal
020311_chuanjiafeng-netchuanjiafeng.netdry_run_completeddomain_existsdry_run待正式应用yes0status=dry_run_completed, register=domain_exists, apply=dry_run2026-04-05T02:03:11+08:00chuanjiafeng.net
/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact
014124_chuanjiafeng-netchuanjiafeng.netdry_run_completeddomain_existsdry_run待正式应用yes0status=dry_run_completed, register=domain_exists, apply=dry_run2026-04-05T01:41:24+08:00chuanjiafeng.net
/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact
014124_demo-example-comdemo.example.comdry_run_completedready_to_createdomain_not_found待正式入库yes0status=dry_run_completed, register=ready_to_create, apply=domain_not_found2026-04-05T01:41:24+08:00demo.example.com
/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal
014039_chuanjiafeng-netchuanjiafeng.netdry_run_completeddomain_existsdry_run待正式应用yes0status=dry_run_completed, register=domain_exists, apply=dry_run2026-04-05T01:40:39+08:00chuanjiafeng.net
/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact
014039_demo-example-comdemo.example.comdry_run_completedready_to_createdomain_not_found待正式入库yes0status=dry_run_completed, register=ready_to_create, apply=domain_not_found2026-04-05T01:40:39+08:00demo.example.com
/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal
013432_chuanjiafeng-netchuanjiafeng.netdry_run_completeddomain_existsdry_run待正式应用yes0status=dry_run_completed, register=domain_exists, apply=dry_run2026-04-05T01:34:32+08:00chuanjiafeng.net
/tmp/domain-bootstrap-bundles/chuanjiafeng-compact
013432_demo-example-comdemo.example.comdry_run_completedready_to_createdomain_not_found待正式入库yes0status=dry_run_completed, register=ready_to_create, apply=domain_not_found2026-04-05T01:34:32+08:00demo.example.com
/tmp/domain-bootstrap-bundles/demo-minimal
013357_chuanjiafeng-netchuanjiafeng.netdry_run_completeddomain_existsdry_run待正式应用yes0status=dry_run_completed, register=domain_exists, apply=dry_run2026-04-05T01:33:57+08:00chuanjiafeng.net
/tmp/domain-bootstrap-bundles/chuanjiafeng-compact
013357_demo-example-comdemo.example.comdry_run_completedready_to_createdomain_not_found待正式入库yes0status=dry_run_completed, register=ready_to_create, apply=domain_not_found2026-04-05T01:33:57+08:00demo.example.com
/tmp/domain-bootstrap-bundles/demo-minimal
012639_chuanjiafeng-netchuanjiafeng.netdry_run_completeddomain_existsdry_run待正式应用yes0status=dry_run_completed, register=domain_exists, apply=dry_run2026-04-05T01:26:39+08:00chuanjiafeng.net
/tmp/domain-bootstrap-bundles/chuanjiafeng-compact
012639_demo-example-comdemo.example.comdry_run_completedready_to_createdomain_not_found待正式入库yes0status=dry_run_completed, register=ready_to_create, apply=domain_not_found2026-04-05T01:26:39+08:00demo.example.com
/tmp/domain-bootstrap-bundles/demo-minimal
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/index.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/index.json new file mode 100644 index 0000000..029b4b6 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_runs/index.json @@ -0,0 +1,1881 @@ +{ + "scan_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs", + "generated_at": "2026-04-08T15:13:14+08:00", + "runs": [ + { + "run_name": "151314_video-test-com", + "detail_slug": "151314_video-test-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260408/151314_video-test-com.json", + "host": "video-test.com", + "bundle_root": "SEONexus/code/storage/domain_bootstrap_bundles/video-test-next-stage-a1", + "bundle_detail_slug": "video-test-com", + "manifest_path": "SEONexus/code/storage/domain_bootstrap_bundles/video-test-next-stage-a1/data/seo_copy_jobs/approved/20260408_145449.manifest.json", + "manifest_name": "20260408_145449", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/video-test-example-com/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/video-test-example-com/data/seo_copy", + "base_url": "https://video-test.com", + "dry_run": false, + "run_register": true, + "run_apply": true, + "overall_status": "completed", + "register_status": "created", + "register_message": "目标域名尚未创建,当前样板已具备建站记录所需最小字段。", + "apply_status": "applied", + "apply_message": "", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-08T15:13:14+08:00", + "updated_at": "2026-04-08T15:13:14+08:00", + "summary": "status=completed, register=created, apply=applied", + "handoff_stage_code": "ready_for_prepare", + "handoff_stage_label": "可进入 Prepare", + "handoff_summary": "本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。", + "handoff_next_step": "继续执行 prepare", + "handoff_next_command": "php scripts/seo_copy_batch_prepare.php '20260408_145449' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/video-test-example-com/data/seo_copy_jobs/approved'" + }, + { + "run_name": "151309_video-test-com", + "detail_slug": "151309_video-test-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260408/151309_video-test-com.json", + "host": "video-test.com", + "bundle_root": "SEONexus/code/storage/domain_bootstrap_bundles/video-test-next-stage-a1", + "bundle_detail_slug": "video-test-com", + "manifest_path": "SEONexus/code/storage/domain_bootstrap_bundles/video-test-next-stage-a1/data/seo_copy_jobs/approved/20260408_145449.manifest.json", + "manifest_name": "20260408_145449", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/video-test-example-com/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/video-test-example-com/data/seo_copy", + "base_url": "https://video-test.com", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "ready_to_create", + "register_message": "目标域名尚未创建,当前样板已具备建站记录所需最小字段。", + "apply_status": "domain_not_found", + "apply_message": "请先在站点表中创建目标域名,再应用 bootstrap 策略样板。", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-08T15:13:09+08:00", + "updated_at": "2026-04-08T15:13:09+08:00", + "summary": "status=dry_run_completed, register=ready_to_create, apply=domain_not_found", + "handoff_stage_code": "ready_to_register", + "handoff_stage_label": "待正式入库", + "handoff_summary": "高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php 'SEONexus/code/storage/domain_bootstrap_bundles/video-test-next-stage-a1' --dry-run=0 --format=text" + }, + { + "run_name": "144957_traffic-supply-example-com", + "detail_slug": "144957_traffic-supply-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260408/144957_traffic-supply-example-com.json", + "host": "traffic-supply.example.com", + "bundle_root": "SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com", + "bundle_detail_slug": "traffic-supply-example-com", + "manifest_path": "SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved/20260408_145449.manifest.json", + "manifest_name": "20260408_145449", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy", + "base_url": "https://traffic-supply.example.com", + "dry_run": false, + "run_register": true, + "run_apply": true, + "overall_status": "completed", + "register_status": "created", + "register_message": "目标域名尚未创建,当前样板已具备建站记录所需最小字段。", + "apply_status": "applied", + "apply_message": "", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-08T14:49:57+08:00", + "updated_at": "2026-04-08T14:49:57+08:00", + "summary": "status=completed, register=created, apply=applied", + "handoff_stage_code": "ready_for_prepare", + "handoff_stage_label": "可进入 Prepare", + "handoff_summary": "本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。", + "handoff_next_step": "继续执行 prepare", + "handoff_next_command": "php scripts/seo_copy_batch_prepare.php '20260408_145449' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved'" + }, + { + "run_name": "144952_traffic-supply-example-com", + "detail_slug": "144952_traffic-supply-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260408/144952_traffic-supply-example-com.json", + "host": "traffic-supply.example.com", + "bundle_root": "SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com", + "bundle_detail_slug": "traffic-supply-example-com", + "manifest_path": "SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved/20260408_145449.manifest.json", + "manifest_name": "20260408_145449", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy", + "base_url": "https://traffic-supply.example.com", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "ready_to_create", + "register_message": "目标域名尚未创建,当前样板已具备建站记录所需最小字段。", + "apply_status": "domain_not_found", + "apply_message": "请先在站点表中创建目标域名,再应用 bootstrap 策略样板。", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-08T14:49:52+08:00", + "updated_at": "2026-04-08T14:49:52+08:00", + "summary": "status=dry_run_completed, register=ready_to_create, apply=domain_not_found", + "handoff_stage_code": "ready_to_register", + "handoff_stage_label": "待正式入库", + "handoff_summary": "高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php 'SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com' --dry-run=0 --format=text" + }, + { + "run_name": "143915_demo-example-com", + "detail_slug": "143915_demo-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260408/143915_demo-example-com.json", + "host": "demo.example.com", + "bundle_root": "SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal", + "bundle_detail_slug": "demo-example-com", + "manifest_path": "SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved/demo-core-batch1.manifest.json", + "manifest_name": "demo-core-batch1", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy", + "base_url": "https://demo.example.com", + "dry_run": false, + "run_register": true, + "run_apply": true, + "overall_status": "completed", + "register_status": "domain_exists", + "register_message": "目标域名已存在,可继续执行 SEO 策略 apply。", + "apply_status": "applied", + "apply_message": "", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-08T14:39:15+08:00", + "updated_at": "2026-04-08T14:39:15+08:00", + "summary": "status=completed, register=domain_exists, apply=applied", + "handoff_stage_code": "ready_for_prepare", + "handoff_stage_label": "可进入 Prepare", + "handoff_summary": "本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。", + "handoff_next_step": "继续执行 prepare", + "handoff_next_command": "php scripts/seo_copy_batch_prepare.php 'demo-core-batch1' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved'" + }, + { + "run_name": "142730_demo-example-com", + "detail_slug": "142730_demo-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260408/142730_demo-example-com.json", + "host": "demo.example.com", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal", + "bundle_detail_slug": "demo-example-com", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved/demo-core-batch1.manifest.json", + "manifest_name": "demo-core-batch1", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy", + "base_url": "https://demo.example.com", + "dry_run": false, + "run_register": true, + "run_apply": true, + "overall_status": "completed", + "register_status": "created", + "register_message": "目标域名尚未创建,当前样板已具备建站记录所需最小字段。", + "apply_status": "noop", + "apply_message": "目标域名当前策略已经与 bootstrap 样板一致。", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-08T14:27:30+08:00", + "updated_at": "2026-04-08T14:27:30+08:00", + "summary": "status=completed, register=created, apply=noop", + "handoff_stage_code": "ready_for_prepare", + "handoff_stage_label": "可进入 Prepare", + "handoff_summary": "本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。", + "handoff_next_step": "继续执行 prepare", + "handoff_next_command": "php scripts/seo_copy_batch_prepare.php 'demo-core-batch1' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved'" + }, + { + "run_name": "142726_demo-example-com", + "detail_slug": "142726_demo-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260408/142726_demo-example-com.json", + "host": "demo.example.com", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal", + "bundle_detail_slug": "demo-example-com", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved/demo-core-batch1.manifest.json", + "manifest_name": "demo-core-batch1", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy", + "base_url": "https://demo.example.com", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "ready_to_create", + "register_message": "目标域名尚未创建,当前样板已具备建站记录所需最小字段。", + "apply_status": "domain_not_found", + "apply_message": "请先在站点表中创建目标域名,再应用 bootstrap 策略样板。", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-08T14:27:26+08:00", + "updated_at": "2026-04-08T14:27:26+08:00", + "summary": "status=dry_run_completed, register=ready_to_create, apply=domain_not_found", + "handoff_stage_code": "ready_to_register", + "handoff_stage_label": "待正式入库", + "handoff_summary": "高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal' --dry-run=0 --format=text" + }, + { + "run_name": "134719_liangzuan-net", + "detail_slug": "134719_liangzuan-net", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260408/134719_liangzuan-net.json", + "host": "liangzuan.net", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/liangzuan-next-stage-b1", + "bundle_detail_slug": "liangzuan-net", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/liangzuan-next-stage-b1/data/seo_copy_jobs/approved/liangzuan-next-stage-b1.manifest.json", + "manifest_name": "liangzuan-next-stage-b1", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/liangzuan-next-stage-b1/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/liangzuan-next-stage-b1/data/seo_copy", + "base_url": "https://liangzuan.net", + "dry_run": false, + "run_register": true, + "run_apply": true, + "overall_status": "completed", + "register_status": "domain_exists", + "register_message": "目标域名已存在,可继续执行 SEO 策略 apply。", + "apply_status": "noop", + "apply_message": "目标域名当前策略已经与 bootstrap 样板一致。", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-08T13:47:19+08:00", + "updated_at": "2026-04-08T13:47:19+08:00", + "summary": "status=completed, register=domain_exists, apply=noop", + "handoff_stage_code": "ready_for_prepare", + "handoff_stage_label": "可进入 Prepare", + "handoff_summary": "本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。", + "handoff_next_step": "继续执行 prepare", + "handoff_next_command": "php scripts/seo_copy_batch_prepare.php 'liangzuan-next-stage-b1' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/liangzuan-next-stage-b1/data/seo_copy_jobs/approved'" + }, + { + "run_name": "134414_liangzuan-net", + "detail_slug": "134414_liangzuan-net", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260408/134414_liangzuan-net.json", + "host": "liangzuan.net", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/liangzuan-next-stage-b1", + "bundle_detail_slug": "liangzuan-net", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/liangzuan-next-stage-b1/data/seo_copy_jobs/approved/liangzuan-next-stage-b1.manifest.json", + "manifest_name": "liangzuan-next-stage-b1", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/liangzuan-next-stage-b1/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/liangzuan-next-stage-b1/data/seo_copy", + "base_url": "https://liangzuan.net", + "dry_run": false, + "run_register": true, + "run_apply": true, + "overall_status": "completed", + "register_status": "domain_exists", + "register_message": "目标域名已存在,可继续执行 SEO 策略 apply。", + "apply_status": "applied", + "apply_message": "", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-08T13:44:14+08:00", + "updated_at": "2026-04-08T13:44:14+08:00", + "summary": "status=completed, register=domain_exists, apply=applied", + "handoff_stage_code": "ready_for_prepare", + "handoff_stage_label": "可进入 Prepare", + "handoff_summary": "本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。", + "handoff_next_step": "继续执行 prepare", + "handoff_next_command": "php scripts/seo_copy_batch_prepare.php 'liangzuan-next-stage-b1' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/liangzuan-next-stage-b1/data/seo_copy_jobs/approved'" + }, + { + "run_name": "134303_liangzuan-net", + "detail_slug": "134303_liangzuan-net", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260408/134303_liangzuan-net.json", + "host": "liangzuan.net", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/liangzuan-next-stage-b1", + "bundle_detail_slug": "liangzuan-net", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/liangzuan-next-stage-b1/data/seo_copy_jobs/approved/liangzuan-next-stage-b1.manifest.json", + "manifest_name": "liangzuan-next-stage-b1", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/liangzuan-next-stage-b1/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/liangzuan-next-stage-b1/data/seo_copy", + "base_url": "https://liangzuan.net", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "domain_exists", + "register_message": "目标域名已存在,可继续执行 SEO 策略 apply。", + "apply_status": "dry_run", + "apply_message": "", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-08T13:43:03+08:00", + "updated_at": "2026-04-08T13:43:03+08:00", + "summary": "status=dry_run_completed, register=domain_exists, apply=dry_run", + "handoff_stage_code": "ready_to_apply", + "handoff_stage_label": "待正式应用", + "handoff_summary": "高层 dry-run 已确认域名可继续 apply,下一步应正式执行 bootstrap run。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/liangzuan-next-stage-b1' --dry-run=0 --format=text" + }, + { + "run_name": "133734_chuanjiafeng-net", + "detail_slug": "133734_chuanjiafeng-net", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260408/133734_chuanjiafeng-net.json", + "host": "chuanjiafeng.net", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-next-stage-a1", + "bundle_detail_slug": "chuanjiafeng-net", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-next-stage-a1/data/seo_copy_jobs/approved/chuanjiafeng-next-stage-a1.manifest.json", + "manifest_name": "chuanjiafeng-next-stage-a1", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-next-stage-a1/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-next-stage-a1/data/seo_copy", + "base_url": "https://chuanjiafeng.net", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "domain_exists", + "register_message": "目标域名已存在,可继续执行 SEO 策略 apply。", + "apply_status": "dry_run", + "apply_message": "", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-08T13:37:34+08:00", + "updated_at": "2026-04-08T13:37:34+08:00", + "summary": "status=dry_run_completed, register=domain_exists, apply=dry_run", + "handoff_stage_code": "ready_to_apply", + "handoff_stage_label": "待正式应用", + "handoff_summary": "高层 dry-run 已确认域名可继续 apply,下一步应正式执行 bootstrap run。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-next-stage-a1' --dry-run=0 --format=text" + }, + { + "run_name": "204648_expand-supply-example-com", + "detail_slug": "204648_expand-supply-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260407/204648_expand-supply-example-com.json", + "host": "*.expand-supply.example.com", + "bundle_root": "code/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-domain-seed", + "bundle_detail_slug": "expand-supply-example-com", + "manifest_path": "", + "manifest_name": "", + "approved_dir": "", + "target_root": "", + "base_url": "", + "dry_run": false, + "run_register": true, + "run_apply": true, + "overall_status": "completed", + "register_status": "domain_exists", + "register_message": "目标域名已存在,可继续执行 SEO 策略 apply。", + "apply_status": "applied", + "apply_message": "", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-07T20:46:48+08:00", + "updated_at": "2026-04-07T20:46:48+08:00", + "summary": "status=completed, register=domain_exists, apply=applied", + "handoff_stage_code": "ready_for_prepare", + "handoff_stage_label": "可进入 Prepare", + "handoff_summary": "本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。", + "handoff_next_step": "继续执行 prepare", + "handoff_next_command": "" + }, + { + "run_name": "204407_expand-supply-example-com", + "detail_slug": "204407_expand-supply-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260407/204407_expand-supply-example-com.json", + "host": "*.expand-supply.example.com", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-domain-seed", + "bundle_detail_slug": "expand-supply-example-com", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-domain-seed/data/seo_copy_jobs/approved/expand-supply-domain-seed-batch2.manifest.json", + "manifest_name": "expand-supply-domain-seed-batch2", + "approved_dir": "SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-domain-seed/data/seo_copy_jobs/approved", + "target_root": "SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-domain-seed/data/seo_copy", + "base_url": "https://*.expand-supply.example.com", + "dry_run": false, + "run_register": true, + "run_apply": true, + "overall_status": "completed", + "register_status": "domain_exists", + "register_message": "目标域名已存在,可继续执行 SEO 策略 apply。", + "apply_status": "applied", + "apply_message": "", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-07T20:44:07+08:00", + "updated_at": "2026-04-07T20:44:07+08:00", + "summary": "status=completed, register=domain_exists, apply=applied", + "handoff_stage_code": "ready_for_prepare", + "handoff_stage_label": "可进入 Prepare", + "handoff_summary": "本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。", + "handoff_next_step": "继续执行 prepare", + "handoff_next_command": "php scripts/seo_copy_batch_prepare.php 'expand-supply-domain-seed-batch2' --approved-dir='SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-domain-seed/data/seo_copy_jobs/approved'" + }, + { + "run_name": "204230_chuanjiafeng-net", + "detail_slug": "204230_chuanjiafeng-net", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260407/204230_chuanjiafeng-net.json", + "host": "chuanjiafeng.net", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-host-seed", + "bundle_detail_slug": "chuanjiafeng-net", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-host-seed/data/seo_copy_jobs/approved/chuanjiafeng-host-seed-batch2.manifest.json", + "manifest_name": "chuanjiafeng-host-seed-batch2", + "approved_dir": "SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-host-seed/data/seo_copy_jobs/approved", + "target_root": "SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-host-seed/data/seo_copy", + "base_url": "https://chuanjiafeng.net", + "dry_run": false, + "run_register": true, + "run_apply": true, + "overall_status": "completed", + "register_status": "domain_exists", + "register_message": "目标域名已存在,可继续执行 SEO 策略 apply。", + "apply_status": "applied", + "apply_message": "", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-07T20:42:30+08:00", + "updated_at": "2026-04-07T20:42:30+08:00", + "summary": "status=completed, register=domain_exists, apply=applied", + "handoff_stage_code": "ready_for_prepare", + "handoff_stage_label": "可进入 Prepare", + "handoff_summary": "本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。", + "handoff_next_step": "继续执行 prepare", + "handoff_next_command": "php scripts/seo_copy_batch_prepare.php 'chuanjiafeng-host-seed-batch2' --approved-dir='SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-host-seed/data/seo_copy_jobs/approved'" + }, + { + "run_name": "204230_expand-supply-example-com", + "detail_slug": "204230_expand-supply-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260407/204230_expand-supply-example-com.json", + "host": "*.expand-supply.example.com", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-domain-seed", + "bundle_detail_slug": "expand-supply-example-com", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-domain-seed/data/seo_copy_jobs/approved/expand-supply-domain-seed-batch2.manifest.json", + "manifest_name": "expand-supply-domain-seed-batch2", + "approved_dir": "SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-domain-seed/data/seo_copy_jobs/approved", + "target_root": "SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-domain-seed/data/seo_copy", + "base_url": "https://*.expand-supply.example.com", + "dry_run": false, + "run_register": true, + "run_apply": true, + "overall_status": "completed", + "register_status": "domain_exists", + "register_message": "目标域名已存在,可继续执行 SEO 策略 apply。", + "apply_status": "applied", + "apply_message": "", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-07T20:42:30+08:00", + "updated_at": "2026-04-07T20:42:30+08:00", + "summary": "status=completed, register=domain_exists, apply=applied", + "handoff_stage_code": "ready_for_prepare", + "handoff_stage_label": "可进入 Prepare", + "handoff_summary": "本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。", + "handoff_next_step": "继续执行 prepare", + "handoff_next_command": "php scripts/seo_copy_batch_prepare.php 'expand-supply-domain-seed-batch2' --approved-dir='SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-domain-seed/data/seo_copy_jobs/approved'" + }, + { + "run_name": "204046_chuanjiafeng-net", + "detail_slug": "204046_chuanjiafeng-net", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260407/204046_chuanjiafeng-net.json", + "host": "chuanjiafeng.net", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-host-seed", + "bundle_detail_slug": "chuanjiafeng-net", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-host-seed/data/seo_copy_jobs/approved/chuanjiafeng-host-seed-batch2.manifest.json", + "manifest_name": "chuanjiafeng-host-seed-batch2", + "approved_dir": "SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-host-seed/data/seo_copy_jobs/approved", + "target_root": "SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-host-seed/data/seo_copy", + "base_url": "https://chuanjiafeng.net", + "dry_run": false, + "run_register": true, + "run_apply": true, + "overall_status": "completed", + "register_status": "domain_exists", + "register_message": "目标域名已存在,可继续执行 SEO 策略 apply。", + "apply_status": "applied", + "apply_message": "", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-07T20:40:46+08:00", + "updated_at": "2026-04-07T20:40:46+08:00", + "summary": "status=completed, register=domain_exists, apply=applied", + "handoff_stage_code": "ready_for_prepare", + "handoff_stage_label": "可进入 Prepare", + "handoff_summary": "本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。", + "handoff_next_step": "继续执行 prepare", + "handoff_next_command": "php scripts/seo_copy_batch_prepare.php 'chuanjiafeng-host-seed-batch2' --approved-dir='SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-host-seed/data/seo_copy_jobs/approved'" + }, + { + "run_name": "204046_expand-supply-example-com", + "detail_slug": "204046_expand-supply-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260407/204046_expand-supply-example-com.json", + "host": "*.expand-supply.example.com", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-domain-seed", + "bundle_detail_slug": "expand-supply-example-com", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-domain-seed/data/seo_copy_jobs/approved/expand-supply-domain-seed-batch2.manifest.json", + "manifest_name": "expand-supply-domain-seed-batch2", + "approved_dir": "SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-domain-seed/data/seo_copy_jobs/approved", + "target_root": "SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-domain-seed/data/seo_copy", + "base_url": "https://*.expand-supply.example.com", + "dry_run": false, + "run_register": true, + "run_apply": true, + "overall_status": "completed", + "register_status": "domain_exists", + "register_message": "目标域名已存在,可继续执行 SEO 策略 apply。", + "apply_status": "applied", + "apply_message": "", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-07T20:40:46+08:00", + "updated_at": "2026-04-07T20:40:46+08:00", + "summary": "status=completed, register=domain_exists, apply=applied", + "handoff_stage_code": "ready_for_prepare", + "handoff_stage_label": "可进入 Prepare", + "handoff_summary": "本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。", + "handoff_next_step": "继续执行 prepare", + "handoff_next_command": "php scripts/seo_copy_batch_prepare.php 'expand-supply-domain-seed-batch2' --approved-dir='SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-domain-seed/data/seo_copy_jobs/approved'" + }, + { + "run_name": "204003_chuanjiafeng-net", + "detail_slug": "204003_chuanjiafeng-net", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260407/204003_chuanjiafeng-net.json", + "host": "chuanjiafeng.net", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-host-seed", + "bundle_detail_slug": "chuanjiafeng-net", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-host-seed/data/seo_copy_jobs/approved/chuanjiafeng-host-seed-batch2.manifest.json", + "manifest_name": "chuanjiafeng-host-seed-batch2", + "approved_dir": "SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-host-seed/data/seo_copy_jobs/approved", + "target_root": "SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-host-seed/data/seo_copy", + "base_url": "https://chuanjiafeng.net", + "dry_run": false, + "run_register": true, + "run_apply": true, + "overall_status": "completed", + "register_status": "domain_exists", + "register_message": "目标域名已存在,可继续执行 SEO 策略 apply。", + "apply_status": "applied", + "apply_message": "", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-07T20:40:03+08:00", + "updated_at": "2026-04-07T20:40:03+08:00", + "summary": "status=completed, register=domain_exists, apply=applied", + "handoff_stage_code": "ready_for_prepare", + "handoff_stage_label": "可进入 Prepare", + "handoff_summary": "本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。", + "handoff_next_step": "继续执行 prepare", + "handoff_next_command": "php scripts/seo_copy_batch_prepare.php 'chuanjiafeng-host-seed-batch2' --approved-dir='SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-host-seed/data/seo_copy_jobs/approved'" + }, + { + "run_name": "204003_expand-supply-example-com", + "detail_slug": "204003_expand-supply-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260407/204003_expand-supply-example-com.json", + "host": "*.expand-supply.example.com", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-domain-seed", + "bundle_detail_slug": "expand-supply-example-com", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-domain-seed/data/seo_copy_jobs/approved/expand-supply-domain-seed-batch2.manifest.json", + "manifest_name": "expand-supply-domain-seed-batch2", + "approved_dir": "SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-domain-seed/data/seo_copy_jobs/approved", + "target_root": "SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-domain-seed/data/seo_copy", + "base_url": "https://*.expand-supply.example.com", + "dry_run": false, + "run_register": true, + "run_apply": true, + "overall_status": "completed", + "register_status": "domain_exists", + "register_message": "目标域名已存在,可继续执行 SEO 策略 apply。", + "apply_status": "applied", + "apply_message": "", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-07T20:40:03+08:00", + "updated_at": "2026-04-07T20:40:03+08:00", + "summary": "status=completed, register=domain_exists, apply=applied", + "handoff_stage_code": "ready_for_prepare", + "handoff_stage_label": "可进入 Prepare", + "handoff_summary": "本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。", + "handoff_next_step": "继续执行 prepare", + "handoff_next_command": "php scripts/seo_copy_batch_prepare.php 'expand-supply-domain-seed-batch2' --approved-dir='SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-domain-seed/data/seo_copy_jobs/approved'" + }, + { + "run_name": "202440_expand-supply-example-com", + "detail_slug": "202440_expand-supply-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260407/202440_expand-supply-example-com.json", + "host": "*.expand-supply.example.com", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard", + "bundle_detail_slug": "expand-supply-example-com", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard/data/seo_copy_jobs/approved/expand-supply-core-batch1.manifest.json", + "manifest_name": "expand-supply-core-batch1", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard/data/seo_copy", + "base_url": "https://*.expand-supply.example.com", + "dry_run": false, + "run_register": true, + "run_apply": true, + "overall_status": "completed", + "register_status": "domain_exists", + "register_message": "目标域名已存在,可继续执行 SEO 策略 apply。", + "apply_status": "applied", + "apply_message": "", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-07T20:24:40+08:00", + "updated_at": "2026-04-07T20:24:40+08:00", + "summary": "status=completed, register=domain_exists, apply=applied", + "handoff_stage_code": "ready_for_prepare", + "handoff_stage_label": "可进入 Prepare", + "handoff_summary": "本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。", + "handoff_next_step": "继续执行 prepare", + "handoff_next_command": "php scripts/seo_copy_batch_prepare.php 'expand-supply-core-batch1' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard/data/seo_copy_jobs/approved'" + }, + { + "run_name": "202349_expand-supply-example-com", + "detail_slug": "202349_expand-supply-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260407/202349_expand-supply-example-com.json", + "host": "*.expand-supply.example.com", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard", + "bundle_detail_slug": "expand-supply-example-com", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard/data/seo_copy_jobs/approved/expand-supply-core-batch1.manifest.json", + "manifest_name": "expand-supply-core-batch1", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard/data/seo_copy", + "base_url": "https://*.expand-supply.example.com", + "dry_run": false, + "run_register": true, + "run_apply": true, + "overall_status": "completed", + "register_status": "domain_exists", + "register_message": "目标域名已存在,可继续执行 SEO 策略 apply。", + "apply_status": "applied", + "apply_message": "", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-07T20:23:49+08:00", + "updated_at": "2026-04-07T20:23:49+08:00", + "summary": "status=completed, register=domain_exists, apply=applied", + "handoff_stage_code": "ready_for_prepare", + "handoff_stage_label": "可进入 Prepare", + "handoff_summary": "本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。", + "handoff_next_step": "继续执行 prepare", + "handoff_next_command": "php scripts/seo_copy_batch_prepare.php 'expand-supply-core-batch1' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard/data/seo_copy_jobs/approved'" + }, + { + "run_name": "202301_expand-supply-example-com", + "detail_slug": "202301_expand-supply-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260407/202301_expand-supply-example-com.json", + "host": "*.expand-supply.example.com", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard", + "bundle_detail_slug": "expand-supply-example-com", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard/data/seo_copy_jobs/approved/expand-supply-core-batch1.manifest.json", + "manifest_name": "expand-supply-core-batch1", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard/data/seo_copy", + "base_url": "https://*.expand-supply.example.com", + "dry_run": false, + "run_register": true, + "run_apply": true, + "overall_status": "completed", + "register_status": "domain_exists", + "register_message": "目标域名已存在,可继续执行 SEO 策略 apply。", + "apply_status": "applied", + "apply_message": "", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-07T20:23:01+08:00", + "updated_at": "2026-04-07T20:23:01+08:00", + "summary": "status=completed, register=domain_exists, apply=applied", + "handoff_stage_code": "ready_for_prepare", + "handoff_stage_label": "可进入 Prepare", + "handoff_summary": "本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。", + "handoff_next_step": "继续执行 prepare", + "handoff_next_command": "php scripts/seo_copy_batch_prepare.php 'expand-supply-core-batch1' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard/data/seo_copy_jobs/approved'" + }, + { + "run_name": "201958_expand-supply-example-com", + "detail_slug": "201958_expand-supply-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260407/201958_expand-supply-example-com.json", + "host": "*.expand-supply.example.com", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard", + "bundle_detail_slug": "expand-supply-example-com", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard/data/seo_copy_jobs/approved/expand-supply-core-batch1.manifest.json", + "manifest_name": "expand-supply-core-batch1", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard/data/seo_copy", + "base_url": "https://*.expand-supply.example.com", + "dry_run": false, + "run_register": true, + "run_apply": true, + "overall_status": "completed", + "register_status": "created", + "register_message": "目标域名尚未创建,当前样板已具备建站记录所需最小字段。", + "apply_status": "applied", + "apply_message": "", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-07T20:19:58+08:00", + "updated_at": "2026-04-07T20:19:58+08:00", + "summary": "status=completed, register=created, apply=applied", + "handoff_stage_code": "ready_for_prepare", + "handoff_stage_label": "可进入 Prepare", + "handoff_summary": "本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。", + "handoff_next_step": "继续执行 prepare", + "handoff_next_command": "php scripts/seo_copy_batch_prepare.php 'expand-supply-core-batch1' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard/data/seo_copy_jobs/approved'" + }, + { + "run_name": "201921_expand-supply-example-com", + "detail_slug": "201921_expand-supply-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260407/201921_expand-supply-example-com.json", + "host": "*.expand-supply.example.com", + "bundle_root": "SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard", + "bundle_detail_slug": "expand-supply-example-com", + "manifest_path": "SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard/data/seo_copy_jobs/approved/expand-supply-core-batch1.manifest.json", + "manifest_name": "expand-supply-core-batch1", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard/data/seo_copy", + "base_url": "https://*.expand-supply.example.com", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "ready_to_create", + "register_message": "目标域名尚未创建,当前样板已具备建站记录所需最小字段。", + "apply_status": "domain_not_found", + "apply_message": "请先在站点表中创建目标域名,再应用 bootstrap 策略样板。", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-07T20:19:21+08:00", + "updated_at": "2026-04-07T20:19:21+08:00", + "summary": "status=dry_run_completed, register=ready_to_create, apply=domain_not_found", + "handoff_stage_code": "ready_to_register", + "handoff_stage_label": "待正式入库", + "handoff_summary": "高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php 'SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard' --dry-run=0 --format=text" + }, + { + "run_name": "201915_expand-supply-example-com", + "detail_slug": "201915_expand-supply-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260407/201915_expand-supply-example-com.json", + "host": "*.expand-supply.example.com", + "bundle_root": "SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard", + "bundle_detail_slug": "expand-supply-example-com", + "manifest_path": "SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard/data/seo_copy_jobs/approved/expand-supply-core-batch1.manifest.json", + "manifest_name": "expand-supply-core-batch1", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard/data/seo_copy", + "base_url": "https://*.expand-supply.example.com", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_needs_attention", + "register_status": "template_not_found", + "register_message": "模板不存在,无法创建站点记录。", + "apply_status": "domain_not_found", + "apply_message": "请先在站点表中创建目标域名,再应用 bootstrap 策略样板。", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-07T20:19:15+08:00", + "updated_at": "2026-04-07T20:19:15+08:00", + "summary": "status=dry_run_needs_attention, register=template_not_found, apply=domain_not_found", + "handoff_stage_code": "needs_attention", + "handoff_stage_label": "需关注", + "handoff_summary": "当前 bootstrap run 已出现错误或异常状态,建议先重跑 dry-run 并核对 register/apply 明细。", + "handoff_next_step": "先重跑高层 dry-run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php 'SEONexus/code/storage/domain_bootstrap_bundles/expand-supply-wildcard' --dry-run=1 --format=text" + }, + { + "run_name": "201626_chuanjiafeng-net", + "detail_slug": "201626_chuanjiafeng-net", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260407/201626_chuanjiafeng-net.json", + "host": "chuanjiafeng.net", + "bundle_root": "SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact", + "bundle_detail_slug": "chuanjiafeng-net", + "manifest_path": "SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact/data/seo_copy_jobs/approved/20260405_153500.manifest.json", + "manifest_name": "20260405_153500", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact/data/seo_copy", + "base_url": "https://chuanjiafeng.net", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "domain_exists", + "register_message": "目标域名已存在,可继续执行 SEO 策略 apply。", + "apply_status": "dry_run", + "apply_message": "", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-07T20:16:26+08:00", + "updated_at": "2026-04-07T20:16:26+08:00", + "summary": "status=dry_run_completed, register=domain_exists, apply=dry_run", + "handoff_stage_code": "ready_to_apply", + "handoff_stage_label": "待正式应用", + "handoff_summary": "高层 dry-run 已确认域名可继续 apply,下一步应正式执行 bootstrap run。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php 'SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact' --dry-run=0 --format=text" + }, + { + "run_name": "014156_demo-example-com", + "detail_slug": "014156_demo-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260406/014156_demo-example-com.json", + "host": "demo.example.com", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal", + "bundle_detail_slug": "demo-example-com", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved/demo-core-batch1.manifest.json", + "manifest_name": "demo-core-batch1", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy", + "base_url": "https://demo.example.com", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "ready_to_create", + "register_message": "目标域名尚未创建,当前样板已具备建站记录所需最小字段。", + "apply_status": "domain_not_found", + "apply_message": "请先在站点表中创建目标域名,再应用 bootstrap 策略样板。", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-06T01:41:56+08:00", + "updated_at": "2026-04-06T01:41:56+08:00", + "summary": "status=dry_run_completed, register=ready_to_create, apply=domain_not_found", + "handoff_stage_code": "ready_to_register", + "handoff_stage_label": "待正式入库", + "handoff_summary": "高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal' --dry-run=0 --format=text" + }, + { + "run_name": "014155_demo-example-com", + "detail_slug": "014155_demo-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260406/014155_demo-example-com.json", + "host": "demo.example.com", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal", + "bundle_detail_slug": "demo-example-com", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved/demo-core-batch1.manifest.json", + "manifest_name": "demo-core-batch1", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy", + "base_url": "https://demo.example.com", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "ready_to_create", + "register_message": "目标域名尚未创建,当前样板已具备建站记录所需最小字段。", + "apply_status": "domain_not_found", + "apply_message": "请先在站点表中创建目标域名,再应用 bootstrap 策略样板。", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-06T01:41:55+08:00", + "updated_at": "2026-04-06T01:41:55+08:00", + "summary": "status=dry_run_completed, register=ready_to_create, apply=domain_not_found", + "handoff_stage_code": "ready_to_register", + "handoff_stage_label": "待正式入库", + "handoff_summary": "高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal' --dry-run=0 --format=text" + }, + { + "run_name": "011542_demo-example-com", + "detail_slug": "011542_demo-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260406/011542_demo-example-com.json", + "host": "demo.example.com", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal", + "bundle_detail_slug": "demo-example-com", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved/demo-core-batch1.manifest.json", + "manifest_name": "demo-core-batch1", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy", + "base_url": "https://demo.example.com", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "ready_to_create", + "register_message": "目标域名尚未创建,当前样板已具备建站记录所需最小字段。", + "apply_status": "domain_not_found", + "apply_message": "请先在站点表中创建目标域名,再应用 bootstrap 策略样板。", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-06T01:15:42+08:00", + "updated_at": "2026-04-06T01:15:42+08:00", + "summary": "status=dry_run_completed, register=ready_to_create, apply=domain_not_found", + "handoff_stage_code": "ready_to_register", + "handoff_stage_label": "待正式入库", + "handoff_summary": "高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal' --dry-run=0 --format=text" + }, + { + "run_name": "155926_demo-example-com", + "detail_slug": "155926_demo-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/155926_demo-example-com.json", + "host": "demo.example.com", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal", + "bundle_detail_slug": "demo-example-com", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved/demo-core-batch1.manifest.json", + "manifest_name": "demo-core-batch1", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy", + "base_url": "https://demo.example.com", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "ready_to_create", + "register_message": "目标域名尚未创建,当前样板已具备建站记录所需最小字段。", + "apply_status": "domain_not_found", + "apply_message": "请先在站点表中创建目标域名,再应用 bootstrap 策略样板。", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-05T15:59:26+08:00", + "updated_at": "2026-04-05T15:59:26+08:00", + "summary": "status=dry_run_completed, register=ready_to_create, apply=domain_not_found", + "handoff_stage_code": "ready_to_register", + "handoff_stage_label": "待正式入库", + "handoff_summary": "高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal' --dry-run=0 --format=text" + }, + { + "run_name": "155925_demo-example-com", + "detail_slug": "155925_demo-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/155925_demo-example-com.json", + "host": "demo.example.com", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal", + "bundle_detail_slug": "demo-example-com", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved/demo-core-batch1.manifest.json", + "manifest_name": "demo-core-batch1", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy", + "base_url": "https://demo.example.com", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "ready_to_create", + "register_message": "目标域名尚未创建,当前样板已具备建站记录所需最小字段。", + "apply_status": "domain_not_found", + "apply_message": "请先在站点表中创建目标域名,再应用 bootstrap 策略样板。", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-05T15:59:25+08:00", + "updated_at": "2026-04-05T15:59:25+08:00", + "summary": "status=dry_run_completed, register=ready_to_create, apply=domain_not_found", + "handoff_stage_code": "ready_to_register", + "handoff_stage_label": "待正式入库", + "handoff_summary": "高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal' --dry-run=0 --format=text" + }, + { + "run_name": "154823_demo-example-com", + "detail_slug": "154823_demo-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/154823_demo-example-com.json", + "host": "demo.example.com", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal", + "bundle_detail_slug": "demo-example-com", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved/demo-core-batch1.manifest.json", + "manifest_name": "demo-core-batch1", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy", + "base_url": "https://demo.example.com", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "ready_to_create", + "register_message": "目标域名尚未创建,当前样板已具备建站记录所需最小字段。", + "apply_status": "domain_not_found", + "apply_message": "请先在站点表中创建目标域名,再应用 bootstrap 策略样板。", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-05T15:48:23+08:00", + "updated_at": "2026-04-05T15:48:23+08:00", + "summary": "status=dry_run_completed, register=ready_to_create, apply=domain_not_found", + "handoff_stage_code": "ready_to_register", + "handoff_stage_label": "待正式入库", + "handoff_summary": "高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal' --dry-run=0 --format=text" + }, + { + "run_name": "144948_chuanjiafeng-net", + "detail_slug": "144948_chuanjiafeng-net", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/144948_chuanjiafeng-net.json", + "host": "chuanjiafeng.net", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact", + "bundle_detail_slug": "chuanjiafeng-net", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact/data/seo_copy_jobs/approved/20260405_153500.manifest.json", + "manifest_name": "20260405_153500", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact/data/seo_copy", + "base_url": "https://chuanjiafeng.net", + "dry_run": false, + "run_register": true, + "run_apply": true, + "overall_status": "completed", + "register_status": "domain_exists", + "register_message": "目标域名已存在,可继续执行 SEO 策略 apply。", + "apply_status": "applied", + "apply_message": "", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-05T14:49:48+08:00", + "updated_at": "2026-04-05T14:49:48+08:00", + "summary": "status=completed, register=domain_exists, apply=applied", + "handoff_stage_code": "ready_for_prepare", + "handoff_stage_label": "可进入 Prepare", + "handoff_summary": "本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。", + "handoff_next_step": "继续执行 prepare", + "handoff_next_command": "php scripts/seo_copy_batch_prepare.php '20260405_153500' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact/data/seo_copy_jobs/approved'" + }, + { + "run_name": "144204_chuanjiafeng-net", + "detail_slug": "144204_chuanjiafeng-net", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/144204_chuanjiafeng-net.json", + "host": "chuanjiafeng.net", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact", + "bundle_detail_slug": "chuanjiafeng-net", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact/data/seo_copy_jobs/approved/20260405_153500.manifest.json", + "manifest_name": "20260405_153500", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact/data/seo_copy", + "base_url": "https://chuanjiafeng.net", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "domain_exists", + "register_message": "目标域名已存在,可继续执行 SEO 策略 apply。", + "apply_status": "dry_run", + "apply_message": "", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-05T14:42:04+08:00", + "updated_at": "2026-04-05T14:42:04+08:00", + "summary": "status=dry_run_completed, register=domain_exists, apply=dry_run", + "handoff_stage_code": "ready_to_apply", + "handoff_stage_label": "待正式应用", + "handoff_summary": "高层 dry-run 已确认域名可继续 apply,下一步应正式执行 bootstrap run。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact' --dry-run=0 --format=text" + }, + { + "run_name": "144204_demo-example-com", + "detail_slug": "144204_demo-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/144204_demo-example-com.json", + "host": "demo.example.com", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal", + "bundle_detail_slug": "demo-example-com", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved/demo-core-batch1.manifest.json", + "manifest_name": "demo-core-batch1", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy", + "base_url": "https://demo.example.com", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "ready_to_create", + "register_message": "目标域名尚未创建,当前样板已具备建站记录所需最小字段。", + "apply_status": "domain_not_found", + "apply_message": "请先在站点表中创建目标域名,再应用 bootstrap 策略样板。", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-05T14:42:04+08:00", + "updated_at": "2026-04-05T14:42:04+08:00", + "summary": "status=dry_run_completed, register=ready_to_create, apply=domain_not_found", + "handoff_stage_code": "ready_to_register", + "handoff_stage_label": "待正式入库", + "handoff_summary": "高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal' --dry-run=0 --format=text" + }, + { + "run_name": "144129_demo-example-com", + "detail_slug": "144129_demo-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/144129_demo-example-com.json", + "host": "demo.example.com", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal", + "bundle_detail_slug": "demo-example-com", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved/demo-core-batch1.manifest.json", + "manifest_name": "demo-core-batch1", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy", + "base_url": "https://demo.example.com", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "ready_to_create", + "register_message": "目标域名尚未创建,当前样板已具备建站记录所需最小字段。", + "apply_status": "domain_not_found", + "apply_message": "请先在站点表中创建目标域名,再应用 bootstrap 策略样板。", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-05T14:41:29+08:00", + "updated_at": "2026-04-05T14:41:29+08:00", + "summary": "status=dry_run_completed, register=ready_to_create, apply=domain_not_found", + "handoff_stage_code": "ready_to_register", + "handoff_stage_label": "待正式入库", + "handoff_summary": "高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal' --dry-run=0 --format=text" + }, + { + "run_name": "144100_chuanjiafeng-net", + "detail_slug": "144100_chuanjiafeng-net", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/144100_chuanjiafeng-net.json", + "host": "chuanjiafeng.net", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact", + "bundle_detail_slug": "chuanjiafeng-net", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact/data/seo_copy_jobs/approved/20260405_153500.manifest.json", + "manifest_name": "20260405_153500", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact/data/seo_copy", + "base_url": "https://chuanjiafeng.net", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "domain_exists", + "register_message": "目标域名已存在,可继续执行 SEO 策略 apply。", + "apply_status": "dry_run", + "apply_message": "", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-05T14:41:00+08:00", + "updated_at": "2026-04-05T14:41:00+08:00", + "summary": "status=dry_run_completed, register=domain_exists, apply=dry_run", + "handoff_stage_code": "ready_to_apply", + "handoff_stage_label": "待正式应用", + "handoff_summary": "高层 dry-run 已确认域名可继续 apply,下一步应正式执行 bootstrap run。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact' --dry-run=0 --format=text" + }, + { + "run_name": "144100_demo-example-com", + "detail_slug": "144100_demo-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/144100_demo-example-com.json", + "host": "demo.example.com", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal", + "bundle_detail_slug": "demo-example-com", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved/demo-core-batch1.manifest.json", + "manifest_name": "demo-core-batch1", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy", + "base_url": "https://demo.example.com", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "ready_to_create", + "register_message": "目标域名尚未创建,当前样板已具备建站记录所需最小字段。", + "apply_status": "domain_not_found", + "apply_message": "请先在站点表中创建目标域名,再应用 bootstrap 策略样板。", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-05T14:41:00+08:00", + "updated_at": "2026-04-05T14:41:00+08:00", + "summary": "status=dry_run_completed, register=ready_to_create, apply=domain_not_found", + "handoff_stage_code": "ready_to_register", + "handoff_stage_label": "待正式入库", + "handoff_summary": "高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal' --dry-run=0 --format=text" + }, + { + "run_name": "144055_chuanjiafeng-net", + "detail_slug": "144055_chuanjiafeng-net", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/144055_chuanjiafeng-net.json", + "host": "chuanjiafeng.net", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact", + "bundle_detail_slug": "chuanjiafeng-net", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact/data/seo_copy_jobs/approved/20260405_153500.manifest.json", + "manifest_name": "20260405_153500", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact/data/seo_copy", + "base_url": "https://chuanjiafeng.net", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "domain_exists", + "register_message": "目标域名已存在,可继续执行 SEO 策略 apply。", + "apply_status": "dry_run", + "apply_message": "", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-05T14:40:55+08:00", + "updated_at": "2026-04-05T14:40:55+08:00", + "summary": "status=dry_run_completed, register=domain_exists, apply=dry_run", + "handoff_stage_code": "ready_to_apply", + "handoff_stage_label": "待正式应用", + "handoff_summary": "高层 dry-run 已确认域名可继续 apply,下一步应正式执行 bootstrap run。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact' --dry-run=0 --format=text" + }, + { + "run_name": "144055_demo-example-com", + "detail_slug": "144055_demo-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/144055_demo-example-com.json", + "host": "demo.example.com", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal", + "bundle_detail_slug": "demo-example-com", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved/demo-core-batch1.manifest.json", + "manifest_name": "demo-core-batch1", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy", + "base_url": "https://demo.example.com", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "ready_to_create", + "register_message": "目标域名尚未创建,当前样板已具备建站记录所需最小字段。", + "apply_status": "domain_not_found", + "apply_message": "请先在站点表中创建目标域名,再应用 bootstrap 策略样板。", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-05T14:40:55+08:00", + "updated_at": "2026-04-05T14:40:55+08:00", + "summary": "status=dry_run_completed, register=ready_to_create, apply=domain_not_found", + "handoff_stage_code": "ready_to_register", + "handoff_stage_label": "待正式入库", + "handoff_summary": "高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal' --dry-run=0 --format=text" + }, + { + "run_name": "144045_demo-example-com", + "detail_slug": "144045_demo-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/144045_demo-example-com.json", + "host": "demo.example.com", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal", + "bundle_detail_slug": "demo-example-com", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved/demo-core-batch1.manifest.json", + "manifest_name": "demo-core-batch1", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy", + "base_url": "https://demo.example.com", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "ready_to_create", + "register_message": "目标域名尚未创建,当前样板已具备建站记录所需最小字段。", + "apply_status": "domain_not_found", + "apply_message": "请先在站点表中创建目标域名,再应用 bootstrap 策略样板。", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-05T14:40:45+08:00", + "updated_at": "2026-04-05T14:40:45+08:00", + "summary": "status=dry_run_completed, register=ready_to_create, apply=domain_not_found", + "handoff_stage_code": "ready_to_register", + "handoff_stage_label": "待正式入库", + "handoff_summary": "高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal' --dry-run=0 --format=text" + }, + { + "run_name": "142621_demo-example-com", + "detail_slug": "142621_demo-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/142621_demo-example-com.json", + "host": "demo.example.com", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal", + "bundle_detail_slug": "demo-example-com", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved/demo-core-batch1.manifest.json", + "manifest_name": "demo-core-batch1", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy", + "base_url": "https://demo.example.com", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "ready_to_create", + "register_message": "目标域名尚未创建,当前样板已具备建站记录所需最小字段。", + "apply_status": "domain_not_found", + "apply_message": "请先在站点表中创建目标域名,再应用 bootstrap 策略样板。", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-05T14:26:21+08:00", + "updated_at": "2026-04-05T14:26:21+08:00", + "summary": "status=dry_run_completed, register=ready_to_create, apply=domain_not_found", + "handoff_stage_code": "ready_to_register", + "handoff_stage_label": "待正式入库", + "handoff_summary": "高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal' --dry-run=0 --format=text" + }, + { + "run_name": "141405_demo-example-com", + "detail_slug": "141405_demo-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/141405_demo-example-com.json", + "host": "demo.example.com", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal", + "bundle_detail_slug": "demo-example-com", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved/demo-core-batch1.manifest.json", + "manifest_name": "demo-core-batch1", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy", + "base_url": "https://demo.example.com", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "ready_to_create", + "register_message": "目标域名尚未创建,当前样板已具备建站记录所需最小字段。", + "apply_status": "domain_not_found", + "apply_message": "请先在站点表中创建目标域名,再应用 bootstrap 策略样板。", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-05T14:14:05+08:00", + "updated_at": "2026-04-05T14:14:05+08:00", + "summary": "status=dry_run_completed, register=ready_to_create, apply=domain_not_found", + "handoff_stage_code": "ready_to_register", + "handoff_stage_label": "待正式入库", + "handoff_summary": "高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal' --dry-run=0 --format=text" + }, + { + "run_name": "140711_demo-example-com", + "detail_slug": "140711_demo-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/140711_demo-example-com.json", + "host": "demo.example.com", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal", + "bundle_detail_slug": "demo-example-com", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved/demo-core-batch1.manifest.json", + "manifest_name": "demo-core-batch1", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy", + "base_url": "https://demo.example.com", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "ready_to_create", + "register_message": "目标域名尚未创建,当前样板已具备建站记录所需最小字段。", + "apply_status": "domain_not_found", + "apply_message": "请先在站点表中创建目标域名,再应用 bootstrap 策略样板。", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-05T14:07:11+08:00", + "updated_at": "2026-04-05T14:07:11+08:00", + "summary": "status=dry_run_completed, register=ready_to_create, apply=domain_not_found", + "handoff_stage_code": "ready_to_register", + "handoff_stage_label": "待正式入库", + "handoff_summary": "高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal' --dry-run=0 --format=text" + }, + { + "run_name": "140609_demo-example-com", + "detail_slug": "140609_demo-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/140609_demo-example-com.json", + "host": "demo.example.com", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal", + "bundle_detail_slug": "demo-example-com", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved/demo-core-batch1.manifest.json", + "manifest_name": "demo-core-batch1", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy", + "base_url": "https://demo.example.com", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "ready_to_create", + "register_message": "目标域名尚未创建,当前样板已具备建站记录所需最小字段。", + "apply_status": "domain_not_found", + "apply_message": "请先在站点表中创建目标域名,再应用 bootstrap 策略样板。", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-05T14:06:09+08:00", + "updated_at": "2026-04-05T14:06:09+08:00", + "summary": "status=dry_run_completed, register=ready_to_create, apply=domain_not_found", + "handoff_stage_code": "ready_to_register", + "handoff_stage_label": "待正式入库", + "handoff_summary": "高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal' --dry-run=0 --format=text" + }, + { + "run_name": "140605_chuanjiafeng-net", + "detail_slug": "140605_chuanjiafeng-net", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/140605_chuanjiafeng-net.json", + "host": "chuanjiafeng.net", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact", + "bundle_detail_slug": "chuanjiafeng-net", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact/data/seo_copy_jobs/approved/20260405_153500.manifest.json", + "manifest_name": "20260405_153500", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact/data/seo_copy", + "base_url": "https://chuanjiafeng.net", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "domain_exists", + "register_message": "目标域名已存在,可继续执行 SEO 策略 apply。", + "apply_status": "dry_run", + "apply_message": "", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-05T14:06:05+08:00", + "updated_at": "2026-04-05T14:06:05+08:00", + "summary": "status=dry_run_completed, register=domain_exists, apply=dry_run", + "handoff_stage_code": "ready_to_apply", + "handoff_stage_label": "待正式应用", + "handoff_summary": "高层 dry-run 已确认域名可继续 apply,下一步应正式执行 bootstrap run。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact' --dry-run=0 --format=text" + }, + { + "run_name": "135937_chuanjiafeng-net", + "detail_slug": "135937_chuanjiafeng-net", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/135937_chuanjiafeng-net.json", + "host": "chuanjiafeng.net", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact", + "bundle_detail_slug": "chuanjiafeng-net", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact/data/seo_copy_jobs/approved/20260405_153500.manifest.json", + "manifest_name": "20260405_153500", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact/data/seo_copy", + "base_url": "https://chuanjiafeng.net", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "failed", + "register_status": "", + "register_message": "", + "apply_status": "", + "apply_message": "", + "errors_count": 1, + "errors": [ + "Undefined db config:mysql" + ], + "executed_at": "2026-04-05T13:59:37+08:00", + "updated_at": "2026-04-05T13:59:37+08:00", + "summary": "status=failed, register=, apply=", + "handoff_stage_code": "needs_attention", + "handoff_stage_label": "需关注", + "handoff_summary": "当前 bootstrap run 已出现错误或异常状态,建议先重跑 dry-run 并核对 register/apply 明细。", + "handoff_next_step": "先重跑高层 dry-run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact' --dry-run=1 --format=text" + }, + { + "run_name": "135937_demo-example-com", + "detail_slug": "135937_demo-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/135937_demo-example-com.json", + "host": "demo.example.com", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal", + "bundle_detail_slug": "demo-example-com", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved/demo-core-batch1.manifest.json", + "manifest_name": "demo-core-batch1", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy", + "base_url": "https://demo.example.com", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "failed", + "register_status": "", + "register_message": "", + "apply_status": "", + "apply_message": "", + "errors_count": 1, + "errors": [ + "Undefined db config:mysql" + ], + "executed_at": "2026-04-05T13:59:37+08:00", + "updated_at": "2026-04-05T13:59:37+08:00", + "summary": "status=failed, register=, apply=", + "handoff_stage_code": "needs_attention", + "handoff_stage_label": "需关注", + "handoff_summary": "当前 bootstrap run 已出现错误或异常状态,建议先重跑 dry-run 并核对 register/apply 明细。", + "handoff_next_step": "先重跑高层 dry-run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal' --dry-run=1 --format=text" + }, + { + "run_name": "020311_chuanjiafeng-net", + "detail_slug": "020311_chuanjiafeng-net", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/020311_chuanjiafeng-net.json", + "host": "chuanjiafeng.net", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact", + "bundle_detail_slug": "chuanjiafeng-net", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact/data/seo_copy_jobs/approved/20260405_153500.manifest.json", + "manifest_name": "20260405_153500", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact/data/seo_copy", + "base_url": "https://chuanjiafeng.net", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "domain_exists", + "register_message": "目标域名已存在,可继续执行 SEO 策略 apply。", + "apply_status": "dry_run", + "apply_message": "", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-05T02:03:11+08:00", + "updated_at": "2026-04-05T02:03:11+08:00", + "summary": "status=dry_run_completed, register=domain_exists, apply=dry_run", + "handoff_stage_code": "ready_to_apply", + "handoff_stage_label": "待正式应用", + "handoff_summary": "高层 dry-run 已确认域名可继续 apply,下一步应正式执行 bootstrap run。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact' --dry-run=0 --format=text" + }, + { + "run_name": "014124_chuanjiafeng-net", + "detail_slug": "014124_chuanjiafeng-net", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/014124_chuanjiafeng-net.json", + "host": "chuanjiafeng.net", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact", + "bundle_detail_slug": "chuanjiafeng-net", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact/data/seo_copy_jobs/approved/20260405_153500.manifest.json", + "manifest_name": "20260405_153500", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact/data/seo_copy", + "base_url": "https://chuanjiafeng.net", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "domain_exists", + "register_message": "目标域名已存在,可继续执行 SEO 策略 apply。", + "apply_status": "dry_run", + "apply_message": "", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-05T01:41:24+08:00", + "updated_at": "2026-04-05T01:41:24+08:00", + "summary": "status=dry_run_completed, register=domain_exists, apply=dry_run", + "handoff_stage_code": "ready_to_apply", + "handoff_stage_label": "待正式应用", + "handoff_summary": "高层 dry-run 已确认域名可继续 apply,下一步应正式执行 bootstrap run。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact' --dry-run=0 --format=text" + }, + { + "run_name": "014124_demo-example-com", + "detail_slug": "014124_demo-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/014124_demo-example-com.json", + "host": "demo.example.com", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal", + "bundle_detail_slug": "demo-example-com", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved/demo-core-batch1.manifest.json", + "manifest_name": "demo-core-batch1", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy", + "base_url": "https://demo.example.com", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "ready_to_create", + "register_message": "目标域名尚未创建,当前样板已具备建站记录所需最小字段。", + "apply_status": "domain_not_found", + "apply_message": "请先在站点表中创建目标域名,再应用 bootstrap 策略样板。", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-05T01:41:24+08:00", + "updated_at": "2026-04-05T01:41:24+08:00", + "summary": "status=dry_run_completed, register=ready_to_create, apply=domain_not_found", + "handoff_stage_code": "ready_to_register", + "handoff_stage_label": "待正式入库", + "handoff_summary": "高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal' --dry-run=0 --format=text" + }, + { + "run_name": "014039_chuanjiafeng-net", + "detail_slug": "014039_chuanjiafeng-net", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/014039_chuanjiafeng-net.json", + "host": "chuanjiafeng.net", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact", + "bundle_detail_slug": "chuanjiafeng-net", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact/data/seo_copy_jobs/approved/20260405_153500.manifest.json", + "manifest_name": "20260405_153500", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact/data/seo_copy", + "base_url": "https://chuanjiafeng.net", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "domain_exists", + "register_message": "目标域名已存在,可继续执行 SEO 策略 apply。", + "apply_status": "dry_run", + "apply_message": "", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-05T01:40:39+08:00", + "updated_at": "2026-04-05T01:40:39+08:00", + "summary": "status=dry_run_completed, register=domain_exists, apply=dry_run", + "handoff_stage_code": "ready_to_apply", + "handoff_stage_label": "待正式应用", + "handoff_summary": "高层 dry-run 已确认域名可继续 apply,下一步应正式执行 bootstrap run。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/chuanjiafeng-compact' --dry-run=0 --format=text" + }, + { + "run_name": "014039_demo-example-com", + "detail_slug": "014039_demo-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/014039_demo-example-com.json", + "host": "demo.example.com", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal", + "bundle_detail_slug": "demo-example-com", + "manifest_path": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved/demo-core-batch1.manifest.json", + "manifest_name": "demo-core-batch1", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal/data/seo_copy", + "base_url": "https://demo.example.com", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "ready_to_create", + "register_message": "目标域名尚未创建,当前样板已具备建站记录所需最小字段。", + "apply_status": "domain_not_found", + "apply_message": "请先在站点表中创建目标域名,再应用 bootstrap 策略样板。", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-05T01:40:39+08:00", + "updated_at": "2026-04-05T01:40:39+08:00", + "summary": "status=dry_run_completed, register=ready_to_create, apply=domain_not_found", + "handoff_stage_code": "ready_to_register", + "handoff_stage_label": "待正式入库", + "handoff_summary": "高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_bundles/demo-minimal' --dry-run=0 --format=text" + }, + { + "run_name": "013432_chuanjiafeng-net", + "detail_slug": "013432_chuanjiafeng-net", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/013432_chuanjiafeng-net.json", + "host": "chuanjiafeng.net", + "bundle_root": "/tmp/domain-bootstrap-bundles/chuanjiafeng-compact", + "bundle_detail_slug": "chuanjiafeng-net", + "manifest_path": "/tmp/domain-bootstrap-bundles/chuanjiafeng-compact/data/seo_copy_jobs/approved/chuanjiafeng-core-batch1.manifest.json", + "manifest_name": "chuanjiafeng-core-batch1", + "approved_dir": "/tmp/domain-bootstrap-bundles/chuanjiafeng-compact/data/seo_copy_jobs/approved", + "target_root": "/tmp/domain-bootstrap-bundles/chuanjiafeng-compact/data/seo_copy", + "base_url": "https://chuanjiafeng.net", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "domain_exists", + "register_message": "目标域名已存在,可继续执行 SEO 策略 apply。", + "apply_status": "dry_run", + "apply_message": "", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-05T01:34:32+08:00", + "updated_at": "2026-04-05T01:34:32+08:00", + "summary": "status=dry_run_completed, register=domain_exists, apply=dry_run", + "handoff_stage_code": "ready_to_apply", + "handoff_stage_label": "待正式应用", + "handoff_summary": "高层 dry-run 已确认域名可继续 apply,下一步应正式执行 bootstrap run。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/tmp/domain-bootstrap-bundles/chuanjiafeng-compact' --dry-run=0 --format=text" + }, + { + "run_name": "013432_demo-example-com", + "detail_slug": "013432_demo-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/013432_demo-example-com.json", + "host": "demo.example.com", + "bundle_root": "/tmp/domain-bootstrap-bundles/demo-minimal", + "bundle_detail_slug": "demo-example-com", + "manifest_path": "/tmp/domain-bootstrap-bundles/demo-minimal/data/seo_copy_jobs/approved/demo-core-batch1.manifest.json", + "manifest_name": "demo-core-batch1", + "approved_dir": "/tmp/domain-bootstrap-bundles/demo-minimal/data/seo_copy_jobs/approved", + "target_root": "/tmp/domain-bootstrap-bundles/demo-minimal/data/seo_copy", + "base_url": "https://demo.example.com", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "ready_to_create", + "register_message": "目标域名尚未创建,当前样板已具备建站记录所需最小字段。", + "apply_status": "domain_not_found", + "apply_message": "请先在站点表中创建目标域名,再应用 bootstrap 策略样板。", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-05T01:34:32+08:00", + "updated_at": "2026-04-05T01:34:32+08:00", + "summary": "status=dry_run_completed, register=ready_to_create, apply=domain_not_found", + "handoff_stage_code": "ready_to_register", + "handoff_stage_label": "待正式入库", + "handoff_summary": "高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/tmp/domain-bootstrap-bundles/demo-minimal' --dry-run=0 --format=text" + }, + { + "run_name": "013357_chuanjiafeng-net", + "detail_slug": "013357_chuanjiafeng-net", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/013357_chuanjiafeng-net.json", + "host": "chuanjiafeng.net", + "bundle_root": "/tmp/domain-bootstrap-bundles/chuanjiafeng-compact", + "bundle_detail_slug": "chuanjiafeng-net", + "manifest_path": "/tmp/domain-bootstrap-bundles/chuanjiafeng-compact/data/seo_copy_jobs/approved/chuanjiafeng-core-batch1.manifest.json", + "manifest_name": "chuanjiafeng-core-batch1", + "approved_dir": "/tmp/domain-bootstrap-bundles/chuanjiafeng-compact/data/seo_copy_jobs/approved", + "target_root": "/tmp/domain-bootstrap-bundles/chuanjiafeng-compact/data/seo_copy", + "base_url": "https://chuanjiafeng.net", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "domain_exists", + "register_message": "目标域名已存在,可继续执行 SEO 策略 apply。", + "apply_status": "dry_run", + "apply_message": "", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-05T01:33:57+08:00", + "updated_at": "2026-04-05T01:33:57+08:00", + "summary": "status=dry_run_completed, register=domain_exists, apply=dry_run", + "handoff_stage_code": "ready_to_apply", + "handoff_stage_label": "待正式应用", + "handoff_summary": "高层 dry-run 已确认域名可继续 apply,下一步应正式执行 bootstrap run。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/tmp/domain-bootstrap-bundles/chuanjiafeng-compact' --dry-run=0 --format=text" + }, + { + "run_name": "013357_demo-example-com", + "detail_slug": "013357_demo-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/013357_demo-example-com.json", + "host": "demo.example.com", + "bundle_root": "/tmp/domain-bootstrap-bundles/demo-minimal", + "bundle_detail_slug": "demo-example-com", + "manifest_path": "/tmp/domain-bootstrap-bundles/demo-minimal/data/seo_copy_jobs/approved/demo-core-batch1.manifest.json", + "manifest_name": "demo-core-batch1", + "approved_dir": "/tmp/domain-bootstrap-bundles/demo-minimal/data/seo_copy_jobs/approved", + "target_root": "/tmp/domain-bootstrap-bundles/demo-minimal/data/seo_copy", + "base_url": "https://demo.example.com", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "ready_to_create", + "register_message": "目标域名尚未创建,当前样板已具备建站记录所需最小字段。", + "apply_status": "domain_not_found", + "apply_message": "请先在站点表中创建目标域名,再应用 bootstrap 策略样板。", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-05T01:33:57+08:00", + "updated_at": "2026-04-05T01:33:57+08:00", + "summary": "status=dry_run_completed, register=ready_to_create, apply=domain_not_found", + "handoff_stage_code": "ready_to_register", + "handoff_stage_label": "待正式入库", + "handoff_summary": "高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/tmp/domain-bootstrap-bundles/demo-minimal' --dry-run=0 --format=text" + }, + { + "run_name": "012639_chuanjiafeng-net", + "detail_slug": "012639_chuanjiafeng-net", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/012639_chuanjiafeng-net.json", + "host": "chuanjiafeng.net", + "bundle_root": "/tmp/domain-bootstrap-bundles/chuanjiafeng-compact", + "bundle_detail_slug": "chuanjiafeng-net", + "manifest_path": "/tmp/domain-bootstrap-bundles/chuanjiafeng-compact/data/seo_copy_jobs/approved/chuanjiafeng-core-batch1.manifest.json", + "manifest_name": "chuanjiafeng-core-batch1", + "approved_dir": "/tmp/domain-bootstrap-bundles/chuanjiafeng-compact/data/seo_copy_jobs/approved", + "target_root": "/tmp/domain-bootstrap-bundles/chuanjiafeng-compact/data/seo_copy", + "base_url": "https://chuanjiafeng.net", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "domain_exists", + "register_message": "目标域名已存在,可继续执行 SEO 策略 apply。", + "apply_status": "dry_run", + "apply_message": "", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-05T01:26:39+08:00", + "updated_at": "2026-04-05T01:26:39+08:00", + "summary": "status=dry_run_completed, register=domain_exists, apply=dry_run", + "handoff_stage_code": "ready_to_apply", + "handoff_stage_label": "待正式应用", + "handoff_summary": "高层 dry-run 已确认域名可继续 apply,下一步应正式执行 bootstrap run。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/tmp/domain-bootstrap-bundles/chuanjiafeng-compact' --dry-run=0 --format=text" + }, + { + "run_name": "012639_demo-example-com", + "detail_slug": "012639_demo-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260405/012639_demo-example-com.json", + "host": "demo.example.com", + "bundle_root": "/tmp/domain-bootstrap-bundles/demo-minimal", + "bundle_detail_slug": "demo-example-com", + "manifest_path": "/tmp/domain-bootstrap-bundles/demo-minimal/data/seo_copy_jobs/approved/demo-core-batch1.manifest.json", + "manifest_name": "demo-core-batch1", + "approved_dir": "/tmp/domain-bootstrap-bundles/demo-minimal/data/seo_copy_jobs/approved", + "target_root": "/tmp/domain-bootstrap-bundles/demo-minimal/data/seo_copy", + "base_url": "https://demo.example.com", + "dry_run": true, + "run_register": true, + "run_apply": true, + "overall_status": "dry_run_completed", + "register_status": "ready_to_create", + "register_message": "目标域名尚未创建,当前样板已具备建站记录所需最小字段。", + "apply_status": "domain_not_found", + "apply_message": "请先在站点表中创建目标域名,再应用 bootstrap 策略样板。", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-05T01:26:39+08:00", + "updated_at": "2026-04-05T01:26:39+08:00", + "summary": "status=dry_run_completed, register=ready_to_create, apply=domain_not_found", + "handoff_stage_code": "ready_to_register", + "handoff_stage_label": "待正式入库", + "handoff_summary": "高层 dry-run 已确认 register 样板完整,下一步应正式执行 bootstrap run 完成入库。", + "handoff_next_step": "正式执行高层 run", + "handoff_next_command": "php scripts/domain_bootstrap_run.php '/tmp/domain-bootstrap-bundles/demo-minimal' --dry-run=0 --format=text" + } + ], + "runs_count": 59, + "status_totals": { + "completed": 19, + "dry_run_completed": 37, + "dry_run_needs_attention": 1, + "failed": 2 + }, + "handoff_ready_to_register_count": 24, + "handoff_ready_to_apply_count": 13, + "handoff_ready_for_prepare_count": 19, + "handoff_attention_count": 3, + "latest_run": { + "run_name": "151314_video-test-com", + "detail_slug": "151314_video-test-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260408/151314_video-test-com.json", + "host": "video-test.com", + "bundle_root": "SEONexus/code/storage/domain_bootstrap_bundles/video-test-next-stage-a1", + "bundle_detail_slug": "video-test-com", + "manifest_path": "SEONexus/code/storage/domain_bootstrap_bundles/video-test-next-stage-a1/data/seo_copy_jobs/approved/20260408_145449.manifest.json", + "manifest_name": "20260408_145449", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/video-test-example-com/data/seo_copy_jobs/approved", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/video-test-example-com/data/seo_copy", + "base_url": "https://video-test.com", + "dry_run": false, + "run_register": true, + "run_apply": true, + "overall_status": "completed", + "register_status": "created", + "register_message": "目标域名尚未创建,当前样板已具备建站记录所需最小字段。", + "apply_status": "applied", + "apply_message": "", + "errors_count": 0, + "errors": [], + "executed_at": "2026-04-08T15:13:14+08:00", + "updated_at": "2026-04-08T15:13:14+08:00", + "summary": "status=completed, register=created, apply=applied", + "handoff_stage_code": "ready_for_prepare", + "handoff_stage_label": "可进入 Prepare", + "handoff_summary": "本次 bootstrap run 已完成正式入库与策略应用,下一步可以进入 prepare 和 release dry-run。", + "handoff_next_step": "继续执行 prepare", + "handoff_next_command": "php scripts/seo_copy_batch_prepare.php '20260408_145449' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/video-test-example-com/data/seo_copy_jobs/approved'" + } +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/batch.summary.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/batch.summary.html new file mode 100644 index 0000000..48a8bb7 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/batch.summary.html @@ -0,0 +1,18 @@ + + + + +Domain Bootstrap Batch Summary + + + +

Domain Bootstrap Batch Summary

+

template: /www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/generated/domain-bootstrap-batch.generated.xlsx

+

batch_root: /www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles

+

processed: 2 / success: 2 / failed: 0

+ + + +
HostBundle RootStrategyStatusMessageCommand
traffic-supply.example.com/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-comtrafficsuccesswrittenphp '/www/wwwroot/diff-maccms/SEONexus/code/scripts/seo_copy_domain_bootstrap.php' 'traffic-supply.example.com' --detail-id='154124' --detail-slug='sheng-dan-bu-du-xing-meng-fei-si-lian-qu' --search-keyword='圣诞' --category-parent='dian-ying' --category-child='ju-qing-pian' --bundle-root='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com' --index-root='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles' --portal-root='off' --bootstrap-run='off' --play-type='youzhi' --play-index='1' --forge-index='1' --rank-slug='daily' --match-type='exact' --seed-scope='domain' --strategy-profile='traffic' --template-id='1' --site-name='Traffic Supply' --site-keywords='Traffic Supply,影视推荐' --site-description='Traffic Supply 内容整理与推荐。'
*.expand-supply.example.com/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-comexpandsuccesswrittenphp '/www/wwwroot/diff-maccms/SEONexus/code/scripts/seo_copy_domain_bootstrap.php' '*.expand-supply.example.com' --detail-id='153511' --detail-slug='yi-gua-ding-qian-kun' --search-keyword='一卦定乾坤' --category-parent='zong-yi' --category-child='da-lu-zong-yi' --bundle-root='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com' --index-root='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles' --portal-root='off' --bootstrap-run='off' --play-type='douban' --play-index='1' --forge-index='1' --rank-slug='daily' --match-type='wildcard' --parent-domain='expand-supply.example.com' --seed-scope='host' --strategy-profile='expand' --template-id='1' --site-name='Expand Supply' --site-keywords='Expand Supply,影视推荐' --site-description='Expand Supply 内容整理与推荐。'
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/batch.summary.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/batch.summary.json new file mode 100644 index 0000000..23bd1cb --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/batch.summary.json @@ -0,0 +1,705 @@ +{ + "template_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/generated/domain-bootstrap-batch.generated.xlsx", + "batch_root": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles", + "index_root": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles", + "portal_root": "off", + "bootstrap_run": "off", + "processed_count": 2, + "success_count": 2, + "failed_count": 0, + "items": [ + { + "host": "traffic-supply.example.com", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com", + "strategy_profile": "traffic", + "status": "success", + "message": "written", + "command": "php '/www/wwwroot/diff-maccms/SEONexus/code/scripts/seo_copy_domain_bootstrap.php' 'traffic-supply.example.com' --detail-id='154124' --detail-slug='sheng-dan-bu-du-xing-meng-fei-si-lian-qu' --search-keyword='圣诞' --category-parent='dian-ying' --category-child='ju-qing-pian' --bundle-root='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com' --index-root='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles' --portal-root='off' --bootstrap-run='off' --play-type='youzhi' --play-index='1' --forge-index='1' --rank-slug='daily' --match-type='exact' --seed-scope='domain' --strategy-profile='traffic' --template-id='1' --site-name='Traffic Supply' --site-keywords='Traffic Supply,影视推荐' --site-description='Traffic Supply 内容整理与推荐。'", + "exit_code": 0, + "output": [ + "{", + " \"host\": \"traffic-supply.example.com\",", + " \"host_dir\": \"traffic-supply-example-com\",", + " \"manifest\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved/traffic-supply-example-com-core-batch1.manifest.json\",", + " \"manifest_status\": \"written\",", + " \"target_root\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy\",", + " \"approved_dir\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved\",", + " \"bundle_root\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com\",", + " \"base_url\": \"https://traffic-supply.example.com\",", + " \"items_count\": 9,", + " \"items\": [", + " {", + " \"scene\": \"home\",", + " \"page_key\": \"index\",", + " \"target_path\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy/traffic-supply-example-com/home/index.json\",", + " \"status\": \"written\"", + " },", + " {", + " \"scene\": \"category_index\",", + " \"page_key\": \"dian-ying\",", + " \"target_path\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy/traffic-supply-example-com/category_index/dian-ying.json\",", + " \"status\": \"written\"", + " },", + " {", + " \"scene\": \"category_list\",", + " \"page_key\": \"dian-ying--ju-qing-pian\",", + " \"target_path\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy/traffic-supply-example-com/category_list/dian-ying--ju-qing-pian.json\",", + " \"status\": \"written\"", + " },", + " {", + " \"scene\": \"search\",", + " \"page_key\": \"h-46b7136c36500625\",", + " \"target_path\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy/traffic-supply-example-com/search/h-46b7136c36500625.json\",", + " \"status\": \"written\"", + " },", + " {", + " \"scene\": \"rank_index\",", + " \"page_key\": \"index\",", + " \"target_path\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy/traffic-supply-example-com/rank_index/index.json\",", + " \"status\": \"written\"", + " },", + " {", + " \"scene\": \"rank_list\",", + " \"page_key\": \"daily\",", + " \"target_path\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy/traffic-supply-example-com/rank_list/daily.json\",", + " \"status\": \"written\"", + " },", + " {", + " \"scene\": \"detail\",", + " \"page_key\": \"154124\",", + " \"target_path\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy/traffic-supply-example-com/detail/154124.json\",", + " \"status\": \"written\"", + " },", + " {", + " \"scene\": \"forge\",", + " \"page_key\": \"154124-forge-1\",", + " \"target_path\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy/traffic-supply-example-com/forge/154124-forge-1.json\",", + " \"status\": \"written\"", + " },", + " {", + " \"scene\": \"play\",", + " \"page_key\": \"154124-play-youzhi-1\",", + " \"target_path\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy/traffic-supply-example-com/play/154124-play-youzhi-1.json\",", + " \"status\": \"written\"", + " }", + " ],", + " \"site_register\": {", + " \"d_domain\": \"traffic-supply.example.com\",", + " \"d_match_type\": \"exact\",", + " \"d_parent_domain\": \"\",", + " \"d_seed_scope\": \"domain\",", + " \"d_seo_cfg\": {", + " \"strategy_profile\": \"traffic\",", + " \"canonical_mode\": \"strict\",", + " \"play_index_mode\": \"index_follow\",", + " \"forge\": {", + " \"exposure_profile\": \"balanced\",", + " \"enable\": true,", + " \"count\": 12,", + " \"entry_count\": 3,", + " \"sitemap_count\": 2,", + " \"route_group\": \"detail_forge_v2\",", + " \"title_source\": \"v_seo_words\"", + " },", + " \"intro_block\": {", + " \"home\": true,", + " \"category\": true,", + " \"detail\": true,", + " \"search\": true", + " },", + " \"structured_data\": {", + " \"policy\": \"compact\",", + " \"reference_mode\": \"id_only\",", + " \"website_node\": true,", + " \"page_node\": true,", + " \"breadcrumb_node\": true,", + " \"video_object_node\": true,", + " \"organization_node\": true,", + " \"organization_name\": \"\",", + " \"same_as\": []", + " },", + " \"runtime_acceptance\": {", + " \"enable\": false,", + " \"samples\": []", + " },", + " \"robots_policy\": \"index_follow\",", + " \"match_type\": \"exact\",", + " \"seed_scope\": \"domain\",", + " \"wildcard_enable\": false", + " },", + " \"t_id\": 1,", + " \"d_name\": \"Traffic Supply\",", + " \"d_keywords\": \"Traffic Supply,影视推荐\",", + " \"d_description\": \"Traffic Supply 内容整理与推荐。\",", + " \"d_index_title\": \"Traffic Supply影视内容推荐\",", + " \"d_index_keywords\": \"Traffic Supply,影视推荐\",", + " \"d_index_description\": \"Traffic Supply 内容整理与推荐。\",", + " \"d_statis\": \"\",", + " \"d_logo_type\": 0,", + " \"d_text_logo\": \"Traffic Supply\",", + " \"d_img_logo\": \"\",", + " \"d_content_encode\": 0,", + " \"info_id\": 0,", + " \"d_baidu_token\": \"\",", + " \"_notes\": [", + " \"本文件用于创建 domain 记录,模板配置 t_cfg 会在创建时自动从模板表读取。\",", + " \"如目标域名已存在,register dry-run 会返回 domain_exists,后续直接执行 SEO 策略 apply 即可。\",", + " \"建议在正式 apply 前先检查 site_name、template_id 和首页三要素文案。\"", + " ]", + " },", + " \"site_register_preview\": {", + " \"payload\": {", + " \"d_domain\": \"traffic-supply.example.com\",", + " \"d_match_type\": \"exact\",", + " \"d_parent_domain\": \"\",", + " \"d_seed_scope\": \"domain\",", + " \"d_seo_cfg\": {", + " \"strategy_profile\": \"traffic\",", + " \"canonical_mode\": \"strict\",", + " \"play_index_mode\": \"index_follow\",", + " \"forge\": {", + " \"exposure_profile\": \"balanced\",", + " \"enable\": true,", + " \"count\": 12,", + " \"entry_count\": 3,", + " \"sitemap_count\": 2,", + " \"route_group\": \"detail_forge_v2\",", + " \"title_source\": \"v_seo_words\"", + " },", + " \"intro_block\": {", + " \"home\": true,", + " \"category\": true,", + " \"detail\": true,", + " \"search\": true", + " },", + " \"structured_data\": {", + " \"policy\": \"compact\",", + " \"reference_mode\": \"id_only\",", + " \"website_node\": true,", + " \"page_node\": true,", + " \"breadcrumb_node\": true,", + " \"video_object_node\": true,", + " \"organization_node\": true,", + " \"organization_name\": \"\",", + " \"same_as\": []", + " },", + " \"runtime_acceptance\": {", + " \"enable\": false,", + " \"samples\": []", + " },", + " \"robots_policy\": \"index_follow\",", + " \"match_type\": \"exact\",", + " \"seed_scope\": \"domain\",", + " \"wildcard_enable\": false", + " },", + " \"t_id\": 1,", + " \"d_name\": \"Traffic Supply\",", + " \"d_keywords\": \"Traffic Supply,影视推荐\",", + " \"d_description\": \"Traffic Supply 内容整理与推荐。\",", + " \"d_index_title\": \"Traffic Supply影视内容推荐\",", + " \"d_index_keywords\": \"Traffic Supply,影视推荐\",", + " \"d_index_description\": \"Traffic Supply 内容整理与推荐。\",", + " \"d_statis\": \"\",", + " \"d_logo_type\": 0,", + " \"d_text_logo\": \"Traffic Supply\",", + " \"d_img_logo\": \"\",", + " \"d_content_encode\": 0,", + " \"info_id\": 0,", + " \"d_baidu_token\": \"\"", + " },", + " \"found\": false,", + " \"status\": \"template_not_found\",", + " \"message\": \"模板不存在,无法创建站点记录。\",", + " \"create_fields\": 0,", + " \"domain_id\": 0,", + " \"template_found\": false,", + " \"template_id\": 1", + " },", + " \"site_strategy\": {", + " \"d_domain\": \"traffic-supply.example.com\",", + " \"d_match_type\": \"exact\",", + " \"d_parent_domain\": \"\",", + " \"d_seed_scope\": \"domain\",", + " \"d_seo_cfg\": {", + " \"strategy_profile\": \"traffic\",", + " \"canonical_mode\": \"strict\",", + " \"play_index_mode\": \"index_follow\",", + " \"forge\": {", + " \"exposure_profile\": \"balanced\",", + " \"enable\": true,", + " \"count\": 12,", + " \"entry_count\": 3,", + " \"sitemap_count\": 2,", + " \"route_group\": \"detail_forge_v2\",", + " \"title_source\": \"v_seo_words\"", + " },", + " \"intro_block\": {", + " \"home\": true,", + " \"category\": true,", + " \"detail\": true,", + " \"search\": true", + " },", + " \"structured_data\": {", + " \"policy\": \"compact\",", + " \"reference_mode\": \"id_only\",", + " \"website_node\": true,", + " \"page_node\": true,", + " \"breadcrumb_node\": true,", + " \"video_object_node\": true,", + " \"organization_node\": true,", + " \"organization_name\": \"\",", + " \"same_as\": []", + " },", + " \"runtime_acceptance\": {", + " \"enable\": false,", + " \"samples\": []", + " },", + " \"robots_policy\": \"index_follow\",", + " \"match_type\": \"exact\",", + " \"seed_scope\": \"domain\",", + " \"wildcard_enable\": false", + " },", + " \"_notes\": [", + " \"导入前请补齐 t_id、d_name、关键词、描述等站点基础字段。\",", + " \"wildcard 模式建议同步确认父域名和 seed_scope,避免多子域共用错误 seed。\",", + " \"本文件只负责域名 SEO 策略与匹配参数,不会替代离线补料 JSON 与 approved manifest。\"", + " ]", + " },", + " \"site_apply_preview\": {", + " \"payload\": {", + " \"d_domain\": \"traffic-supply.example.com\",", + " \"d_match_type\": \"exact\",", + " \"d_parent_domain\": \"\",", + " \"d_seed_scope\": \"domain\",", + " \"d_seo_cfg\": {", + " \"strategy_profile\": \"traffic\",", + " \"canonical_mode\": \"strict\",", + " \"play_index_mode\": \"index_follow\",", + " \"forge\": {", + " \"exposure_profile\": \"balanced\",", + " \"enable\": true,", + " \"count\": 12,", + " \"entry_count\": 3,", + " \"sitemap_count\": 2,", + " \"route_group\": \"detail_forge_v2\",", + " \"title_source\": \"v_seo_words\"", + " },", + " \"intro_block\": {", + " \"home\": true,", + " \"category\": true,", + " \"detail\": true,", + " \"search\": true", + " },", + " \"structured_data\": {", + " \"policy\": \"compact\",", + " \"reference_mode\": \"id_only\",", + " \"website_node\": true,", + " \"page_node\": true,", + " \"breadcrumb_node\": true,", + " \"video_object_node\": true,", + " \"organization_node\": true,", + " \"organization_name\": \"\",", + " \"same_as\": []", + " },", + " \"runtime_acceptance\": {", + " \"enable\": false,", + " \"samples\": []", + " },", + " \"robots_policy\": \"index_follow\",", + " \"match_type\": \"exact\",", + " \"seed_scope\": \"domain\",", + " \"wildcard_enable\": false", + " }", + " },", + " \"found\": false,", + " \"status\": \"domain_not_found\",", + " \"message\": \"请先在站点表中创建目标域名,再应用 bootstrap 策略样板。\",", + " \"diff\": [],", + " \"changed_fields\": 0", + " },", + " \"next_commands\": {", + " \"run_dry_run\": \"php scripts/domain_bootstrap_run.php /www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com --dry-run=1 --format=text\",", + " \"run\": \"php scripts/domain_bootstrap_run.php /www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com --dry-run=0 --format=text\",", + " \"register_dry_run\": \"php scripts/domain_bootstrap_register.php /www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-register.sample.json --dry-run=1 --format=text\",", + " \"register\": \"php scripts/domain_bootstrap_register.php /www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-register.sample.json --format=text\",", + " \"apply_dry_run\": \"php scripts/domain_seo_bootstrap_apply.php /www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-bootstrap.sample.json --dry-run=1 --format=text\",", + " \"apply\": \"php scripts/domain_seo_bootstrap_apply.php /www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-bootstrap.sample.json --format=text\",", + " \"prepare\": \"php scripts/seo_copy_batch_prepare.php traffic-supply-example-com-core-batch1 --approved-dir=/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved\",", + " \"dry_run\": \"php scripts/seo_copy_release_run.php traffic-supply-example-com-core-batch1 --approved-dir=/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved --source-root=/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy --base-url=https://traffic-supply.example.com --dry-run=1 --format=text\",", + " \"publish\": \"php scripts/seo_copy_release_run.php traffic-supply-example-com-core-batch1 --approved-dir=/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved --source-root=/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy --base-url=https://traffic-supply.example.com --format=text\"", + " },", + " \"site_register_path\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-register.sample.json\",", + " \"site_bootstrap_path\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-bootstrap.sample.json\",", + " \"bundle_files\": {", + " \"summary\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/bootstrap-summary.json\",", + " \"manifest_copy\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/manifest.copy.json\",", + " \"site_register\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-register.sample.json\",", + " \"site_register_preview\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-register.preview.json\",", + " \"site_bootstrap\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-bootstrap.sample.json\",", + " \"site_apply_preview\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-apply.preview.json\",", + " \"commands\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/commands.sh\",", + " \"runbook\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/README.md\"", + " },", + " \"bundle_index\": {", + " \"scan_root\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles\",", + " \"bundles_count\": 1,", + " \"json\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_index/index.json\",", + " \"html\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_index/index.html\"", + " }", + "}" + ] + }, + { + "host": "*.expand-supply.example.com", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com", + "strategy_profile": "expand", + "status": "success", + "message": "written", + "command": "php '/www/wwwroot/diff-maccms/SEONexus/code/scripts/seo_copy_domain_bootstrap.php' '*.expand-supply.example.com' --detail-id='153511' --detail-slug='yi-gua-ding-qian-kun' --search-keyword='一卦定乾坤' --category-parent='zong-yi' --category-child='da-lu-zong-yi' --bundle-root='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com' --index-root='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles' --portal-root='off' --bootstrap-run='off' --play-type='douban' --play-index='1' --forge-index='1' --rank-slug='daily' --match-type='wildcard' --parent-domain='expand-supply.example.com' --seed-scope='host' --strategy-profile='expand' --template-id='1' --site-name='Expand Supply' --site-keywords='Expand Supply,影视推荐' --site-description='Expand Supply 内容整理与推荐。'", + "exit_code": 0, + "output": [ + "{", + " \"host\": \"*.expand-supply.example.com\",", + " \"host_dir\": \"expand-supply-example-com\",", + " \"manifest\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy_jobs/approved/expand-supply-example-com-core-batch1.manifest.json\",", + " \"manifest_status\": \"written\",", + " \"target_root\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy\",", + " \"approved_dir\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy_jobs/approved\",", + " \"bundle_root\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com\",", + " \"base_url\": \"https://*.expand-supply.example.com\",", + " \"items_count\": 9,", + " \"items\": [", + " {", + " \"scene\": \"home\",", + " \"page_key\": \"index\",", + " \"target_path\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy/expand-supply-example-com/home/index.json\",", + " \"status\": \"written\"", + " },", + " {", + " \"scene\": \"category_index\",", + " \"page_key\": \"zong-yi\",", + " \"target_path\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy/expand-supply-example-com/category_index/zong-yi.json\",", + " \"status\": \"written\"", + " },", + " {", + " \"scene\": \"category_list\",", + " \"page_key\": \"zong-yi--da-lu-zong-yi\",", + " \"target_path\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy/expand-supply-example-com/category_list/zong-yi--da-lu-zong-yi.json\",", + " \"status\": \"written\"", + " },", + " {", + " \"scene\": \"search\",", + " \"page_key\": \"h-ad6cc0984e10818e\",", + " \"target_path\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy/expand-supply-example-com/search/h-ad6cc0984e10818e.json\",", + " \"status\": \"written\"", + " },", + " {", + " \"scene\": \"rank_index\",", + " \"page_key\": \"index\",", + " \"target_path\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy/expand-supply-example-com/rank_index/index.json\",", + " \"status\": \"written\"", + " },", + " {", + " \"scene\": \"rank_list\",", + " \"page_key\": \"daily\",", + " \"target_path\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy/expand-supply-example-com/rank_list/daily.json\",", + " \"status\": \"written\"", + " },", + " {", + " \"scene\": \"detail\",", + " \"page_key\": \"153511\",", + " \"target_path\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy/expand-supply-example-com/detail/153511.json\",", + " \"status\": \"written\"", + " },", + " {", + " \"scene\": \"forge\",", + " \"page_key\": \"153511-forge-1\",", + " \"target_path\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy/expand-supply-example-com/forge/153511-forge-1.json\",", + " \"status\": \"written\"", + " },", + " {", + " \"scene\": \"play\",", + " \"page_key\": \"153511-play-douban-1\",", + " \"target_path\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy/expand-supply-example-com/play/153511-play-douban-1.json\",", + " \"status\": \"written\"", + " }", + " ],", + " \"site_register\": {", + " \"d_domain\": \"*.expand-supply.example.com\",", + " \"d_match_type\": \"wildcard\",", + " \"d_parent_domain\": \"expand-supply.example.com\",", + " \"d_seed_scope\": \"host\",", + " \"d_seo_cfg\": {", + " \"strategy_profile\": \"expand\",", + " \"canonical_mode\": \"relaxed\",", + " \"play_index_mode\": \"index_follow\",", + " \"forge\": {", + " \"exposure_profile\": \"expanded\",", + " \"enable\": true,", + " \"count\": 16,", + " \"entry_count\": 5,", + " \"sitemap_count\": 4,", + " \"route_group\": \"detail_forge_v2\",", + " \"title_source\": \"v_seo_words\"", + " },", + " \"intro_block\": {", + " \"home\": true,", + " \"category\": true,", + " \"detail\": true,", + " \"search\": true", + " },", + " \"structured_data\": {", + " \"policy\": \"compact\",", + " \"reference_mode\": \"id_only\",", + " \"website_node\": true,", + " \"page_node\": true,", + " \"breadcrumb_node\": true,", + " \"video_object_node\": true,", + " \"organization_node\": true,", + " \"organization_name\": \"\",", + " \"same_as\": []", + " },", + " \"runtime_acceptance\": {", + " \"enable\": false,", + " \"samples\": []", + " },", + " \"robots_policy\": \"index_follow\",", + " \"match_type\": \"exact\",", + " \"seed_scope\": \"domain\",", + " \"wildcard_enable\": false", + " },", + " \"t_id\": 1,", + " \"d_name\": \"Expand Supply\",", + " \"d_keywords\": \"Expand Supply,影视推荐\",", + " \"d_description\": \"Expand Supply 内容整理与推荐。\",", + " \"d_index_title\": \"Expand Supply影视内容推荐\",", + " \"d_index_keywords\": \"Expand Supply,影视推荐\",", + " \"d_index_description\": \"Expand Supply 内容整理与推荐。\",", + " \"d_statis\": \"\",", + " \"d_logo_type\": 0,", + " \"d_text_logo\": \"Expand Supply\",", + " \"d_img_logo\": \"\",", + " \"d_content_encode\": 0,", + " \"info_id\": 0,", + " \"d_baidu_token\": \"\",", + " \"_notes\": [", + " \"本文件用于创建 domain 记录,模板配置 t_cfg 会在创建时自动从模板表读取。\",", + " \"如目标域名已存在,register dry-run 会返回 domain_exists,后续直接执行 SEO 策略 apply 即可。\",", + " \"建议在正式 apply 前先检查 site_name、template_id 和首页三要素文案。\"", + " ]", + " },", + " \"site_register_preview\": {", + " \"payload\": {", + " \"d_domain\": \"*.expand-supply.example.com\",", + " \"d_match_type\": \"wildcard\",", + " \"d_parent_domain\": \"expand-supply.example.com\",", + " \"d_seed_scope\": \"host\",", + " \"d_seo_cfg\": {", + " \"strategy_profile\": \"expand\",", + " \"canonical_mode\": \"relaxed\",", + " \"play_index_mode\": \"index_follow\",", + " \"forge\": {", + " \"exposure_profile\": \"expanded\",", + " \"enable\": true,", + " \"count\": 16,", + " \"entry_count\": 5,", + " \"sitemap_count\": 4,", + " \"route_group\": \"detail_forge_v2\",", + " \"title_source\": \"v_seo_words\"", + " },", + " \"intro_block\": {", + " \"home\": true,", + " \"category\": true,", + " \"detail\": true,", + " \"search\": true", + " },", + " \"structured_data\": {", + " \"policy\": \"compact\",", + " \"reference_mode\": \"id_only\",", + " \"website_node\": true,", + " \"page_node\": true,", + " \"breadcrumb_node\": true,", + " \"video_object_node\": true,", + " \"organization_node\": true,", + " \"organization_name\": \"\",", + " \"same_as\": []", + " },", + " \"runtime_acceptance\": {", + " \"enable\": false,", + " \"samples\": []", + " },", + " \"robots_policy\": \"index_follow\",", + " \"match_type\": \"wildcard\",", + " \"seed_scope\": \"host\",", + " \"wildcard_enable\": true", + " },", + " \"t_id\": 1,", + " \"d_name\": \"Expand Supply\",", + " \"d_keywords\": \"Expand Supply,影视推荐\",", + " \"d_description\": \"Expand Supply 内容整理与推荐。\",", + " \"d_index_title\": \"Expand Supply影视内容推荐\",", + " \"d_index_keywords\": \"Expand Supply,影视推荐\",", + " \"d_index_description\": \"Expand Supply 内容整理与推荐。\",", + " \"d_statis\": \"\",", + " \"d_logo_type\": 0,", + " \"d_text_logo\": \"Expand Supply\",", + " \"d_img_logo\": \"\",", + " \"d_content_encode\": 0,", + " \"info_id\": 0,", + " \"d_baidu_token\": \"\"", + " },", + " \"found\": false,", + " \"status\": \"template_not_found\",", + " \"message\": \"模板不存在,无法创建站点记录。\",", + " \"create_fields\": 0,", + " \"domain_id\": 0,", + " \"template_found\": false,", + " \"template_id\": 1", + " },", + " \"site_strategy\": {", + " \"d_domain\": \"*.expand-supply.example.com\",", + " \"d_match_type\": \"wildcard\",", + " \"d_parent_domain\": \"expand-supply.example.com\",", + " \"d_seed_scope\": \"host\",", + " \"d_seo_cfg\": {", + " \"strategy_profile\": \"expand\",", + " \"canonical_mode\": \"relaxed\",", + " \"play_index_mode\": \"index_follow\",", + " \"forge\": {", + " \"exposure_profile\": \"expanded\",", + " \"enable\": true,", + " \"count\": 16,", + " \"entry_count\": 5,", + " \"sitemap_count\": 4,", + " \"route_group\": \"detail_forge_v2\",", + " \"title_source\": \"v_seo_words\"", + " },", + " \"intro_block\": {", + " \"home\": true,", + " \"category\": true,", + " \"detail\": true,", + " \"search\": true", + " },", + " \"structured_data\": {", + " \"policy\": \"compact\",", + " \"reference_mode\": \"id_only\",", + " \"website_node\": true,", + " \"page_node\": true,", + " \"breadcrumb_node\": true,", + " \"video_object_node\": true,", + " \"organization_node\": true,", + " \"organization_name\": \"\",", + " \"same_as\": []", + " },", + " \"runtime_acceptance\": {", + " \"enable\": false,", + " \"samples\": []", + " },", + " \"robots_policy\": \"index_follow\",", + " \"match_type\": \"exact\",", + " \"seed_scope\": \"domain\",", + " \"wildcard_enable\": false", + " },", + " \"_notes\": [", + " \"导入前请补齐 t_id、d_name、关键词、描述等站点基础字段。\",", + " \"wildcard 模式建议同步确认父域名和 seed_scope,避免多子域共用错误 seed。\",", + " \"本文件只负责域名 SEO 策略与匹配参数,不会替代离线补料 JSON 与 approved manifest。\"", + " ]", + " },", + " \"site_apply_preview\": {", + " \"payload\": {", + " \"d_domain\": \"*.expand-supply.example.com\",", + " \"d_match_type\": \"wildcard\",", + " \"d_parent_domain\": \"expand-supply.example.com\",", + " \"d_seed_scope\": \"host\",", + " \"d_seo_cfg\": {", + " \"strategy_profile\": \"expand\",", + " \"canonical_mode\": \"relaxed\",", + " \"play_index_mode\": \"index_follow\",", + " \"forge\": {", + " \"exposure_profile\": \"expanded\",", + " \"enable\": true,", + " \"count\": 16,", + " \"entry_count\": 5,", + " \"sitemap_count\": 4,", + " \"route_group\": \"detail_forge_v2\",", + " \"title_source\": \"v_seo_words\"", + " },", + " \"intro_block\": {", + " \"home\": true,", + " \"category\": true,", + " \"detail\": true,", + " \"search\": true", + " },", + " \"structured_data\": {", + " \"policy\": \"compact\",", + " \"reference_mode\": \"id_only\",", + " \"website_node\": true,", + " \"page_node\": true,", + " \"breadcrumb_node\": true,", + " \"video_object_node\": true,", + " \"organization_node\": true,", + " \"organization_name\": \"\",", + " \"same_as\": []", + " },", + " \"runtime_acceptance\": {", + " \"enable\": false,", + " \"samples\": []", + " },", + " \"robots_policy\": \"index_follow\",", + " \"match_type\": \"exact\",", + " \"seed_scope\": \"domain\",", + " \"wildcard_enable\": false", + " }", + " },", + " \"found\": false,", + " \"status\": \"domain_not_found\",", + " \"message\": \"请先在站点表中创建目标域名,再应用 bootstrap 策略样板。\",", + " \"diff\": [],", + " \"changed_fields\": 0", + " },", + " \"next_commands\": {", + " \"run_dry_run\": \"php scripts/domain_bootstrap_run.php /www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com --dry-run=1 --format=text\",", + " \"run\": \"php scripts/domain_bootstrap_run.php /www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com --dry-run=0 --format=text\",", + " \"register_dry_run\": \"php scripts/domain_bootstrap_register.php /www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-register.sample.json --dry-run=1 --format=text\",", + " \"register\": \"php scripts/domain_bootstrap_register.php /www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-register.sample.json --format=text\",", + " \"apply_dry_run\": \"php scripts/domain_seo_bootstrap_apply.php /www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-bootstrap.sample.json --dry-run=1 --format=text\",", + " \"apply\": \"php scripts/domain_seo_bootstrap_apply.php /www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-bootstrap.sample.json --format=text\",", + " \"prepare\": \"php scripts/seo_copy_batch_prepare.php expand-supply-example-com-core-batch1 --approved-dir=/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy_jobs/approved\",", + " \"dry_run\": \"php scripts/seo_copy_release_run.php expand-supply-example-com-core-batch1 --approved-dir=/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy_jobs/approved --source-root=/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy --base-url=https://*.expand-supply.example.com --dry-run=1 --format=text\",", + " \"publish\": \"php scripts/seo_copy_release_run.php expand-supply-example-com-core-batch1 --approved-dir=/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy_jobs/approved --source-root=/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy --base-url=https://*.expand-supply.example.com --format=text\"", + " },", + " \"site_register_path\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-register.sample.json\",", + " \"site_bootstrap_path\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-bootstrap.sample.json\",", + " \"bundle_files\": {", + " \"summary\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/bootstrap-summary.json\",", + " \"manifest_copy\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/manifest.copy.json\",", + " \"site_register\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-register.sample.json\",", + " \"site_register_preview\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-register.preview.json\",", + " \"site_bootstrap\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-bootstrap.sample.json\",", + " \"site_apply_preview\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-apply.preview.json\",", + " \"commands\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/commands.sh\",", + " \"runbook\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/README.md\"", + " },", + " \"bundle_index\": {", + " \"scan_root\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles\",", + " \"bundles_count\": 2,", + " \"json\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_index/index.json\",", + " \"html\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_index/index.html\"", + " }", + "}" + ] + } + ], + "bundle_index": { + "bundles_count": 2, + "json": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_index/index.json", + "html": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_index/index.html" + }, + "bundle_portal": { + "json": "", + "html": "" + }, + "summary_json": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/batch.summary.json", + "summary_html": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/batch.summary.html" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/README.md b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/README.md new file mode 100644 index 0000000..bc29224 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/README.md @@ -0,0 +1,93 @@ +# 新域名离线补料启动包 + +## 基本信息 + +- host: `*.expand-supply.example.com` +- bundle_root: `/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com` +- manifest: `/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy_jobs/approved/expand-supply-example-com-core-batch1.manifest.json` +- target_root: `/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy` +- approved_dir: `/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy_jobs/approved` +- base_url: `https://*.expand-supply.example.com` +- items_count: `9` +- strategy_profile: `expand` +- canonical_mode: `relaxed` +- play_index_mode: `index_follow` +- robots_policy: `index_follow` +- forge_exposure_profile: `expanded` +- structured_policy: `compact` +- reference_mode: `id_only` +- pipeline_import_mode: `off` +- pipeline_import_requested: `no` +- pipeline_import_armed: `no` +- pipeline_import_enabled: `no` +- handoff_stage: `需先入库` +- register_status: `template_not_found` +- register_result_status: `` +- apply_status: `domain_not_found` +- apply_result_status: `` +- bundle_run_status: `` +- prepare_result_status: `` +- import_result_status: `` +- release_dry_run_status: `` +- publish_result_status: `` + +## 当前关键文件 + +- `site-register.sample.json`: `/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-register.sample.json` +- `site-bootstrap.sample.json`: `/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-bootstrap.sample.json` +- `site-register.result.json`: `` +- `site-apply.result.json`: `` +- `batch-import.result.json`: `` +- `release-publish.result.json`: `` +- `bundle_run_json`: `` +- `prepare_summary`: `` +- `release_dry_run_summary`: `` +- `publish_result_summary`: `` + +## 接手判断 + +- stage: `需先入库` +- summary: apply 仍返回 domain_not_found,说明当前目标域名还未正式落库,需要先完成 register。 +- next_step: 先执行高层 run 或 register +- next_command: `php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com' --dry-run=0 --format=text` +- import_policy_summary: 默认关闭,需显式放行后才会自动导入 AI 结果。 +- import_policy_source: `` + +## 下一步 + +1. 优先执行高层 `domain_bootstrap_pipeline_run.php` dry-run +2. 如 pipeline dry-run 正常,再决定是否正式执行可落地动作 +3. 如需更细粒度推进,再退回 `domain_bootstrap_oncall_run.php` 或 `domain_bootstrap_run.php` +4. 确认站点策略无误后,再继续 `prepare -> import -> dry_run -> publish` +5. 如果当前是 `ready_to_import`,优先看 `pipeline_import_mode`:`off` 先补目录,`requested-not-armed` 先放行,再执行非 dry-run import + +## Import Policy + +- mode: `off` +- summary: 默认关闭,需显式放行后才会自动导入 AI 结果。 +- source_path: `` + +## 推荐命令 + +- 命令脚本:`/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/commands.sh` + +```bash +php scripts/domain_bootstrap_pipeline_run.php --host='*.expand-supply.example.com' --step-limit=6 --dry-run=1 --allow-prepare=1 --format=text +# php scripts/domain_bootstrap_pipeline_run.php --host='*.expand-supply.example.com' --step-limit=6 --dry-run=0 --allow-prepare=1 --allow-release-dry-run=1 --format=text +php scripts/domain_bootstrap_oncall_run.php --host='*.expand-supply.example.com' --dry-run=1 --format=text +# php scripts/domain_bootstrap_oncall_run.php --host='*.expand-supply.example.com' --dry-run=0 --format=text +php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com' --dry-run=1 --format=text +# php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com' --dry-run=0 --format=text +php scripts/domain_bootstrap_register.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-register.sample.json' --dry-run=1 --format=text +# php scripts/domain_bootstrap_register.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-register.sample.json' --format=text +php scripts/domain_seo_bootstrap_apply.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-bootstrap.sample.json' --dry-run=1 --format=text +# php scripts/domain_seo_bootstrap_apply.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-bootstrap.sample.json' --format=text +php scripts/seo_copy_batch_prepare.php 'expand-supply-example-com-core-batch1' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy_jobs/approved' +# php scripts/domain_bootstrap_pipeline_run.php --host='*.expand-supply.example.com' --step-limit=3 --dry-run=0 --allow-import=1 --ai-result-dir= --allow-release-dry-run=1 --format=text +# php scripts/domain_bootstrap_pipeline_run.php --host='*.expand-supply.example.com' --step-limit=3 --dry-run=0 --allow-import=1 --ai-result-root= --allow-release-dry-run=1 --format=text +# php scripts/domain_bootstrap_import_ai.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com' --format=text +# php scripts/seo_copy_batch_import.php --target-root='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy' +php scripts/seo_copy_release_run.php 'expand-supply-example-com-core-batch1' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy_jobs/approved' --source-root='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy' --base-url='https://*.expand-supply.example.com' --dry-run=1 --format=text +# php scripts/domain_bootstrap_publish.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com' --format=text +# php scripts/seo_copy_release_run.php 'expand-supply-example-com-core-batch1' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy_jobs/approved' --source-root='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy' --base-url='https://*.expand-supply.example.com' --format=text +``` diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/bootstrap-summary.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/bootstrap-summary.json new file mode 100644 index 0000000..1a6af5f --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/bootstrap-summary.json @@ -0,0 +1,352 @@ +{ + "host": "*.expand-supply.example.com", + "host_dir": "expand-supply-example-com", + "manifest": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy_jobs/approved/expand-supply-example-com-core-batch1.manifest.json", + "manifest_status": "written", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy_jobs/approved", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com", + "base_url": "https://*.expand-supply.example.com", + "items_count": 9, + "items": [ + { + "scene": "home", + "page_key": "index", + "target_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy/expand-supply-example-com/home/index.json", + "status": "written" + }, + { + "scene": "category_index", + "page_key": "zong-yi", + "target_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy/expand-supply-example-com/category_index/zong-yi.json", + "status": "written" + }, + { + "scene": "category_list", + "page_key": "zong-yi--da-lu-zong-yi", + "target_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy/expand-supply-example-com/category_list/zong-yi--da-lu-zong-yi.json", + "status": "written" + }, + { + "scene": "search", + "page_key": "h-ad6cc0984e10818e", + "target_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy/expand-supply-example-com/search/h-ad6cc0984e10818e.json", + "status": "written" + }, + { + "scene": "rank_index", + "page_key": "index", + "target_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy/expand-supply-example-com/rank_index/index.json", + "status": "written" + }, + { + "scene": "rank_list", + "page_key": "daily", + "target_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy/expand-supply-example-com/rank_list/daily.json", + "status": "written" + }, + { + "scene": "detail", + "page_key": "153511", + "target_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy/expand-supply-example-com/detail/153511.json", + "status": "written" + }, + { + "scene": "forge", + "page_key": "153511-forge-1", + "target_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy/expand-supply-example-com/forge/153511-forge-1.json", + "status": "written" + }, + { + "scene": "play", + "page_key": "153511-play-douban-1", + "target_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy/expand-supply-example-com/play/153511-play-douban-1.json", + "status": "written" + } + ], + "site_register": { + "d_domain": "*.expand-supply.example.com", + "d_match_type": "wildcard", + "d_parent_domain": "expand-supply.example.com", + "d_seed_scope": "host", + "d_seo_cfg": { + "strategy_profile": "expand", + "canonical_mode": "relaxed", + "play_index_mode": "index_follow", + "forge": { + "exposure_profile": "expanded", + "enable": true, + "count": 16, + "entry_count": 5, + "sitemap_count": 4, + "route_group": "detail_forge_v2", + "title_source": "v_seo_words" + }, + "intro_block": { + "home": true, + "category": true, + "detail": true, + "search": true + }, + "structured_data": { + "policy": "compact", + "reference_mode": "id_only", + "website_node": true, + "page_node": true, + "breadcrumb_node": true, + "video_object_node": true, + "organization_node": true, + "organization_name": "", + "same_as": [] + }, + "runtime_acceptance": { + "enable": false, + "samples": [] + }, + "robots_policy": "index_follow", + "match_type": "exact", + "seed_scope": "domain", + "wildcard_enable": false + }, + "t_id": 1, + "d_name": "Expand Supply", + "d_keywords": "Expand Supply,影视推荐", + "d_description": "Expand Supply 内容整理与推荐。", + "d_index_title": "Expand Supply影视内容推荐", + "d_index_keywords": "Expand Supply,影视推荐", + "d_index_description": "Expand Supply 内容整理与推荐。", + "d_statis": "", + "d_logo_type": 0, + "d_text_logo": "Expand Supply", + "d_img_logo": "", + "d_content_encode": 0, + "info_id": 0, + "d_baidu_token": "", + "_notes": [ + "本文件用于创建 domain 记录,模板配置 t_cfg 会在创建时自动从模板表读取。", + "如目标域名已存在,register dry-run 会返回 domain_exists,后续直接执行 SEO 策略 apply 即可。", + "建议在正式 apply 前先检查 site_name、template_id 和首页三要素文案。" + ] + }, + "site_register_preview": { + "payload": { + "d_domain": "*.expand-supply.example.com", + "d_match_type": "wildcard", + "d_parent_domain": "expand-supply.example.com", + "d_seed_scope": "host", + "d_seo_cfg": { + "strategy_profile": "expand", + "canonical_mode": "relaxed", + "play_index_mode": "index_follow", + "forge": { + "exposure_profile": "expanded", + "enable": true, + "count": 16, + "entry_count": 5, + "sitemap_count": 4, + "route_group": "detail_forge_v2", + "title_source": "v_seo_words" + }, + "intro_block": { + "home": true, + "category": true, + "detail": true, + "search": true + }, + "structured_data": { + "policy": "compact", + "reference_mode": "id_only", + "website_node": true, + "page_node": true, + "breadcrumb_node": true, + "video_object_node": true, + "organization_node": true, + "organization_name": "", + "same_as": [] + }, + "runtime_acceptance": { + "enable": false, + "samples": [] + }, + "robots_policy": "index_follow", + "match_type": "wildcard", + "seed_scope": "host", + "wildcard_enable": true + }, + "t_id": 1, + "d_name": "Expand Supply", + "d_keywords": "Expand Supply,影视推荐", + "d_description": "Expand Supply 内容整理与推荐。", + "d_index_title": "Expand Supply影视内容推荐", + "d_index_keywords": "Expand Supply,影视推荐", + "d_index_description": "Expand Supply 内容整理与推荐。", + "d_statis": "", + "d_logo_type": 0, + "d_text_logo": "Expand Supply", + "d_img_logo": "", + "d_content_encode": 0, + "info_id": 0, + "d_baidu_token": "" + }, + "found": false, + "status": "template_not_found", + "message": "模板不存在,无法创建站点记录。", + "create_fields": 0, + "domain_id": 0, + "template_found": false, + "template_id": 1 + }, + "site_strategy": { + "d_domain": "*.expand-supply.example.com", + "d_match_type": "wildcard", + "d_parent_domain": "expand-supply.example.com", + "d_seed_scope": "host", + "d_seo_cfg": { + "strategy_profile": "expand", + "canonical_mode": "relaxed", + "play_index_mode": "index_follow", + "forge": { + "exposure_profile": "expanded", + "enable": true, + "count": 16, + "entry_count": 5, + "sitemap_count": 4, + "route_group": "detail_forge_v2", + "title_source": "v_seo_words" + }, + "intro_block": { + "home": true, + "category": true, + "detail": true, + "search": true + }, + "structured_data": { + "policy": "compact", + "reference_mode": "id_only", + "website_node": true, + "page_node": true, + "breadcrumb_node": true, + "video_object_node": true, + "organization_node": true, + "organization_name": "", + "same_as": [] + }, + "runtime_acceptance": { + "enable": false, + "samples": [] + }, + "robots_policy": "index_follow", + "match_type": "exact", + "seed_scope": "domain", + "wildcard_enable": false + }, + "_notes": [ + "导入前请补齐 t_id、d_name、关键词、描述等站点基础字段。", + "wildcard 模式建议同步确认父域名和 seed_scope,避免多子域共用错误 seed。", + "本文件只负责域名 SEO 策略与匹配参数,不会替代离线补料 JSON 与 approved manifest。" + ] + }, + "site_apply_preview": { + "payload": { + "d_domain": "*.expand-supply.example.com", + "d_match_type": "wildcard", + "d_parent_domain": "expand-supply.example.com", + "d_seed_scope": "host", + "d_seo_cfg": { + "strategy_profile": "expand", + "canonical_mode": "relaxed", + "play_index_mode": "index_follow", + "forge": { + "exposure_profile": "expanded", + "enable": true, + "count": 16, + "entry_count": 5, + "sitemap_count": 4, + "route_group": "detail_forge_v2", + "title_source": "v_seo_words" + }, + "intro_block": { + "home": true, + "category": true, + "detail": true, + "search": true + }, + "structured_data": { + "policy": "compact", + "reference_mode": "id_only", + "website_node": true, + "page_node": true, + "breadcrumb_node": true, + "video_object_node": true, + "organization_node": true, + "organization_name": "", + "same_as": [] + }, + "runtime_acceptance": { + "enable": false, + "samples": [] + }, + "robots_policy": "index_follow", + "match_type": "exact", + "seed_scope": "domain", + "wildcard_enable": false + } + }, + "found": false, + "status": "domain_not_found", + "message": "请先在站点表中创建目标域名,再应用 bootstrap 策略样板。", + "diff": [], + "changed_fields": 0 + }, + "next_commands": { + "pipeline_dry_run": "php scripts/domain_bootstrap_pipeline_run.php --host='*.expand-supply.example.com' --step-limit=6 --dry-run=1 --allow-prepare=1 --format=text", + "pipeline": "php scripts/domain_bootstrap_pipeline_run.php --host='*.expand-supply.example.com' --step-limit=6 --dry-run=0 --allow-prepare=1 --allow-release-dry-run=1 --format=text", + "pipeline_import": "php scripts/domain_bootstrap_pipeline_run.php --host='*.expand-supply.example.com' --step-limit=3 --dry-run=0 --allow-import=1 --ai-result-dir= --allow-release-dry-run=1 --format=text", + "pipeline_import_root": "php scripts/domain_bootstrap_pipeline_run.php --host='*.expand-supply.example.com' --step-limit=3 --dry-run=0 --allow-import=1 --ai-result-root= --allow-release-dry-run=1 --format=text", + "oncall_dry_run": "php scripts/domain_bootstrap_oncall_run.php --host='*.expand-supply.example.com' --dry-run=1 --format=text", + "oncall": "php scripts/domain_bootstrap_oncall_run.php --host='*.expand-supply.example.com' --dry-run=0 --format=text", + "run_dry_run": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com' --dry-run=1 --format=text", + "run": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com' --dry-run=0 --format=text", + "register_dry_run": "php scripts/domain_bootstrap_register.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-register.sample.json' --dry-run=1 --format=text", + "register": "php scripts/domain_bootstrap_register.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-register.sample.json' --format=text", + "apply_dry_run": "php scripts/domain_seo_bootstrap_apply.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-bootstrap.sample.json' --dry-run=1 --format=text", + "apply": "php scripts/domain_seo_bootstrap_apply.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-bootstrap.sample.json' --format=text", + "prepare": "php scripts/seo_copy_batch_prepare.php 'expand-supply-example-com-core-batch1' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy_jobs/approved'", + "import": "php scripts/domain_bootstrap_import_ai.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com' --format=text", + "import_low_level": "php scripts/seo_copy_batch_import.php --target-root='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy'", + "dry_run": "php scripts/seo_copy_release_run.php 'expand-supply-example-com-core-batch1' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy_jobs/approved' --source-root='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy' --base-url='https://*.expand-supply.example.com' --dry-run=1 --format=text", + "publish": "php scripts/domain_bootstrap_publish.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com' --format=text", + "publish_low_level": "php scripts/seo_copy_release_run.php 'expand-supply-example-com-core-batch1' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy_jobs/approved' --source-root='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy' --base-url='https://*.expand-supply.example.com' --format=text" + }, + "site_register_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-register.sample.json", + "site_bootstrap_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-bootstrap.sample.json", + "bundle_files": { + "summary": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/bootstrap-summary.json", + "manifest_copy": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/manifest.copy.json", + "site_register": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-register.sample.json", + "site_register_preview": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-register.preview.json", + "site_bootstrap": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-bootstrap.sample.json", + "site_apply_preview": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-apply.preview.json", + "commands": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/commands.sh", + "runbook": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/README.md", + "site_register_result": "", + "site_apply_result": "", + "import_result": "", + "publish_result": "", + "prepare_summary": "", + "release_dry_run_summary": "" + }, + "bundle_index": { + "scan_root": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles", + "bundles_count": 2, + "json": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_index/index.json", + "html": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_index/index.html" + }, + "handoff": { + "stage_code": "needs_attention", + "stage_label": "需先入库", + "summary": "apply 仍返回 domain_not_found,说明当前目标域名还未正式落库,需要先完成 register。", + "next_step": "先执行高层 run 或 register", + "next_command": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com' --dry-run=0 --format=text" + } +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/commands.sh b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/commands.sh new file mode 100644 index 0000000..bff950b --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/commands.sh @@ -0,0 +1,40 @@ +#!/usr/bin/env bash +set -euo pipefail + +cd '/www/wwwroot/diff-maccms/SEONexus/code' + +# 1. 推荐先走更高层 pipeline 编排入口 +php scripts/domain_bootstrap_pipeline_run.php --host='*.expand-supply.example.com' --step-limit=6 --dry-run=1 --allow-prepare=1 --format=text +# php scripts/domain_bootstrap_pipeline_run.php --host='*.expand-supply.example.com' --step-limit=6 --dry-run=0 --allow-prepare=1 --allow-release-dry-run=1 --format=text + +# 2. 如需更细粒度推进,再走 oncall / run 入口 +php scripts/domain_bootstrap_oncall_run.php --host='*.expand-supply.example.com' --dry-run=1 --format=text +# php scripts/domain_bootstrap_oncall_run.php --host='*.expand-supply.example.com' --dry-run=0 --format=text + +php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com' --dry-run=1 --format=text +# php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com' --dry-run=0 --format=text + +# 3. 如需拆步排查,再分别执行 register/apply +php scripts/domain_bootstrap_register.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-register.sample.json' --dry-run=1 --format=text +# php scripts/domain_bootstrap_register.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-register.sample.json' --format=text + +php scripts/domain_seo_bootstrap_apply.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-bootstrap.sample.json' --dry-run=1 --format=text +# php scripts/domain_seo_bootstrap_apply.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-bootstrap.sample.json' --format=text + +# 4. 生成 facts + prompt +php scripts/seo_copy_batch_prepare.php 'expand-supply-example-com-core-batch1' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy_jobs/approved' + +# 5. 导入 AI 结果 +# policy_mode=off +# policy_summary=默认关闭,需显式放行后才会自动导入 AI 结果。 +# policy_source= +# php scripts/domain_bootstrap_pipeline_run.php --host='*.expand-supply.example.com' --step-limit=3 --dry-run=0 --allow-import=1 --ai-result-dir= --allow-release-dry-run=1 --format=text +# php scripts/domain_bootstrap_pipeline_run.php --host='*.expand-supply.example.com' --step-limit=3 --dry-run=0 --allow-import=1 --ai-result-root= --allow-release-dry-run=1 --format=text +# php scripts/domain_bootstrap_import_ai.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com' --format=text + +# 6. 跑 dry-run 门禁 +php scripts/seo_copy_release_run.php 'expand-supply-example-com-core-batch1' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy_jobs/approved' --source-root='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy' --base-url='https://*.expand-supply.example.com' --dry-run=1 --format=text + +# 7. dry-run 通过后正式发布 +# php scripts/domain_bootstrap_publish.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com' --format=text +# php scripts/seo_copy_release_run.php 'expand-supply-example-com-core-batch1' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy_jobs/approved' --source-root='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy' --base-url='https://*.expand-supply.example.com' --format=text diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy/expand-supply-example-com/category_index/zong-yi.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy/expand-supply-example-com/category_index/zong-yi.json new file mode 100644 index 0000000..1db3f97 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy/expand-supply-example-com/category_index/zong-yi.json @@ -0,0 +1,18 @@ +{ + "intro_text": "", + "intro_meta": "", + "guide_cards": [ + { + "title": "", + "text": "" + }, + { + "title": "", + "text": "" + }, + { + "title": "", + "text": "" + } + ] +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy/expand-supply-example-com/category_list/zong-yi--da-lu-zong-yi.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy/expand-supply-example-com/category_list/zong-yi--da-lu-zong-yi.json new file mode 100644 index 0000000..1db3f97 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy/expand-supply-example-com/category_list/zong-yi--da-lu-zong-yi.json @@ -0,0 +1,18 @@ +{ + "intro_text": "", + "intro_meta": "", + "guide_cards": [ + { + "title": "", + "text": "" + }, + { + "title": "", + "text": "" + }, + { + "title": "", + "text": "" + } + ] +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy/expand-supply-example-com/detail/153511.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy/expand-supply-example-com/detail/153511.json new file mode 100644 index 0000000..08af3bb --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy/expand-supply-example-com/detail/153511.json @@ -0,0 +1,6 @@ +{ + "detail_body_lead": "", + "detail_play_link_lead": "", + "detail_body_tail": "", + "main_description": "" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy/expand-supply-example-com/forge/153511-forge-1.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy/expand-supply-example-com/forge/153511-forge-1.json new file mode 100644 index 0000000..ada49d0 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy/expand-supply-example-com/forge/153511-forge-1.json @@ -0,0 +1,7 @@ +{ + "forge_detail_note": "", + "forge_body_lead": "", + "forge_return_lead": "", + "forge_play_lead": "", + "main_description": "" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy/expand-supply-example-com/home/index.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy/expand-supply-example-com/home/index.json new file mode 100644 index 0000000..1db3f97 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy/expand-supply-example-com/home/index.json @@ -0,0 +1,18 @@ +{ + "intro_text": "", + "intro_meta": "", + "guide_cards": [ + { + "title": "", + "text": "" + }, + { + "title": "", + "text": "" + }, + { + "title": "", + "text": "" + } + ] +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy/expand-supply-example-com/play/153511-play-douban-1.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy/expand-supply-example-com/play/153511-play-douban-1.json new file mode 100644 index 0000000..029bc46 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy/expand-supply-example-com/play/153511-play-douban-1.json @@ -0,0 +1,6 @@ +{ + "play_intro": "", + "play_meta_note": "", + "play_body_lead": "", + "play_body_next": "" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy/expand-supply-example-com/rank_index/index.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy/expand-supply-example-com/rank_index/index.json new file mode 100644 index 0000000..1db3f97 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy/expand-supply-example-com/rank_index/index.json @@ -0,0 +1,18 @@ +{ + "intro_text": "", + "intro_meta": "", + "guide_cards": [ + { + "title": "", + "text": "" + }, + { + "title": "", + "text": "" + }, + { + "title": "", + "text": "" + } + ] +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy/expand-supply-example-com/rank_list/daily.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy/expand-supply-example-com/rank_list/daily.json new file mode 100644 index 0000000..1db3f97 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy/expand-supply-example-com/rank_list/daily.json @@ -0,0 +1,18 @@ +{ + "intro_text": "", + "intro_meta": "", + "guide_cards": [ + { + "title": "", + "text": "" + }, + { + "title": "", + "text": "" + }, + { + "title": "", + "text": "" + } + ] +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy/expand-supply-example-com/search/h-ad6cc0984e10818e.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy/expand-supply-example-com/search/h-ad6cc0984e10818e.json new file mode 100644 index 0000000..1db3f97 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy/expand-supply-example-com/search/h-ad6cc0984e10818e.json @@ -0,0 +1,18 @@ +{ + "intro_text": "", + "intro_meta": "", + "guide_cards": [ + { + "title": "", + "text": "" + }, + { + "title": "", + "text": "" + }, + { + "title": "", + "text": "" + } + ] +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy_jobs/approved/expand-supply-example-com-core-batch1.manifest.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy_jobs/approved/expand-supply-example-com-core-batch1.manifest.json new file mode 100644 index 0000000..b87cc9a --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy_jobs/approved/expand-supply-example-com-core-batch1.manifest.json @@ -0,0 +1,69 @@ +[ + { + "host": "*.expand-supply.example.com", + "scene": "home", + "page_parts": [ + "index" + ] + }, + { + "host": "*.expand-supply.example.com", + "scene": "category_index", + "page_parts": [ + "zong-yi" + ] + }, + { + "host": "*.expand-supply.example.com", + "scene": "category_list", + "page_parts": [ + "zong-yi", + "da-lu-zong-yi" + ] + }, + { + "host": "*.expand-supply.example.com", + "scene": "search", + "page_parts": [ + "一卦定乾坤" + ] + }, + { + "host": "*.expand-supply.example.com", + "scene": "rank_index", + "page_parts": [ + "index" + ] + }, + { + "host": "*.expand-supply.example.com", + "scene": "rank_list", + "page_parts": [ + "daily" + ] + }, + { + "host": "*.expand-supply.example.com", + "scene": "detail", + "page_parts": [ + "153511" + ] + }, + { + "host": "*.expand-supply.example.com", + "scene": "forge", + "page_parts": [ + "153511", + "1" + ] + }, + { + "host": "*.expand-supply.example.com", + "scene": "play", + "page_parts": [ + "153511", + "douban", + "1" + ] + } +] diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/manifest.copy.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/manifest.copy.json new file mode 100644 index 0000000..b87cc9a --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/manifest.copy.json @@ -0,0 +1,69 @@ +[ + { + "host": "*.expand-supply.example.com", + "scene": "home", + "page_parts": [ + "index" + ] + }, + { + "host": "*.expand-supply.example.com", + "scene": "category_index", + "page_parts": [ + "zong-yi" + ] + }, + { + "host": "*.expand-supply.example.com", + "scene": "category_list", + "page_parts": [ + "zong-yi", + "da-lu-zong-yi" + ] + }, + { + "host": "*.expand-supply.example.com", + "scene": "search", + "page_parts": [ + "一卦定乾坤" + ] + }, + { + "host": "*.expand-supply.example.com", + "scene": "rank_index", + "page_parts": [ + "index" + ] + }, + { + "host": "*.expand-supply.example.com", + "scene": "rank_list", + "page_parts": [ + "daily" + ] + }, + { + "host": "*.expand-supply.example.com", + "scene": "detail", + "page_parts": [ + "153511" + ] + }, + { + "host": "*.expand-supply.example.com", + "scene": "forge", + "page_parts": [ + "153511", + "1" + ] + }, + { + "host": "*.expand-supply.example.com", + "scene": "play", + "page_parts": [ + "153511", + "douban", + "1" + ] + } +] diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-apply.preview.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-apply.preview.json new file mode 100644 index 0000000..6912bd3 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-apply.preview.json @@ -0,0 +1,52 @@ +{ + "payload": { + "d_domain": "*.expand-supply.example.com", + "d_match_type": "wildcard", + "d_parent_domain": "expand-supply.example.com", + "d_seed_scope": "host", + "d_seo_cfg": { + "strategy_profile": "expand", + "canonical_mode": "relaxed", + "play_index_mode": "index_follow", + "forge": { + "exposure_profile": "expanded", + "enable": true, + "count": 16, + "entry_count": 5, + "sitemap_count": 4, + "route_group": "detail_forge_v2", + "title_source": "v_seo_words" + }, + "intro_block": { + "home": true, + "category": true, + "detail": true, + "search": true + }, + "structured_data": { + "policy": "compact", + "reference_mode": "id_only", + "website_node": true, + "page_node": true, + "breadcrumb_node": true, + "video_object_node": true, + "organization_node": true, + "organization_name": "", + "same_as": [] + }, + "runtime_acceptance": { + "enable": false, + "samples": [] + }, + "robots_policy": "index_follow", + "match_type": "exact", + "seed_scope": "domain", + "wildcard_enable": false + } + }, + "found": false, + "status": "domain_not_found", + "message": "请先在站点表中创建目标域名,再应用 bootstrap 策略样板。", + "diff": [], + "changed_fields": 0 +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-bootstrap.sample.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-bootstrap.sample.json new file mode 100644 index 0000000..d787174 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-bootstrap.sample.json @@ -0,0 +1,50 @@ +{ + "d_domain": "*.expand-supply.example.com", + "d_match_type": "wildcard", + "d_parent_domain": "expand-supply.example.com", + "d_seed_scope": "host", + "d_seo_cfg": { + "strategy_profile": "expand", + "canonical_mode": "relaxed", + "play_index_mode": "index_follow", + "forge": { + "exposure_profile": "expanded", + "enable": true, + "count": 16, + "entry_count": 5, + "sitemap_count": 4, + "route_group": "detail_forge_v2", + "title_source": "v_seo_words" + }, + "intro_block": { + "home": true, + "category": true, + "detail": true, + "search": true + }, + "structured_data": { + "policy": "compact", + "reference_mode": "id_only", + "website_node": true, + "page_node": true, + "breadcrumb_node": true, + "video_object_node": true, + "organization_node": true, + "organization_name": "", + "same_as": [] + }, + "runtime_acceptance": { + "enable": false, + "samples": [] + }, + "robots_policy": "index_follow", + "match_type": "exact", + "seed_scope": "domain", + "wildcard_enable": false + }, + "_notes": [ + "导入前请补齐 t_id、d_name、关键词、描述等站点基础字段。", + "wildcard 模式建议同步确认父域名和 seed_scope,避免多子域共用错误 seed。", + "本文件只负责域名 SEO 策略与匹配参数,不会替代离线补料 JSON 与 approved manifest。" + ] +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-register.preview.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-register.preview.json new file mode 100644 index 0000000..503470b --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-register.preview.json @@ -0,0 +1,68 @@ +{ + "payload": { + "d_domain": "*.expand-supply.example.com", + "d_match_type": "wildcard", + "d_parent_domain": "expand-supply.example.com", + "d_seed_scope": "host", + "d_seo_cfg": { + "strategy_profile": "expand", + "canonical_mode": "relaxed", + "play_index_mode": "index_follow", + "forge": { + "exposure_profile": "expanded", + "enable": true, + "count": 16, + "entry_count": 5, + "sitemap_count": 4, + "route_group": "detail_forge_v2", + "title_source": "v_seo_words" + }, + "intro_block": { + "home": true, + "category": true, + "detail": true, + "search": true + }, + "structured_data": { + "policy": "compact", + "reference_mode": "id_only", + "website_node": true, + "page_node": true, + "breadcrumb_node": true, + "video_object_node": true, + "organization_node": true, + "organization_name": "", + "same_as": [] + }, + "runtime_acceptance": { + "enable": false, + "samples": [] + }, + "robots_policy": "index_follow", + "match_type": "wildcard", + "seed_scope": "host", + "wildcard_enable": true + }, + "t_id": 1, + "d_name": "Expand Supply", + "d_keywords": "Expand Supply,影视推荐", + "d_description": "Expand Supply 内容整理与推荐。", + "d_index_title": "Expand Supply影视内容推荐", + "d_index_keywords": "Expand Supply,影视推荐", + "d_index_description": "Expand Supply 内容整理与推荐。", + "d_statis": "", + "d_logo_type": 0, + "d_text_logo": "Expand Supply", + "d_img_logo": "", + "d_content_encode": 0, + "info_id": 0, + "d_baidu_token": "" + }, + "found": false, + "status": "template_not_found", + "message": "模板不存在,无法创建站点记录。", + "create_fields": 0, + "domain_id": 0, + "template_found": false, + "template_id": 1 +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-register.sample.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-register.sample.json new file mode 100644 index 0000000..5786f50 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-register.sample.json @@ -0,0 +1,64 @@ +{ + "d_domain": "*.expand-supply.example.com", + "d_match_type": "wildcard", + "d_parent_domain": "expand-supply.example.com", + "d_seed_scope": "host", + "d_seo_cfg": { + "strategy_profile": "expand", + "canonical_mode": "relaxed", + "play_index_mode": "index_follow", + "forge": { + "exposure_profile": "expanded", + "enable": true, + "count": 16, + "entry_count": 5, + "sitemap_count": 4, + "route_group": "detail_forge_v2", + "title_source": "v_seo_words" + }, + "intro_block": { + "home": true, + "category": true, + "detail": true, + "search": true + }, + "structured_data": { + "policy": "compact", + "reference_mode": "id_only", + "website_node": true, + "page_node": true, + "breadcrumb_node": true, + "video_object_node": true, + "organization_node": true, + "organization_name": "", + "same_as": [] + }, + "runtime_acceptance": { + "enable": false, + "samples": [] + }, + "robots_policy": "index_follow", + "match_type": "exact", + "seed_scope": "domain", + "wildcard_enable": false + }, + "t_id": 1, + "d_name": "Expand Supply", + "d_keywords": "Expand Supply,影视推荐", + "d_description": "Expand Supply 内容整理与推荐。", + "d_index_title": "Expand Supply影视内容推荐", + "d_index_keywords": "Expand Supply,影视推荐", + "d_index_description": "Expand Supply 内容整理与推荐。", + "d_statis": "", + "d_logo_type": 0, + "d_text_logo": "Expand Supply", + "d_img_logo": "", + "d_content_encode": 0, + "info_id": 0, + "d_baidu_token": "", + "_notes": [ + "本文件用于创建 domain 记录,模板配置 t_cfg 会在创建时自动从模板表读取。", + "如目标域名已存在,register dry-run 会返回 domain_exists,后续直接执行 SEO 策略 apply 即可。", + "建议在正式 apply 前先检查 site_name、template_id 和首页三要素文案。" + ] +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/README.md b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/README.md new file mode 100644 index 0000000..f3f0e92 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/README.md @@ -0,0 +1,93 @@ +# 新域名离线补料启动包 + +## 基本信息 + +- host: `traffic-supply.example.com` +- bundle_root: `/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com` +- manifest: `/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved/20260408_145449.manifest.json` +- target_root: `/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy` +- approved_dir: `/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved` +- base_url: `https://traffic-supply.example.com` +- items_count: `9` +- strategy_profile: `traffic` +- canonical_mode: `strict` +- play_index_mode: `index_follow` +- robots_policy: `index_follow` +- forge_exposure_profile: `balanced` +- structured_policy: `compact` +- reference_mode: `id_only` +- pipeline_import_mode: `off` +- pipeline_import_requested: `no` +- pipeline_import_armed: `no` +- pipeline_import_enabled: `no` +- handoff_stage: `可进入 Prepare` +- register_status: `template_not_found` +- register_result_status: `created` +- apply_status: `domain_not_found` +- apply_result_status: `applied` +- bundle_run_status: `completed` +- prepare_result_status: `` +- import_result_status: `` +- release_dry_run_status: `` +- publish_result_status: `` + +## 当前关键文件 + +- `site-register.sample.json`: `/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-register.sample.json` +- `site-bootstrap.sample.json`: `/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-bootstrap.sample.json` +- `site-register.result.json`: `/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-register.result.json` +- `site-apply.result.json`: `/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-apply.result.json` +- `batch-import.result.json`: `` +- `release-publish.result.json`: `` +- `bundle_run_json`: `/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260408/144957_traffic-supply-example-com.json` +- `prepare_summary`: `` +- `release_dry_run_summary`: `` +- `publish_result_summary`: `` + +## 接手判断 + +- stage: `可进入 Prepare` +- summary: 域名记录与 SEO 策略已经正式落地,下一步可以直接进入 prepare 和 release dry-run 门禁链。 +- next_step: 继续执行 prepare +- next_command: `php scripts/seo_copy_batch_prepare.php '20260408_145449' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved'` +- import_policy_summary: 默认关闭,需显式放行后才会自动导入 AI 结果。 +- import_policy_source: `` + +## 下一步 + +1. 优先执行高层 `domain_bootstrap_pipeline_run.php` dry-run +2. 如 pipeline dry-run 正常,再决定是否正式执行可落地动作 +3. 如需更细粒度推进,再退回 `domain_bootstrap_oncall_run.php` 或 `domain_bootstrap_run.php` +4. 确认站点策略无误后,再继续 `prepare -> import -> dry_run -> publish` +5. 如果当前是 `ready_to_import`,优先看 `pipeline_import_mode`:`off` 先补目录,`requested-not-armed` 先放行,再执行非 dry-run import + +## Import Policy + +- mode: `off` +- summary: 默认关闭,需显式放行后才会自动导入 AI 结果。 +- source_path: `` + +## 推荐命令 + +- 命令脚本:`/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/commands.sh` + +```bash +php scripts/domain_bootstrap_pipeline_run.php --host='traffic-supply.example.com' --step-limit=6 --dry-run=1 --allow-prepare=1 --format=text +# php scripts/domain_bootstrap_pipeline_run.php --host='traffic-supply.example.com' --step-limit=6 --dry-run=0 --allow-prepare=1 --allow-release-dry-run=1 --format=text +php scripts/domain_bootstrap_oncall_run.php --host='traffic-supply.example.com' --dry-run=1 --format=text +# php scripts/domain_bootstrap_oncall_run.php --host='traffic-supply.example.com' --dry-run=0 --format=text +php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com' --dry-run=1 --format=text +# php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com' --dry-run=0 --format=text +php scripts/domain_bootstrap_register.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-register.sample.json' --dry-run=1 --format=text +# php scripts/domain_bootstrap_register.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-register.sample.json' --format=text +php scripts/domain_seo_bootstrap_apply.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-bootstrap.sample.json' --dry-run=1 --format=text +# php scripts/domain_seo_bootstrap_apply.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-bootstrap.sample.json' --format=text +php scripts/seo_copy_batch_prepare.php '20260408_145449' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved' +# php scripts/domain_bootstrap_pipeline_run.php --host='traffic-supply.example.com' --step-limit=3 --dry-run=0 --allow-import=1 --ai-result-dir= --allow-release-dry-run=1 --format=text +# php scripts/domain_bootstrap_pipeline_run.php --host='traffic-supply.example.com' --step-limit=3 --dry-run=0 --allow-import=1 --ai-result-root= --allow-release-dry-run=1 --format=text +# php scripts/domain_bootstrap_import_ai.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com' --format=text +# php scripts/seo_copy_batch_import.php --target-root='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy' +php scripts/seo_copy_release_run.php '20260408_145449' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved' --source-root='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy' --base-url='https://traffic-supply.example.com' --dry-run=1 --format=text +# php scripts/domain_bootstrap_publish.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com' --format=text +# php scripts/seo_copy_release_run.php '20260408_145449' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved' --source-root='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy' --base-url='https://traffic-supply.example.com' --format=text +``` diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/bootstrap-summary.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/bootstrap-summary.json new file mode 100644 index 0000000..d99446d --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/bootstrap-summary.json @@ -0,0 +1,581 @@ +{ + "host": "traffic-supply.example.com", + "host_dir": "traffic-supply-example-com", + "manifest": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved/20260408_145449.manifest.json", + "manifest_status": "written", + "target_root": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy", + "approved_dir": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com", + "base_url": "https://traffic-supply.example.com", + "items_count": 9, + "items": [ + { + "scene": "home", + "page_key": "index", + "target_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy/traffic-supply-example-com/home/index.json", + "status": "written" + }, + { + "scene": "category_index", + "page_key": "dian-ying", + "target_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy/traffic-supply-example-com/category_index/dian-ying.json", + "status": "written" + }, + { + "scene": "category_list", + "page_key": "dian-ying--ju-qing-pian", + "target_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy/traffic-supply-example-com/category_list/dian-ying--ju-qing-pian.json", + "status": "written" + }, + { + "scene": "search", + "page_key": "h-46b7136c36500625", + "target_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy/traffic-supply-example-com/search/h-46b7136c36500625.json", + "status": "written" + }, + { + "scene": "rank_index", + "page_key": "index", + "target_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy/traffic-supply-example-com/rank_index/index.json", + "status": "written" + }, + { + "scene": "rank_list", + "page_key": "daily", + "target_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy/traffic-supply-example-com/rank_list/daily.json", + "status": "written" + }, + { + "scene": "detail", + "page_key": "154124", + "target_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy/traffic-supply-example-com/detail/154124.json", + "status": "written" + }, + { + "scene": "forge", + "page_key": "154124-forge-1", + "target_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy/traffic-supply-example-com/forge/154124-forge-1.json", + "status": "written" + }, + { + "scene": "play", + "page_key": "154124-play-youzhi-1", + "target_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy/traffic-supply-example-com/play/154124-play-youzhi-1.json", + "status": "written" + } + ], + "site_register": { + "d_domain": "traffic-supply.example.com", + "d_match_type": "exact", + "d_parent_domain": "", + "d_seed_scope": "domain", + "d_seo_cfg": { + "strategy_profile": "traffic", + "canonical_mode": "strict", + "play_index_mode": "index_follow", + "forge": { + "exposure_profile": "balanced", + "enable": true, + "count": 12, + "entry_count": 3, + "sitemap_count": 2, + "route_group": "detail_forge_v2", + "title_source": "v_seo_words" + }, + "intro_block": { + "home": true, + "category": true, + "detail": true, + "search": true + }, + "structured_data": { + "policy": "compact", + "reference_mode": "id_only", + "website_node": true, + "page_node": true, + "breadcrumb_node": true, + "video_object_node": true, + "organization_node": true, + "organization_name": "", + "same_as": [] + }, + "runtime_acceptance": { + "enable": false, + "samples": [] + }, + "robots_policy": "index_follow", + "match_type": "exact", + "seed_scope": "domain", + "wildcard_enable": false + }, + "t_id": 1, + "d_name": "Traffic Supply", + "d_keywords": "Traffic Supply,影视推荐", + "d_description": "Traffic Supply 内容整理与推荐。", + "d_index_title": "Traffic Supply影视内容推荐", + "d_index_keywords": "Traffic Supply,影视推荐", + "d_index_description": "Traffic Supply 内容整理与推荐。", + "d_statis": "", + "d_logo_type": 0, + "d_text_logo": "Traffic Supply", + "d_img_logo": "", + "d_content_encode": 0, + "info_id": 0, + "d_baidu_token": "", + "_notes": [ + "本文件用于创建 domain 记录,模板配置 t_cfg 会在创建时自动从模板表读取。", + "如目标域名已存在,register dry-run 会返回 domain_exists,后续直接执行 SEO 策略 apply 即可。", + "建议在正式 apply 前先检查 site_name、template_id 和首页三要素文案。" + ] + }, + "site_register_preview": { + "payload": { + "d_domain": "traffic-supply.example.com", + "d_match_type": "exact", + "d_parent_domain": "", + "d_seed_scope": "domain", + "d_seo_cfg": { + "strategy_profile": "traffic", + "canonical_mode": "strict", + "play_index_mode": "index_follow", + "forge": { + "exposure_profile": "balanced", + "enable": true, + "count": 12, + "entry_count": 3, + "sitemap_count": 2, + "route_group": "detail_forge_v2", + "title_source": "v_seo_words" + }, + "intro_block": { + "home": true, + "category": true, + "detail": true, + "search": true + }, + "structured_data": { + "policy": "compact", + "reference_mode": "id_only", + "website_node": true, + "page_node": true, + "breadcrumb_node": true, + "video_object_node": true, + "organization_node": true, + "organization_name": "", + "same_as": [] + }, + "runtime_acceptance": { + "enable": false, + "samples": [] + }, + "robots_policy": "index_follow", + "match_type": "exact", + "seed_scope": "domain", + "wildcard_enable": false + }, + "t_id": 1, + "d_name": "Traffic Supply", + "d_keywords": "Traffic Supply,影视推荐", + "d_description": "Traffic Supply 内容整理与推荐。", + "d_index_title": "Traffic Supply影视内容推荐", + "d_index_keywords": "Traffic Supply,影视推荐", + "d_index_description": "Traffic Supply 内容整理与推荐。", + "d_statis": "", + "d_logo_type": 0, + "d_text_logo": "Traffic Supply", + "d_img_logo": "", + "d_content_encode": 0, + "info_id": 0, + "d_baidu_token": "" + }, + "found": false, + "status": "template_not_found", + "message": "模板不存在,无法创建站点记录。", + "create_fields": 0, + "domain_id": 0, + "template_found": false, + "template_id": 1 + }, + "site_strategy": { + "d_domain": "traffic-supply.example.com", + "d_match_type": "exact", + "d_parent_domain": "", + "d_seed_scope": "domain", + "d_seo_cfg": { + "strategy_profile": "traffic", + "canonical_mode": "strict", + "play_index_mode": "index_follow", + "forge": { + "exposure_profile": "balanced", + "enable": true, + "count": 12, + "entry_count": 3, + "sitemap_count": 2, + "route_group": "detail_forge_v2", + "title_source": "v_seo_words" + }, + "intro_block": { + "home": true, + "category": true, + "detail": true, + "search": true + }, + "structured_data": { + "policy": "compact", + "reference_mode": "id_only", + "website_node": true, + "page_node": true, + "breadcrumb_node": true, + "video_object_node": true, + "organization_node": true, + "organization_name": "", + "same_as": [] + }, + "runtime_acceptance": { + "enable": false, + "samples": [] + }, + "robots_policy": "index_follow", + "match_type": "exact", + "seed_scope": "domain", + "wildcard_enable": false + }, + "_notes": [ + "导入前请补齐 t_id、d_name、关键词、描述等站点基础字段。", + "wildcard 模式建议同步确认父域名和 seed_scope,避免多子域共用错误 seed。", + "本文件只负责域名 SEO 策略与匹配参数,不会替代离线补料 JSON 与 approved manifest。" + ] + }, + "site_apply_preview": { + "payload": { + "d_domain": "traffic-supply.example.com", + "d_match_type": "exact", + "d_parent_domain": "", + "d_seed_scope": "domain", + "d_seo_cfg": { + "strategy_profile": "traffic", + "canonical_mode": "strict", + "play_index_mode": "index_follow", + "forge": { + "exposure_profile": "balanced", + "enable": true, + "count": 12, + "entry_count": 3, + "sitemap_count": 2, + "route_group": "detail_forge_v2", + "title_source": "v_seo_words" + }, + "intro_block": { + "home": true, + "category": true, + "detail": true, + "search": true + }, + "structured_data": { + "policy": "compact", + "reference_mode": "id_only", + "website_node": true, + "page_node": true, + "breadcrumb_node": true, + "video_object_node": true, + "organization_node": true, + "organization_name": "", + "same_as": [] + }, + "runtime_acceptance": { + "enable": false, + "samples": [] + }, + "robots_policy": "index_follow", + "match_type": "exact", + "seed_scope": "domain", + "wildcard_enable": false + } + }, + "found": false, + "status": "domain_not_found", + "message": "请先在站点表中创建目标域名,再应用 bootstrap 策略样板。", + "diff": [], + "changed_fields": 0 + }, + "next_commands": { + "pipeline_dry_run": "php scripts/domain_bootstrap_pipeline_run.php --host='traffic-supply.example.com' --step-limit=6 --dry-run=1 --allow-prepare=1 --format=text", + "pipeline": "php scripts/domain_bootstrap_pipeline_run.php --host='traffic-supply.example.com' --step-limit=6 --dry-run=0 --allow-prepare=1 --allow-release-dry-run=1 --format=text", + "pipeline_import": "php scripts/domain_bootstrap_pipeline_run.php --host='traffic-supply.example.com' --step-limit=3 --dry-run=0 --allow-import=1 --ai-result-dir= --allow-release-dry-run=1 --format=text", + "pipeline_import_root": "php scripts/domain_bootstrap_pipeline_run.php --host='traffic-supply.example.com' --step-limit=3 --dry-run=0 --allow-import=1 --ai-result-root= --allow-release-dry-run=1 --format=text", + "oncall_dry_run": "php scripts/domain_bootstrap_oncall_run.php --host='traffic-supply.example.com' --dry-run=1 --format=text", + "oncall": "php scripts/domain_bootstrap_oncall_run.php --host='traffic-supply.example.com' --dry-run=0 --format=text", + "run_dry_run": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com' --dry-run=1 --format=text", + "run": "php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com' --dry-run=0 --format=text", + "register_dry_run": "php scripts/domain_bootstrap_register.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-register.sample.json' --dry-run=1 --format=text", + "register": "php scripts/domain_bootstrap_register.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-register.sample.json' --format=text", + "apply_dry_run": "php scripts/domain_seo_bootstrap_apply.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-bootstrap.sample.json' --dry-run=1 --format=text", + "apply": "php scripts/domain_seo_bootstrap_apply.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-bootstrap.sample.json' --format=text", + "prepare": "php scripts/seo_copy_batch_prepare.php '20260408_145449' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved'", + "import": "php scripts/domain_bootstrap_import_ai.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com' --format=text", + "import_low_level": "php scripts/seo_copy_batch_import.php --target-root='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy'", + "dry_run": "php scripts/seo_copy_release_run.php '20260408_145449' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved' --source-root='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy' --base-url='https://traffic-supply.example.com' --dry-run=1 --format=text", + "publish": "php scripts/domain_bootstrap_publish.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com' --format=text", + "publish_low_level": "php scripts/seo_copy_release_run.php '20260408_145449' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved' --source-root='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy' --base-url='https://traffic-supply.example.com' --format=text" + }, + "site_register_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-register.sample.json", + "site_bootstrap_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-bootstrap.sample.json", + "bundle_files": { + "summary": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/bootstrap-summary.json", + "manifest_copy": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/manifest.copy.json", + "site_register": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-register.sample.json", + "site_register_preview": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-register.preview.json", + "site_bootstrap": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-bootstrap.sample.json", + "site_apply_preview": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-apply.preview.json", + "commands": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/commands.sh", + "runbook": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/README.md", + "site_register_result": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-register.result.json", + "site_apply_result": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-apply.result.json", + "import_result": "", + "publish_result": "", + "prepare_summary": "", + "release_dry_run_summary": "" + }, + "bundle_index": { + "scan_root": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles", + "bundles_count": 1, + "json": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_index/index.json", + "html": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_index/index.html" + }, + "handoff": { + "stage_code": "ready_for_prepare", + "stage_label": "可进入 Prepare", + "summary": "域名记录与 SEO 策略已经正式落地,下一步可以直接进入 prepare 和 release dry-run 门禁链。", + "next_step": "继续执行 prepare", + "next_command": "php scripts/seo_copy_batch_prepare.php '20260408_145449' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved'" + }, + "site_register_result": { + "register_path": "SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-register.sample.json", + "dry_run": false, + "status": "created", + "message": "目标域名尚未创建,当前样板已具备建站记录所需最小字段。", + "domain_id": 49, + "found": true, + "template_id": 1007, + "template_found": true, + "template_code": "videoGpt1", + "create_fields": 19, + "payload": { + "d_domain": "traffic-supply.example.com", + "d_match_type": "exact", + "d_parent_domain": "", + "d_seed_scope": "domain", + "d_seo_cfg": { + "strategy_profile": "traffic", + "canonical_mode": "strict", + "play_index_mode": "index_follow", + "forge": { + "exposure_profile": "balanced", + "enable": true, + "count": 12, + "entry_count": 3, + "sitemap_count": 2, + "route_group": "detail_forge_v2", + "title_source": "v_seo_words" + }, + "intro_block": { + "home": true, + "category": true, + "detail": true, + "search": true + }, + "structured_data": { + "policy": "compact", + "reference_mode": "id_only", + "website_node": true, + "page_node": true, + "breadcrumb_node": true, + "video_object_node": true, + "organization_node": true, + "organization_name": "", + "same_as": [] + }, + "runtime_acceptance": { + "enable": false, + "samples": [] + }, + "robots_policy": "index_follow", + "match_type": "exact", + "seed_scope": "domain", + "wildcard_enable": false + }, + "t_id": 1007, + "d_name": "Traffic Supply", + "d_keywords": "Traffic Supply,影视推荐", + "d_description": "Traffic Supply 内容整理与推荐。", + "d_index_title": "Traffic Supply影视内容推荐", + "d_index_keywords": "Traffic Supply,影视推荐", + "d_index_description": "Traffic Supply 内容整理与推荐。", + "d_statis": "", + "d_logo_type": 0, + "d_text_logo": "Traffic Supply", + "d_img_logo": "", + "d_content_encode": 0, + "info_id": 0, + "d_baidu_token": "" + }, + "executed_at": "2026-04-08T14:49:57+08:00" + }, + "bundle_portal": { + "root": "" + }, + "site_apply_result": { + "bootstrap_path": "SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-bootstrap.sample.json", + "dry_run": false, + "status": "applied", + "message": "", + "domain_id": 49, + "found": true, + "changed_fields": 1, + "diff": { + "d_seo_cfg": { + "before": { + "strategy_profile": "traffic", + "canonical_mode": "strict", + "play_index_mode": "index_follow", + "forge": { + "exposure_profile": "balanced", + "enable": true, + "count": 12, + "entry_count": 3, + "sitemap_count": 2, + "route_group": "detail_forge_v2", + "title_source": "v_seo_words" + }, + "intro_block": { + "home": true, + "category": true, + "detail": true, + "search": true + }, + "structured_data": { + "policy": "compact", + "reference_mode": "id_only", + "website_node": true, + "page_node": true, + "breadcrumb_node": true, + "video_object_node": true, + "organization_node": true, + "organization_name": "", + "same_as": [] + }, + "runtime_acceptance": { + "enable": false, + "samples": [] + }, + "robots_policy": "index_follow", + "match_type": "exact", + "seed_scope": "domain", + "wildcard_enable": false + }, + "after": { + "strategy_profile": "traffic", + "canonical_mode": "strict", + "play_index_mode": "index_follow", + "forge": { + "exposure_profile": "balanced", + "enable": true, + "count": 12, + "entry_count": 3, + "sitemap_count": 2, + "route_group": "detail_forge_v2", + "title_source": "v_seo_words" + }, + "intro_block": { + "home": true, + "category": true, + "detail": true, + "search": true + }, + "structured_data": { + "policy": "compact", + "reference_mode": "id_only", + "website_node": true, + "page_node": true, + "breadcrumb_node": true, + "video_object_node": true, + "organization_node": true, + "organization_name": "", + "same_as": [] + }, + "runtime_acceptance": { + "enable": true, + "samples": [ + { + "video_id": 154124, + "forge_id": 1 + } + ] + }, + "robots_policy": "index_follow", + "match_type": "exact", + "seed_scope": "domain", + "wildcard_enable": false + } + } + }, + "payload": { + "d_domain": "traffic-supply.example.com", + "d_match_type": "exact", + "d_parent_domain": "", + "d_seed_scope": "domain", + "d_seo_cfg": { + "strategy_profile": "traffic", + "canonical_mode": "strict", + "play_index_mode": "index_follow", + "forge": { + "exposure_profile": "balanced", + "enable": true, + "count": 12, + "entry_count": 3, + "sitemap_count": 2, + "route_group": "detail_forge_v2", + "title_source": "v_seo_words" + }, + "intro_block": { + "home": true, + "category": true, + "detail": true, + "search": true + }, + "structured_data": { + "policy": "compact", + "reference_mode": "id_only", + "website_node": true, + "page_node": true, + "breadcrumb_node": true, + "video_object_node": true, + "organization_node": true, + "organization_name": "", + "same_as": [] + }, + "runtime_acceptance": { + "enable": true, + "samples": [ + { + "video_id": 154124, + "forge_id": 1 + } + ] + }, + "robots_policy": "index_follow", + "match_type": "exact", + "seed_scope": "domain", + "wildcard_enable": false + } + }, + "executed_at": "2026-04-08T14:49:57+08:00" + }, + "bundle_run": { + "run_name": "144957_traffic-supply-example-com", + "run_json": "/www/wwwroot/diff-maccms/SEONexus/code/storage/domain_bootstrap_runs/20260408/144957_traffic-supply-example-com.json", + "status": "completed", + "dry_run": false, + "executed_at": "2026-04-08T14:49:57+08:00" + } +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/commands.sh b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/commands.sh new file mode 100644 index 0000000..ec04026 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/commands.sh @@ -0,0 +1,40 @@ +#!/usr/bin/env bash +set -euo pipefail + +cd '/www/wwwroot/diff-maccms/SEONexus/code' + +# 1. 推荐先走更高层 pipeline 编排入口 +php scripts/domain_bootstrap_pipeline_run.php --host='traffic-supply.example.com' --step-limit=6 --dry-run=1 --allow-prepare=1 --format=text +# php scripts/domain_bootstrap_pipeline_run.php --host='traffic-supply.example.com' --step-limit=6 --dry-run=0 --allow-prepare=1 --allow-release-dry-run=1 --format=text + +# 2. 如需更细粒度推进,再走 oncall / run 入口 +php scripts/domain_bootstrap_oncall_run.php --host='traffic-supply.example.com' --dry-run=1 --format=text +# php scripts/domain_bootstrap_oncall_run.php --host='traffic-supply.example.com' --dry-run=0 --format=text + +php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com' --dry-run=1 --format=text +# php scripts/domain_bootstrap_run.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com' --dry-run=0 --format=text + +# 3. 如需拆步排查,再分别执行 register/apply +php scripts/domain_bootstrap_register.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-register.sample.json' --dry-run=1 --format=text +# php scripts/domain_bootstrap_register.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-register.sample.json' --format=text + +php scripts/domain_seo_bootstrap_apply.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-bootstrap.sample.json' --dry-run=1 --format=text +# php scripts/domain_seo_bootstrap_apply.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-bootstrap.sample.json' --format=text + +# 4. 生成 facts + prompt +php scripts/seo_copy_batch_prepare.php '20260408_145449' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved' + +# 5. 导入 AI 结果 +# policy_mode=off +# policy_summary=默认关闭,需显式放行后才会自动导入 AI 结果。 +# policy_source= +# php scripts/domain_bootstrap_pipeline_run.php --host='traffic-supply.example.com' --step-limit=3 --dry-run=0 --allow-import=1 --ai-result-dir= --allow-release-dry-run=1 --format=text +# php scripts/domain_bootstrap_pipeline_run.php --host='traffic-supply.example.com' --step-limit=3 --dry-run=0 --allow-import=1 --ai-result-root= --allow-release-dry-run=1 --format=text +# php scripts/domain_bootstrap_import_ai.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com' --format=text + +# 6. 跑 dry-run 门禁 +php scripts/seo_copy_release_run.php '20260408_145449' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved' --source-root='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy' --base-url='https://traffic-supply.example.com' --dry-run=1 --format=text + +# 7. dry-run 通过后正式发布 +# php scripts/domain_bootstrap_publish.php '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com' --format=text +# php scripts/seo_copy_release_run.php '20260408_145449' --approved-dir='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved' --source-root='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy' --base-url='https://traffic-supply.example.com' --format=text diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy/traffic-supply-example-com/category_index/dian-ying.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy/traffic-supply-example-com/category_index/dian-ying.json new file mode 100644 index 0000000..fba4d30 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy/traffic-supply-example-com/category_index/dian-ying.json @@ -0,0 +1,18 @@ +{ + "intro_text": "电影分类首页当前按常见题材继续拆分,适合先确定电影方向,再进入具体列表页连续筛选。", + "intro_meta": "如果你已经知道想看的大致方向,优先从题材入口进入会比直接翻全站列表更快。", + "guide_cards": [ + { + "title": "当前频道", + "text": "这一页主要整理电影分类下的细分题材入口,适合先按题材缩小范围,再进入列表页补看具体内容。" + }, + { + "title": "题材分区", + "text": "当前分类页已经把常看电影题材拆成多个入口,进入后会继续展示每个题材下的分页结果和详情路径。" + }, + { + "title": "进入下一步", + "text": "从题材入口进入后会先到列表页,接着可查看详情页、延伸词入口和播放页,路径会比首页更聚焦。" + } + ] +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy/traffic-supply-example-com/category_list/dian-ying--ju-qing-pian.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy/traffic-supply-example-com/category_list/dian-ying--ju-qing-pian.json new file mode 100644 index 0000000..de3f998 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy/traffic-supply-example-com/category_list/dian-ying--ju-qing-pian.json @@ -0,0 +1,18 @@ +{ + "intro_text": "当前戏剧情分类列表主要整理同题材内容,适合先看列表范围,再继续进入详情页确认是否是目标作品。", + "intro_meta": "如果这一页还不够精确,可以继续返回上级分类,或者用关键词把结果再收窄一层。", + "guide_cards": [ + { + "title": "当前范围", + "text": "这一页把同题材内容集中在一起,适合先确认是不是你要看的方向,再继续看详情页。" + }, + { + "title": "翻页建议", + "text": "如果当前页内容还不够集中,可以继续翻页,或者回到上级分类先换一个更细的切口。" + }, + { + "title": "后续路径", + "text": "从列表页进入后会先看详情页,再决定是否通过延伸词入口和播放页继续浏览。" + } + ] +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy/traffic-supply-example-com/detail/154124.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy/traffic-supply-example-com/detail/154124.json new file mode 100644 index 0000000..ed195a2 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy/traffic-supply-example-com/detail/154124.json @@ -0,0 +1,6 @@ +{ + "detail_body_lead": "本页围绕《圣诞不堵心梦飞丝连趣》的主线剧情、题材定位和观看入口做了集中整理,适合先快速判断这部作品是否符合当前预期。", + "detail_play_link_lead": "如果已经准备继续追这部作品,可以直接进入", + "detail_body_tail": "如果你还想换个检索角度继续确认内容归属,也可以继续浏览下方的延伸词入口。", + "main_description": "《圣诞不堵心梦飞丝连趣》当前页面重点整理它的剧情简介、题材归类和播放线索,方便在进入播放页之前先快速了解内容方向。" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy/traffic-supply-example-com/forge/154124-forge-1.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy/traffic-supply-example-com/forge/154124-forge-1.json new file mode 100644 index 0000000..f3048c7 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy/traffic-supply-example-com/forge/154124-forge-1.json @@ -0,0 +1,7 @@ +{ + "forge_detail_note": "当前延伸词条主要围绕“圣诞不堵心梦飞丝连趣”这一检索切口展开,用来帮助确认它与主片的对应关系。", + "forge_body_lead": "这一页围绕延伸词补充主片信息,适合从搜索结果或长尾检索进入后先确认词条归属,再决定是否回主详情或继续播放。", + "forge_return_lead": "如果想回到标准详情主页,可直接返回", + "forge_play_lead": "如果已经确认内容归属并准备继续观看,也可以直接进入", + "main_description": "当前延伸页以长尾切口补充说明,但核心内容仍对应主片《圣诞不堵心梦飞丝连趣》,适合先确认检索词和主内容的映射关系,再继续查看剧情与播放入口。" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy/traffic-supply-example-com/home/index.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy/traffic-supply-example-com/home/index.json new file mode 100644 index 0000000..d5551fd --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy/traffic-supply-example-com/home/index.json @@ -0,0 +1,18 @@ +{ + "intro_text": "Traffic Supply 首页当前把电影、电视剧、综艺、动漫和短剧这些主线入口放在一起,适合先按大类缩小范围,再继续进入详情页或播放页确认观看方向。", + "intro_meta": "这一版首页更适合先确定内容大类,再结合更新列表、推荐区和搜索入口继续筛选目标作品。", + "guide_cards": [ + { + "title": "首页入口", + "text": "当前首页先把常看的内容大类和更新条目放在一起,适合先判断方向,再继续进入详情页确认剧情和入口信息。" + }, + { + "title": "筛选建议", + "text": "如果首页推荐还不够精确,可以直接进入分类频道,或者结合顶部搜索按片名、演员和题材继续查找。" + }, + { + "title": "浏览路径", + "text": "从首页点进内容后会先进入详情页,接着还能看延伸词入口,再决定是否进入播放页继续浏览。" + } + ] +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy/traffic-supply-example-com/play/154124-play-youzhi-1.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy/traffic-supply-example-com/play/154124-play-youzhi-1.json new file mode 100644 index 0000000..1c443ae --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy/traffic-supply-example-com/play/154124-play-youzhi-1.json @@ -0,0 +1,6 @@ +{ + "play_intro": "当前页面提供《圣诞不堵心梦飞丝连趣》的在线播放入口,同时补充当前线路、回详情路径和题材跳转入口,方便边看边确认信息。", + "play_meta_note": "当前线路参考为优质资源,当前播放条目标记为HD中字;如果加载不稳定,建议优先切换线路,或先回详情页补看剧情与题材信息。", + "play_body_lead": "本页核心是《圣诞不堵心梦飞丝连趣》的播放入口,同时整理了回详情页、回题材页和继续筛选的辅助路径,适合直接进入观看阶段。", + "play_body_next": "如果想先补看完整剧情、题材归类和相关入口,可以回到详情页继续浏览。" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy/traffic-supply-example-com/rank_index/index.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy/traffic-supply-example-com/rank_index/index.json new file mode 100644 index 0000000..8baab21 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy/traffic-supply-example-com/rank_index/index.json @@ -0,0 +1,18 @@ +{ + "intro_text": "榜单首页当前把日榜、周榜、月榜和总榜放在同一页,适合先快速判断近期热度,再切换周期看内容是短时爆发还是持续热门。", + "intro_meta": "如果更关心稳定热度,先看周榜和月榜会更直观;如果要追新内容,优先看日榜会更快。", + "guide_cards": [ + { + "title": "榜单首页", + "text": "这一页主要负责汇总不同周期的热度入口,适合先决定看哪个周期,再进入具体榜单列表页。" + }, + { + "title": "周期区别", + "text": "日榜更适合看最近升温内容,周榜和月榜更适合判断稳定热度,总榜适合看长期热门。" + }, + { + "title": "后续路径", + "text": "从榜单首页进入具体榜单后,还可以继续查看详情页、延伸词入口和播放页。" + } + ] +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy/traffic-supply-example-com/rank_list/daily.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy/traffic-supply-example-com/rank_list/daily.json new file mode 100644 index 0000000..63ce85f --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy/traffic-supply-example-com/rank_list/daily.json @@ -0,0 +1,18 @@ +{ + "intro_text": "当前日榜列表主要展示最近热度变化,适合先看短期升温内容,再决定是否继续点进详情页。", + "intro_meta": "如果你更想看稳定热度,可以再切到周榜或月榜对照一下。", + "guide_cards": [ + { + "title": "当前周期", + "text": "这一页聚焦最近热度变化,适合先看今天的热门条目,再决定是否继续查看详情。" + }, + { + "title": "对照建议", + "text": "如果你想判断内容是不是短期爆发,可以再切换到周榜和月榜对照一下。" + }, + { + "title": "进入详情前", + "text": "从榜单点进条目后会先到详情页,再看延伸词和播放入口把路径接起来。" + } + ] +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy/traffic-supply-example-com/search/h-46b7136c36500625.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy/traffic-supply-example-com/search/h-46b7136c36500625.json new file mode 100644 index 0000000..7ef7e27 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy/traffic-supply-example-com/search/h-46b7136c36500625.json @@ -0,0 +1,18 @@ +{ + "intro_text": "当前搜索结果围绕关键词整理,适合先核对标题和内容定位,再决定是否进入详情页继续确认。", + "intro_meta": "如果还想补充检索角度,可以继续加入人物、题材或短剧标签,让结果更快收敛到目标内容。", + "guide_cards": [ + { + "title": "当前关键词", + "text": "这一组结果围绕当前关键词展开,适合先核对标题和内容定位是否一致。" + }, + { + "title": "缩小范围", + "text": "如果后续出现近似名称条目,可以补充短剧、人物或题材词继续搜索,让结果更快收敛。" + }, + { + "title": "进入详情前", + "text": "从搜索页点进条目后会先到详情页,还能继续通过延伸词入口换检索切口。" + } + ] +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved/20260408_145449.manifest.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved/20260408_145449.manifest.json new file mode 100644 index 0000000..7d391ff --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved/20260408_145449.manifest.json @@ -0,0 +1,75 @@ +{ + "release_tag": "20260408_145449", + "created_at": "2026-04-08T14:54:49+08:00", + "source_manifest": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/manifest.copy.json", + "manifest_digest": "ed811a6084629030937ab021800cd1b066fbc681", + "items": [ + { + "host": "traffic-supply.example.com", + "scene": "home", + "page_parts": [ + "index" + ] + }, + { + "host": "traffic-supply.example.com", + "scene": "category_index", + "page_parts": [ + "dian-ying" + ] + }, + { + "host": "traffic-supply.example.com", + "scene": "category_list", + "page_parts": [ + "dian-ying", + "ju-qing-pian" + ] + }, + { + "host": "traffic-supply.example.com", + "scene": "search", + "page_parts": [ + "圣诞" + ] + }, + { + "host": "traffic-supply.example.com", + "scene": "rank_index", + "page_parts": [ + "index" + ] + }, + { + "host": "traffic-supply.example.com", + "scene": "rank_list", + "page_parts": [ + "daily" + ] + }, + { + "host": "traffic-supply.example.com", + "scene": "detail", + "page_parts": [ + "154124" + ] + }, + { + "host": "traffic-supply.example.com", + "scene": "forge", + "page_parts": [ + "154124", + "1" + ] + }, + { + "host": "traffic-supply.example.com", + "scene": "play", + "page_parts": [ + "154124", + "youzhi", + "1" + ] + } + ] +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved/20260408_164152.manifest.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved/20260408_164152.manifest.json new file mode 100644 index 0000000..881acd3 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved/20260408_164152.manifest.json @@ -0,0 +1,75 @@ +{ + "release_tag": "20260408_164152", + "created_at": "2026-04-08T16:41:53+08:00", + "source_manifest": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved/traffic-supply-example-com-core-batch1.manifest.json", + "manifest_digest": "ed811a6084629030937ab021800cd1b066fbc681", + "items": [ + { + "host": "traffic-supply.example.com", + "scene": "home", + "page_parts": [ + "index" + ] + }, + { + "host": "traffic-supply.example.com", + "scene": "category_index", + "page_parts": [ + "dian-ying" + ] + }, + { + "host": "traffic-supply.example.com", + "scene": "category_list", + "page_parts": [ + "dian-ying", + "ju-qing-pian" + ] + }, + { + "host": "traffic-supply.example.com", + "scene": "search", + "page_parts": [ + "圣诞" + ] + }, + { + "host": "traffic-supply.example.com", + "scene": "rank_index", + "page_parts": [ + "index" + ] + }, + { + "host": "traffic-supply.example.com", + "scene": "rank_list", + "page_parts": [ + "daily" + ] + }, + { + "host": "traffic-supply.example.com", + "scene": "detail", + "page_parts": [ + "154124" + ] + }, + { + "host": "traffic-supply.example.com", + "scene": "forge", + "page_parts": [ + "154124", + "1" + ] + }, + { + "host": "traffic-supply.example.com", + "scene": "play", + "page_parts": [ + "154124", + "youzhi", + "1" + ] + } + ] +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved/approved-index.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved/approved-index.html new file mode 100644 index 0000000..1c7f878 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved/approved-index.html @@ -0,0 +1 @@ +Approved Manifest Index

Approved Manifest Index

内部只读清单页,展示已批准 manifest 的覆盖范围与更新时间。

generated_at2026-04-08T16:41:53+08:00
manifests1
filenamerelease_tagitemshostsscenesupdated_at
traffic-supply-example-com-core-batch1.manifest.jsontraffic-supply-example-com-core-batch19traffic-supply.example.comhome, category_index, category_list, search, rank_index, rank_list, detail, forge, play2026-04-06T13:28:28+08:00
\ No newline at end of file diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved/approved-index.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved/approved-index.json new file mode 100644 index 0000000..11c19b9 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved/approved-index.json @@ -0,0 +1,108 @@ +{ + "generated_at": "2026-04-08T16:41:53+08:00", + "manifests_count": 1, + "manifests": [ + { + "filename": "traffic-supply-example-com-core-batch1.manifest.json", + "relative_path": "traffic-supply-example-com-core-batch1.manifest.json", + "detail_slug": "traffic-supply-example-com-core-batch1", + "release_tag": "traffic-supply-example-com-core-batch1", + "items_count": 9, + "hosts": [ + "traffic-supply.example.com" + ], + "scenes": [ + "home", + "category_index", + "category_list", + "search", + "rank_index", + "rank_list", + "detail", + "forge", + "play" + ], + "scene_totals": { + "category_index": 1, + "category_list": 1, + "detail": 1, + "forge": 1, + "home": 1, + "play": 1, + "rank_index": 1, + "rank_list": 1, + "search": 1 + }, + "items": [ + { + "host": "traffic-supply.example.com", + "scene": "home", + "page_parts": [ + "index" + ] + }, + { + "host": "traffic-supply.example.com", + "scene": "category_index", + "page_parts": [ + "dian-ying" + ] + }, + { + "host": "traffic-supply.example.com", + "scene": "category_list", + "page_parts": [ + "dian-ying", + "ju-qing-pian" + ] + }, + { + "host": "traffic-supply.example.com", + "scene": "search", + "page_parts": [ + "圣诞" + ] + }, + { + "host": "traffic-supply.example.com", + "scene": "rank_index", + "page_parts": [ + "index" + ] + }, + { + "host": "traffic-supply.example.com", + "scene": "rank_list", + "page_parts": [ + "daily" + ] + }, + { + "host": "traffic-supply.example.com", + "scene": "detail", + "page_parts": [ + "154124" + ] + }, + { + "host": "traffic-supply.example.com", + "scene": "forge", + "page_parts": [ + "154124", + "1" + ] + }, + { + "host": "traffic-supply.example.com", + "scene": "play", + "page_parts": [ + "154124", + "youzhi", + "1" + ] + } + ], + "updated_at": "2026-04-06T13:28:28+08:00" + } + ] +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved/details/traffic-supply-example-com-core-batch1.html b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved/details/traffic-supply-example-com-core-batch1.html new file mode 100644 index 0000000..f27d3a6 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved/details/traffic-supply-example-com-core-batch1.html @@ -0,0 +1 @@ +Approved Manifest Detail

Approved Manifest Detail

内部只读 manifest 详情页,展示当前 approved 清单覆盖的 host、scene 与 page_parts。

返回 approved 清单总览

filenametraffic-supply-example-com-core-batch1.manifest.json
release_tagtraffic-supply-example-com-core-batch1
items9
hoststraffic-supply.example.com
sceneshome, category_index, category_list, search, rank_index, rank_list, detail, forge, play
updated_at2026-04-06T13:28:28+08:00

Scene Totals

scenecount
category_index1
category_list1
detail1
forge1
home1
play1
rank_index1
rank_list1
search1

Items

hostscenepage_parts
traffic-supply.example.comhome["index"]
traffic-supply.example.comcategory_index["dian-ying"]
traffic-supply.example.comcategory_list["dian-ying","ju-qing-pian"]
traffic-supply.example.comsearch["圣诞"]
traffic-supply.example.comrank_index["index"]
traffic-supply.example.comrank_list["daily"]
traffic-supply.example.comdetail["154124"]
traffic-supply.example.comforge["154124","1"]
traffic-supply.example.complay["154124","youzhi","1"]
\ No newline at end of file diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved/details/traffic-supply-example-com-core-batch1.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved/details/traffic-supply-example-com-core-batch1.json new file mode 100644 index 0000000..0485b9a --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved/details/traffic-supply-example-com-core-batch1.json @@ -0,0 +1,102 @@ +{ + "filename": "traffic-supply-example-com-core-batch1.manifest.json", + "relative_path": "traffic-supply-example-com-core-batch1.manifest.json", + "detail_slug": "traffic-supply-example-com-core-batch1", + "release_tag": "traffic-supply-example-com-core-batch1", + "items_count": 9, + "hosts": [ + "traffic-supply.example.com" + ], + "scenes": [ + "home", + "category_index", + "category_list", + "search", + "rank_index", + "rank_list", + "detail", + "forge", + "play" + ], + "scene_totals": { + "category_index": 1, + "category_list": 1, + "detail": 1, + "forge": 1, + "home": 1, + "play": 1, + "rank_index": 1, + "rank_list": 1, + "search": 1 + }, + "items": [ + { + "host": "traffic-supply.example.com", + "scene": "home", + "page_parts": [ + "index" + ] + }, + { + "host": "traffic-supply.example.com", + "scene": "category_index", + "page_parts": [ + "dian-ying" + ] + }, + { + "host": "traffic-supply.example.com", + "scene": "category_list", + "page_parts": [ + "dian-ying", + "ju-qing-pian" + ] + }, + { + "host": "traffic-supply.example.com", + "scene": "search", + "page_parts": [ + "圣诞" + ] + }, + { + "host": "traffic-supply.example.com", + "scene": "rank_index", + "page_parts": [ + "index" + ] + }, + { + "host": "traffic-supply.example.com", + "scene": "rank_list", + "page_parts": [ + "daily" + ] + }, + { + "host": "traffic-supply.example.com", + "scene": "detail", + "page_parts": [ + "154124" + ] + }, + { + "host": "traffic-supply.example.com", + "scene": "forge", + "page_parts": [ + "154124", + "1" + ] + }, + { + "host": "traffic-supply.example.com", + "scene": "play", + "page_parts": [ + "154124", + "youzhi", + "1" + ] + } + ], + "updated_at": "2026-04-06T13:28:28+08:00" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved/traffic-supply-example-com-core-batch1.manifest.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved/traffic-supply-example-com-core-batch1.manifest.json new file mode 100644 index 0000000..4849b95 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved/traffic-supply-example-com-core-batch1.manifest.json @@ -0,0 +1,69 @@ +[ + { + "host": "traffic-supply.example.com", + "scene": "home", + "page_parts": [ + "index" + ] + }, + { + "host": "traffic-supply.example.com", + "scene": "category_index", + "page_parts": [ + "dian-ying" + ] + }, + { + "host": "traffic-supply.example.com", + "scene": "category_list", + "page_parts": [ + "dian-ying", + "ju-qing-pian" + ] + }, + { + "host": "traffic-supply.example.com", + "scene": "search", + "page_parts": [ + "圣诞" + ] + }, + { + "host": "traffic-supply.example.com", + "scene": "rank_index", + "page_parts": [ + "index" + ] + }, + { + "host": "traffic-supply.example.com", + "scene": "rank_list", + "page_parts": [ + "daily" + ] + }, + { + "host": "traffic-supply.example.com", + "scene": "detail", + "page_parts": [ + "154124" + ] + }, + { + "host": "traffic-supply.example.com", + "scene": "forge", + "page_parts": [ + "154124", + "1" + ] + }, + { + "host": "traffic-supply.example.com", + "scene": "play", + "page_parts": [ + "154124", + "youzhi", + "1" + ] + } +] diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/manifest.copy.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/manifest.copy.json new file mode 100644 index 0000000..4849b95 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/manifest.copy.json @@ -0,0 +1,69 @@ +[ + { + "host": "traffic-supply.example.com", + "scene": "home", + "page_parts": [ + "index" + ] + }, + { + "host": "traffic-supply.example.com", + "scene": "category_index", + "page_parts": [ + "dian-ying" + ] + }, + { + "host": "traffic-supply.example.com", + "scene": "category_list", + "page_parts": [ + "dian-ying", + "ju-qing-pian" + ] + }, + { + "host": "traffic-supply.example.com", + "scene": "search", + "page_parts": [ + "圣诞" + ] + }, + { + "host": "traffic-supply.example.com", + "scene": "rank_index", + "page_parts": [ + "index" + ] + }, + { + "host": "traffic-supply.example.com", + "scene": "rank_list", + "page_parts": [ + "daily" + ] + }, + { + "host": "traffic-supply.example.com", + "scene": "detail", + "page_parts": [ + "154124" + ] + }, + { + "host": "traffic-supply.example.com", + "scene": "forge", + "page_parts": [ + "154124", + "1" + ] + }, + { + "host": "traffic-supply.example.com", + "scene": "play", + "page_parts": [ + "154124", + "youzhi", + "1" + ] + } +] diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-apply.preview.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-apply.preview.json new file mode 100644 index 0000000..efc708c --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-apply.preview.json @@ -0,0 +1,52 @@ +{ + "payload": { + "d_domain": "traffic-supply.example.com", + "d_match_type": "exact", + "d_parent_domain": "", + "d_seed_scope": "domain", + "d_seo_cfg": { + "strategy_profile": "traffic", + "canonical_mode": "strict", + "play_index_mode": "index_follow", + "forge": { + "exposure_profile": "balanced", + "enable": true, + "count": 12, + "entry_count": 3, + "sitemap_count": 2, + "route_group": "detail_forge_v2", + "title_source": "v_seo_words" + }, + "intro_block": { + "home": true, + "category": true, + "detail": true, + "search": true + }, + "structured_data": { + "policy": "compact", + "reference_mode": "id_only", + "website_node": true, + "page_node": true, + "breadcrumb_node": true, + "video_object_node": true, + "organization_node": true, + "organization_name": "", + "same_as": [] + }, + "runtime_acceptance": { + "enable": false, + "samples": [] + }, + "robots_policy": "index_follow", + "match_type": "exact", + "seed_scope": "domain", + "wildcard_enable": false + } + }, + "found": false, + "status": "domain_not_found", + "message": "请先在站点表中创建目标域名,再应用 bootstrap 策略样板。", + "diff": [], + "changed_fields": 0 +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-apply.result.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-apply.result.json new file mode 100644 index 0000000..17171ed --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-apply.result.json @@ -0,0 +1,147 @@ +{ + "bootstrap_path": "SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-bootstrap.sample.json", + "dry_run": false, + "status": "applied", + "message": "", + "domain_id": 49, + "found": true, + "changed_fields": 1, + "diff": { + "d_seo_cfg": { + "before": { + "strategy_profile": "traffic", + "canonical_mode": "strict", + "play_index_mode": "index_follow", + "forge": { + "exposure_profile": "balanced", + "enable": true, + "count": 12, + "entry_count": 3, + "sitemap_count": 2, + "route_group": "detail_forge_v2", + "title_source": "v_seo_words" + }, + "intro_block": { + "home": true, + "category": true, + "detail": true, + "search": true + }, + "structured_data": { + "policy": "compact", + "reference_mode": "id_only", + "website_node": true, + "page_node": true, + "breadcrumb_node": true, + "video_object_node": true, + "organization_node": true, + "organization_name": "", + "same_as": [] + }, + "runtime_acceptance": { + "enable": false, + "samples": [] + }, + "robots_policy": "index_follow", + "match_type": "exact", + "seed_scope": "domain", + "wildcard_enable": false + }, + "after": { + "strategy_profile": "traffic", + "canonical_mode": "strict", + "play_index_mode": "index_follow", + "forge": { + "exposure_profile": "balanced", + "enable": true, + "count": 12, + "entry_count": 3, + "sitemap_count": 2, + "route_group": "detail_forge_v2", + "title_source": "v_seo_words" + }, + "intro_block": { + "home": true, + "category": true, + "detail": true, + "search": true + }, + "structured_data": { + "policy": "compact", + "reference_mode": "id_only", + "website_node": true, + "page_node": true, + "breadcrumb_node": true, + "video_object_node": true, + "organization_node": true, + "organization_name": "", + "same_as": [] + }, + "runtime_acceptance": { + "enable": true, + "samples": [ + { + "video_id": 154124, + "forge_id": 1 + } + ] + }, + "robots_policy": "index_follow", + "match_type": "exact", + "seed_scope": "domain", + "wildcard_enable": false + } + } + }, + "payload": { + "d_domain": "traffic-supply.example.com", + "d_match_type": "exact", + "d_parent_domain": "", + "d_seed_scope": "domain", + "d_seo_cfg": { + "strategy_profile": "traffic", + "canonical_mode": "strict", + "play_index_mode": "index_follow", + "forge": { + "exposure_profile": "balanced", + "enable": true, + "count": 12, + "entry_count": 3, + "sitemap_count": 2, + "route_group": "detail_forge_v2", + "title_source": "v_seo_words" + }, + "intro_block": { + "home": true, + "category": true, + "detail": true, + "search": true + }, + "structured_data": { + "policy": "compact", + "reference_mode": "id_only", + "website_node": true, + "page_node": true, + "breadcrumb_node": true, + "video_object_node": true, + "organization_node": true, + "organization_name": "", + "same_as": [] + }, + "runtime_acceptance": { + "enable": true, + "samples": [ + { + "video_id": 154124, + "forge_id": 1 + } + ] + }, + "robots_policy": "index_follow", + "match_type": "exact", + "seed_scope": "domain", + "wildcard_enable": false + } + }, + "executed_at": "2026-04-08T14:49:57+08:00" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-bootstrap.sample.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-bootstrap.sample.json new file mode 100644 index 0000000..850ac2d --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-bootstrap.sample.json @@ -0,0 +1,55 @@ +{ + "d_domain": "traffic-supply.example.com", + "d_match_type": "exact", + "d_parent_domain": "", + "d_seed_scope": "domain", + "d_seo_cfg": { + "strategy_profile": "traffic", + "canonical_mode": "strict", + "play_index_mode": "index_follow", + "forge": { + "exposure_profile": "balanced", + "enable": true, + "count": 12, + "entry_count": 3, + "sitemap_count": 2, + "route_group": "detail_forge_v2", + "title_source": "v_seo_words" + }, + "intro_block": { + "home": true, + "category": true, + "detail": true, + "search": true + }, + "structured_data": { + "policy": "compact", + "reference_mode": "id_only", + "website_node": true, + "page_node": true, + "breadcrumb_node": true, + "video_object_node": true, + "organization_node": true, + "organization_name": "", + "same_as": [] + }, + "runtime_acceptance": { + "enable": true, + "samples": [ + { + "video_id": 154124, + "forge_id": 1 + } + ] + }, + "robots_policy": "index_follow", + "match_type": "exact", + "seed_scope": "domain", + "wildcard_enable": false + }, + "_notes": [ + "导入前请补齐 t_id、d_name、关键词、描述等站点基础字段。", + "wildcard 模式建议同步确认父域名和 seed_scope,避免多子域共用错误 seed。", + "本文件只负责域名 SEO 策略与匹配参数,不会替代离线补料 JSON 与 approved manifest。" + ] +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-register.preview.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-register.preview.json new file mode 100644 index 0000000..f822884 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-register.preview.json @@ -0,0 +1,68 @@ +{ + "payload": { + "d_domain": "traffic-supply.example.com", + "d_match_type": "exact", + "d_parent_domain": "", + "d_seed_scope": "domain", + "d_seo_cfg": { + "strategy_profile": "traffic", + "canonical_mode": "strict", + "play_index_mode": "index_follow", + "forge": { + "exposure_profile": "balanced", + "enable": true, + "count": 12, + "entry_count": 3, + "sitemap_count": 2, + "route_group": "detail_forge_v2", + "title_source": "v_seo_words" + }, + "intro_block": { + "home": true, + "category": true, + "detail": true, + "search": true + }, + "structured_data": { + "policy": "compact", + "reference_mode": "id_only", + "website_node": true, + "page_node": true, + "breadcrumb_node": true, + "video_object_node": true, + "organization_node": true, + "organization_name": "", + "same_as": [] + }, + "runtime_acceptance": { + "enable": false, + "samples": [] + }, + "robots_policy": "index_follow", + "match_type": "exact", + "seed_scope": "domain", + "wildcard_enable": false + }, + "t_id": 1, + "d_name": "Traffic Supply", + "d_keywords": "Traffic Supply,影视推荐", + "d_description": "Traffic Supply 内容整理与推荐。", + "d_index_title": "Traffic Supply影视内容推荐", + "d_index_keywords": "Traffic Supply,影视推荐", + "d_index_description": "Traffic Supply 内容整理与推荐。", + "d_statis": "", + "d_logo_type": 0, + "d_text_logo": "Traffic Supply", + "d_img_logo": "", + "d_content_encode": 0, + "info_id": 0, + "d_baidu_token": "" + }, + "found": false, + "status": "template_not_found", + "message": "模板不存在,无法创建站点记录。", + "create_fields": 0, + "domain_id": 0, + "template_found": false, + "template_id": 1 +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-register.result.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-register.result.json new file mode 100644 index 0000000..9f6a0f3 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-register.result.json @@ -0,0 +1,72 @@ +{ + "register_path": "SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-register.sample.json", + "dry_run": false, + "status": "created", + "message": "目标域名尚未创建,当前样板已具备建站记录所需最小字段。", + "domain_id": 49, + "found": true, + "template_id": 1007, + "template_found": true, + "template_code": "videoGpt1", + "create_fields": 19, + "payload": { + "d_domain": "traffic-supply.example.com", + "d_match_type": "exact", + "d_parent_domain": "", + "d_seed_scope": "domain", + "d_seo_cfg": { + "strategy_profile": "traffic", + "canonical_mode": "strict", + "play_index_mode": "index_follow", + "forge": { + "exposure_profile": "balanced", + "enable": true, + "count": 12, + "entry_count": 3, + "sitemap_count": 2, + "route_group": "detail_forge_v2", + "title_source": "v_seo_words" + }, + "intro_block": { + "home": true, + "category": true, + "detail": true, + "search": true + }, + "structured_data": { + "policy": "compact", + "reference_mode": "id_only", + "website_node": true, + "page_node": true, + "breadcrumb_node": true, + "video_object_node": true, + "organization_node": true, + "organization_name": "", + "same_as": [] + }, + "runtime_acceptance": { + "enable": false, + "samples": [] + }, + "robots_policy": "index_follow", + "match_type": "exact", + "seed_scope": "domain", + "wildcard_enable": false + }, + "t_id": 1007, + "d_name": "Traffic Supply", + "d_keywords": "Traffic Supply,影视推荐", + "d_description": "Traffic Supply 内容整理与推荐。", + "d_index_title": "Traffic Supply影视内容推荐", + "d_index_keywords": "Traffic Supply,影视推荐", + "d_index_description": "Traffic Supply 内容整理与推荐。", + "d_statis": "", + "d_logo_type": 0, + "d_text_logo": "Traffic Supply", + "d_img_logo": "", + "d_content_encode": 0, + "info_id": 0, + "d_baidu_token": "" + }, + "executed_at": "2026-04-08T14:49:57+08:00" +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-register.sample.json b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-register.sample.json new file mode 100644 index 0000000..42720cd --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-register.sample.json @@ -0,0 +1,64 @@ +{ + "d_domain": "traffic-supply.example.com", + "d_match_type": "exact", + "d_parent_domain": "", + "d_seed_scope": "domain", + "d_seo_cfg": { + "strategy_profile": "traffic", + "canonical_mode": "strict", + "play_index_mode": "index_follow", + "forge": { + "exposure_profile": "balanced", + "enable": true, + "count": 12, + "entry_count": 3, + "sitemap_count": 2, + "route_group": "detail_forge_v2", + "title_source": "v_seo_words" + }, + "intro_block": { + "home": true, + "category": true, + "detail": true, + "search": true + }, + "structured_data": { + "policy": "compact", + "reference_mode": "id_only", + "website_node": true, + "page_node": true, + "breadcrumb_node": true, + "video_object_node": true, + "organization_node": true, + "organization_name": "", + "same_as": [] + }, + "runtime_acceptance": { + "enable": false, + "samples": [] + }, + "robots_policy": "index_follow", + "match_type": "exact", + "seed_scope": "domain", + "wildcard_enable": false + }, + "t_id": 1007, + "d_name": "Traffic Supply", + "d_keywords": "Traffic Supply,影视推荐", + "d_description": "Traffic Supply 内容整理与推荐。", + "d_index_title": "Traffic Supply影视内容推荐", + "d_index_keywords": "Traffic Supply,影视推荐", + "d_index_description": "Traffic Supply 内容整理与推荐。", + "d_statis": "", + "d_logo_type": 0, + "d_text_logo": "Traffic Supply", + "d_img_logo": "", + "d_content_encode": 0, + "info_id": 0, + "d_baidu_token": "", + "_notes": [ + "本文件用于创建 domain 记录,模板配置 t_cfg 会在创建时自动从模板表读取。", + "如目标域名已存在,register dry-run 会返回 domain_exists,后续直接执行 SEO 策略 apply 即可。", + "建议在正式 apply 前先检查 site_name、template_id 和首页三要素文案。" + ] +} diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/generated/domain-bootstrap-batch.generated.xlsx b/code/public/_admin_templates/domain-supply-runs/test-run/generated/domain-bootstrap-batch.generated.xlsx new file mode 100644 index 0000000..d82b48a Binary files /dev/null and b/code/public/_admin_templates/domain-supply-runs/test-run/generated/domain-bootstrap-batch.generated.xlsx differ diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/generated/site-domain-import.generated.xlsx b/code/public/_admin_templates/domain-supply-runs/test-run/generated/site-domain-import.generated.xlsx new file mode 100644 index 0000000..9bb6d20 Binary files /dev/null and b/code/public/_admin_templates/domain-supply-runs/test-run/generated/site-domain-import.generated.xlsx differ diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/supply.summary.html b/code/public/_admin_templates/domain-supply-runs/test-run/supply.summary.html new file mode 100644 index 0000000..bbce55d --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/supply.summary.html @@ -0,0 +1,19 @@ + + + + +Domain Supply Batch Summary + + + +

Domain Supply Batch Summary

+

template: /www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-batch/domain-supply-batch-template.xlsx

+

output_root: /www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run

+

processed: 2 / success: 2 / failed: 0

+

site_import_rows: 2 / bootstrap_rows: 2

+ + + +
HostStrategyStatusMessageSite ImportBootstrap
traffic-supply.example.comtrafficreadypreparedtraffic-supply.example.comtraffic-supply.example.com
*.expand-supply.example.comexpandreadyprepared*.expand-supply.example.com*.expand-supply.example.com
+ + diff --git a/code/public/_admin_templates/domain-supply-runs/test-run/supply.summary.json b/code/public/_admin_templates/domain-supply-runs/test-run/supply.summary.json new file mode 100644 index 0000000..6ae6c76 --- /dev/null +++ b/code/public/_admin_templates/domain-supply-runs/test-run/supply.summary.json @@ -0,0 +1,1455 @@ +{ + "template_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-batch/domain-supply-batch-template.xlsx", + "output_root": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run", + "processed_count": 2, + "success_count": 2, + "failed_count": 0, + "site_import_rows_count": 2, + "bootstrap_rows_count": 2, + "site_import_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/generated/site-domain-import.generated.xlsx", + "bootstrap_batch_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/generated/domain-bootstrap-batch.generated.xlsx", + "run_bootstrap": true, + "batch_root": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles", + "index_root": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles", + "portal_root": "off", + "bootstrap_run": "off", + "items": [ + { + "host": "traffic-supply.example.com", + "strategy_profile": "traffic", + "status": "ready", + "message": "prepared", + "site_domain": "traffic-supply.example.com", + "bundle_host": "traffic-supply.example.com", + "missing_fields": [] + }, + { + "host": "*.expand-supply.example.com", + "strategy_profile": "expand", + "status": "ready", + "message": "prepared", + "site_domain": "*.expand-supply.example.com", + "bundle_host": "*.expand-supply.example.com", + "missing_fields": [] + } + ], + "bootstrap_batch": { + "status": "success", + "command": "php '/www/wwwroot/diff-maccms/SEONexus/code/scripts/seo_copy_domain_bootstrap_batch.php' '/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/generated/domain-bootstrap-batch.generated.xlsx' --batch-root='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles' --index-root='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles' --portal-root='off' --bootstrap-run='off'", + "exit_code": 0, + "output": [ + "{", + " \"template_path\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/generated/domain-bootstrap-batch.generated.xlsx\",", + " \"batch_root\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles\",", + " \"index_root\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles\",", + " \"portal_root\": \"off\",", + " \"bootstrap_run\": \"off\",", + " \"processed_count\": 2,", + " \"success_count\": 2,", + " \"failed_count\": 0,", + " \"items\": [", + " {", + " \"host\": \"traffic-supply.example.com\",", + " \"bundle_root\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com\",", + " \"strategy_profile\": \"traffic\",", + " \"status\": \"success\",", + " \"message\": \"written\",", + " \"command\": \"php '/www/wwwroot/diff-maccms/SEONexus/code/scripts/seo_copy_domain_bootstrap.php' 'traffic-supply.example.com' --detail-id='154124' --detail-slug='sheng-dan-bu-du-xing-meng-fei-si-lian-qu' --search-keyword='圣诞' --category-parent='dian-ying' --category-child='ju-qing-pian' --bundle-root='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com' --index-root='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles' --portal-root='off' --bootstrap-run='off' --play-type='youzhi' --play-index='1' --forge-index='1' --rank-slug='daily' --match-type='exact' --seed-scope='domain' --strategy-profile='traffic' --template-id='1' --site-name='Traffic Supply' --site-keywords='Traffic Supply,影视推荐' --site-description='Traffic Supply 内容整理与推荐。'\",", + " \"exit_code\": 0,", + " \"output\": [", + " \"{\",", + " \" \\\"host\\\": \\\"traffic-supply.example.com\\\",\",", + " \" \\\"host_dir\\\": \\\"traffic-supply-example-com\\\",\",", + " \" \\\"manifest\\\": \\\"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved/traffic-supply-example-com-core-batch1.manifest.json\\\",\",", + " \" \\\"manifest_status\\\": \\\"written\\\",\",", + " \" \\\"target_root\\\": \\\"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy\\\",\",", + " \" \\\"approved_dir\\\": \\\"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved\\\",\",", + " \" \\\"bundle_root\\\": \\\"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com\\\",\",", + " \" \\\"base_url\\\": \\\"https://traffic-supply.example.com\\\",\",", + " \" \\\"items_count\\\": 9,\",", + " \" \\\"items\\\": [\",", + " \" {\",", + " \" \\\"scene\\\": \\\"home\\\",\",", + " \" \\\"page_key\\\": \\\"index\\\",\",", + " \" \\\"target_path\\\": \\\"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy/traffic-supply-example-com/home/index.json\\\",\",", + " \" \\\"status\\\": \\\"written\\\"\",", + " \" },\",", + " \" {\",", + " \" \\\"scene\\\": \\\"category_index\\\",\",", + " \" \\\"page_key\\\": \\\"dian-ying\\\",\",", + " \" \\\"target_path\\\": \\\"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy/traffic-supply-example-com/category_index/dian-ying.json\\\",\",", + " \" \\\"status\\\": \\\"written\\\"\",", + " \" },\",", + " \" {\",", + " \" \\\"scene\\\": \\\"category_list\\\",\",", + " \" \\\"page_key\\\": \\\"dian-ying--ju-qing-pian\\\",\",", + " \" \\\"target_path\\\": \\\"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy/traffic-supply-example-com/category_list/dian-ying--ju-qing-pian.json\\\",\",", + " \" \\\"status\\\": \\\"written\\\"\",", + " \" },\",", + " \" {\",", + " \" \\\"scene\\\": \\\"search\\\",\",", + " \" \\\"page_key\\\": \\\"h-46b7136c36500625\\\",\",", + " \" \\\"target_path\\\": \\\"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy/traffic-supply-example-com/search/h-46b7136c36500625.json\\\",\",", + " \" \\\"status\\\": \\\"written\\\"\",", + " \" },\",", + " \" {\",", + " \" \\\"scene\\\": \\\"rank_index\\\",\",", + " \" \\\"page_key\\\": \\\"index\\\",\",", + " \" \\\"target_path\\\": \\\"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy/traffic-supply-example-com/rank_index/index.json\\\",\",", + " \" \\\"status\\\": \\\"written\\\"\",", + " \" },\",", + " \" {\",", + " \" \\\"scene\\\": \\\"rank_list\\\",\",", + " \" \\\"page_key\\\": \\\"daily\\\",\",", + " \" \\\"target_path\\\": \\\"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy/traffic-supply-example-com/rank_list/daily.json\\\",\",", + " \" \\\"status\\\": \\\"written\\\"\",", + " \" },\",", + " \" {\",", + " \" \\\"scene\\\": \\\"detail\\\",\",", + " \" \\\"page_key\\\": \\\"154124\\\",\",", + " \" \\\"target_path\\\": \\\"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy/traffic-supply-example-com/detail/154124.json\\\",\",", + " \" \\\"status\\\": \\\"written\\\"\",", + " \" },\",", + " \" {\",", + " \" \\\"scene\\\": \\\"forge\\\",\",", + " \" \\\"page_key\\\": \\\"154124-forge-1\\\",\",", + " \" \\\"target_path\\\": \\\"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy/traffic-supply-example-com/forge/154124-forge-1.json\\\",\",", + " \" \\\"status\\\": \\\"written\\\"\",", + " \" },\",", + " \" {\",", + " \" \\\"scene\\\": \\\"play\\\",\",", + " \" \\\"page_key\\\": \\\"154124-play-youzhi-1\\\",\",", + " \" \\\"target_path\\\": \\\"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy/traffic-supply-example-com/play/154124-play-youzhi-1.json\\\",\",", + " \" \\\"status\\\": \\\"written\\\"\",", + " \" }\",", + " \" ],\",", + " \" \\\"site_register\\\": {\",", + " \" \\\"d_domain\\\": \\\"traffic-supply.example.com\\\",\",", + " \" \\\"d_match_type\\\": \\\"exact\\\",\",", + " \" \\\"d_parent_domain\\\": \\\"\\\",\",", + " \" \\\"d_seed_scope\\\": \\\"domain\\\",\",", + " \" \\\"d_seo_cfg\\\": {\",", + " \" \\\"strategy_profile\\\": \\\"traffic\\\",\",", + " \" \\\"canonical_mode\\\": \\\"strict\\\",\",", + " \" \\\"play_index_mode\\\": \\\"index_follow\\\",\",", + " \" \\\"forge\\\": {\",", + " \" \\\"exposure_profile\\\": \\\"balanced\\\",\",", + " \" \\\"enable\\\": true,\",", + " \" \\\"count\\\": 12,\",", + " \" \\\"entry_count\\\": 3,\",", + " \" \\\"sitemap_count\\\": 2,\",", + " \" \\\"route_group\\\": \\\"detail_forge_v2\\\",\",", + " \" \\\"title_source\\\": \\\"v_seo_words\\\"\",", + " \" },\",", + " \" \\\"intro_block\\\": {\",", + " \" \\\"home\\\": true,\",", + " \" \\\"category\\\": true,\",", + " \" \\\"detail\\\": true,\",", + " \" \\\"search\\\": true\",", + " \" },\",", + " \" \\\"structured_data\\\": {\",", + " \" \\\"policy\\\": \\\"compact\\\",\",", + " \" \\\"reference_mode\\\": \\\"id_only\\\",\",", + " \" \\\"website_node\\\": true,\",", + " \" \\\"page_node\\\": true,\",", + " \" \\\"breadcrumb_node\\\": true,\",", + " \" \\\"video_object_node\\\": true,\",", + " \" \\\"organization_node\\\": true,\",", + " \" \\\"organization_name\\\": \\\"\\\",\",", + " \" \\\"same_as\\\": []\",", + " \" },\",", + " \" \\\"runtime_acceptance\\\": {\",", + " \" \\\"enable\\\": false,\",", + " \" \\\"samples\\\": []\",", + " \" },\",", + " \" \\\"robots_policy\\\": \\\"index_follow\\\",\",", + " \" \\\"match_type\\\": \\\"exact\\\",\",", + " \" \\\"seed_scope\\\": \\\"domain\\\",\",", + " \" \\\"wildcard_enable\\\": false\",", + " \" },\",", + " \" \\\"t_id\\\": 1,\",", + " \" \\\"d_name\\\": \\\"Traffic Supply\\\",\",", + " \" \\\"d_keywords\\\": \\\"Traffic Supply,影视推荐\\\",\",", + " \" \\\"d_description\\\": \\\"Traffic Supply 内容整理与推荐。\\\",\",", + " \" \\\"d_index_title\\\": \\\"Traffic Supply影视内容推荐\\\",\",", + " \" \\\"d_index_keywords\\\": \\\"Traffic Supply,影视推荐\\\",\",", + " \" \\\"d_index_description\\\": \\\"Traffic Supply 内容整理与推荐。\\\",\",", + " \" \\\"d_statis\\\": \\\"\\\",\",", + " \" \\\"d_logo_type\\\": 0,\",", + " \" \\\"d_text_logo\\\": \\\"Traffic Supply\\\",\",", + " \" \\\"d_img_logo\\\": \\\"\\\",\",", + " \" \\\"d_content_encode\\\": 0,\",", + " \" \\\"info_id\\\": 0,\",", + " \" \\\"d_baidu_token\\\": \\\"\\\",\",", + " \" \\\"_notes\\\": [\",", + " \" \\\"本文件用于创建 domain 记录,模板配置 t_cfg 会在创建时自动从模板表读取。\\\",\",", + " \" \\\"如目标域名已存在,register dry-run 会返回 domain_exists,后续直接执行 SEO 策略 apply 即可。\\\",\",", + " \" \\\"建议在正式 apply 前先检查 site_name、template_id 和首页三要素文案。\\\"\",", + " \" ]\",", + " \" },\",", + " \" \\\"site_register_preview\\\": {\",", + " \" \\\"payload\\\": {\",", + " \" \\\"d_domain\\\": \\\"traffic-supply.example.com\\\",\",", + " \" \\\"d_match_type\\\": \\\"exact\\\",\",", + " \" \\\"d_parent_domain\\\": \\\"\\\",\",", + " \" \\\"d_seed_scope\\\": \\\"domain\\\",\",", + " \" \\\"d_seo_cfg\\\": {\",", + " \" \\\"strategy_profile\\\": \\\"traffic\\\",\",", + " \" \\\"canonical_mode\\\": \\\"strict\\\",\",", + " \" \\\"play_index_mode\\\": \\\"index_follow\\\",\",", + " \" \\\"forge\\\": {\",", + " \" \\\"exposure_profile\\\": \\\"balanced\\\",\",", + " \" \\\"enable\\\": true,\",", + " \" \\\"count\\\": 12,\",", + " \" \\\"entry_count\\\": 3,\",", + " \" \\\"sitemap_count\\\": 2,\",", + " \" \\\"route_group\\\": \\\"detail_forge_v2\\\",\",", + " \" \\\"title_source\\\": \\\"v_seo_words\\\"\",", + " \" },\",", + " \" \\\"intro_block\\\": {\",", + " \" \\\"home\\\": true,\",", + " \" \\\"category\\\": true,\",", + " \" \\\"detail\\\": true,\",", + " \" \\\"search\\\": true\",", + " \" },\",", + " \" \\\"structured_data\\\": {\",", + " \" \\\"policy\\\": \\\"compact\\\",\",", + " \" \\\"reference_mode\\\": \\\"id_only\\\",\",", + " \" \\\"website_node\\\": true,\",", + " \" \\\"page_node\\\": true,\",", + " \" \\\"breadcrumb_node\\\": true,\",", + " \" \\\"video_object_node\\\": true,\",", + " \" \\\"organization_node\\\": true,\",", + " \" \\\"organization_name\\\": \\\"\\\",\",", + " \" \\\"same_as\\\": []\",", + " \" },\",", + " \" \\\"runtime_acceptance\\\": {\",", + " \" \\\"enable\\\": false,\",", + " \" \\\"samples\\\": []\",", + " \" },\",", + " \" \\\"robots_policy\\\": \\\"index_follow\\\",\",", + " \" \\\"match_type\\\": \\\"exact\\\",\",", + " \" \\\"seed_scope\\\": \\\"domain\\\",\",", + " \" \\\"wildcard_enable\\\": false\",", + " \" },\",", + " \" \\\"t_id\\\": 1,\",", + " \" \\\"d_name\\\": \\\"Traffic Supply\\\",\",", + " \" \\\"d_keywords\\\": \\\"Traffic Supply,影视推荐\\\",\",", + " \" \\\"d_description\\\": \\\"Traffic Supply 内容整理与推荐。\\\",\",", + " \" \\\"d_index_title\\\": \\\"Traffic Supply影视内容推荐\\\",\",", + " \" \\\"d_index_keywords\\\": \\\"Traffic Supply,影视推荐\\\",\",", + " \" \\\"d_index_description\\\": \\\"Traffic Supply 内容整理与推荐。\\\",\",", + " \" \\\"d_statis\\\": \\\"\\\",\",", + " \" \\\"d_logo_type\\\": 0,\",", + " \" \\\"d_text_logo\\\": \\\"Traffic Supply\\\",\",", + " \" \\\"d_img_logo\\\": \\\"\\\",\",", + " \" \\\"d_content_encode\\\": 0,\",", + " \" \\\"info_id\\\": 0,\",", + " \" \\\"d_baidu_token\\\": \\\"\\\"\",", + " \" },\",", + " \" \\\"found\\\": false,\",", + " \" \\\"status\\\": \\\"template_not_found\\\",\",", + " \" \\\"message\\\": \\\"模板不存在,无法创建站点记录。\\\",\",", + " \" \\\"create_fields\\\": 0,\",", + " \" \\\"domain_id\\\": 0,\",", + " \" \\\"template_found\\\": false,\",", + " \" \\\"template_id\\\": 1\",", + " \" },\",", + " \" \\\"site_strategy\\\": {\",", + " \" \\\"d_domain\\\": \\\"traffic-supply.example.com\\\",\",", + " \" \\\"d_match_type\\\": \\\"exact\\\",\",", + " \" \\\"d_parent_domain\\\": \\\"\\\",\",", + " \" \\\"d_seed_scope\\\": \\\"domain\\\",\",", + " \" \\\"d_seo_cfg\\\": {\",", + " \" \\\"strategy_profile\\\": \\\"traffic\\\",\",", + " \" \\\"canonical_mode\\\": \\\"strict\\\",\",", + " \" \\\"play_index_mode\\\": \\\"index_follow\\\",\",", + " \" \\\"forge\\\": {\",", + " \" \\\"exposure_profile\\\": \\\"balanced\\\",\",", + " \" \\\"enable\\\": true,\",", + " \" \\\"count\\\": 12,\",", + " \" \\\"entry_count\\\": 3,\",", + " \" \\\"sitemap_count\\\": 2,\",", + " \" \\\"route_group\\\": \\\"detail_forge_v2\\\",\",", + " \" \\\"title_source\\\": \\\"v_seo_words\\\"\",", + " \" },\",", + " \" \\\"intro_block\\\": {\",", + " \" \\\"home\\\": true,\",", + " \" \\\"category\\\": true,\",", + " \" \\\"detail\\\": true,\",", + " \" \\\"search\\\": true\",", + " \" },\",", + " \" \\\"structured_data\\\": {\",", + " \" \\\"policy\\\": \\\"compact\\\",\",", + " \" \\\"reference_mode\\\": \\\"id_only\\\",\",", + " \" \\\"website_node\\\": true,\",", + " \" \\\"page_node\\\": true,\",", + " \" \\\"breadcrumb_node\\\": true,\",", + " \" \\\"video_object_node\\\": true,\",", + " \" \\\"organization_node\\\": true,\",", + " \" \\\"organization_name\\\": \\\"\\\",\",", + " \" \\\"same_as\\\": []\",", + " \" },\",", + " \" \\\"runtime_acceptance\\\": {\",", + " \" \\\"enable\\\": false,\",", + " \" \\\"samples\\\": []\",", + " \" },\",", + " \" \\\"robots_policy\\\": \\\"index_follow\\\",\",", + " \" \\\"match_type\\\": \\\"exact\\\",\",", + " \" \\\"seed_scope\\\": \\\"domain\\\",\",", + " \" \\\"wildcard_enable\\\": false\",", + " \" },\",", + " \" \\\"_notes\\\": [\",", + " \" \\\"导入前请补齐 t_id、d_name、关键词、描述等站点基础字段。\\\",\",", + " \" \\\"wildcard 模式建议同步确认父域名和 seed_scope,避免多子域共用错误 seed。\\\",\",", + " \" \\\"本文件只负责域名 SEO 策略与匹配参数,不会替代离线补料 JSON 与 approved manifest。\\\"\",", + " \" ]\",", + " \" },\",", + " \" \\\"site_apply_preview\\\": {\",", + " \" \\\"payload\\\": {\",", + " \" \\\"d_domain\\\": \\\"traffic-supply.example.com\\\",\",", + " \" \\\"d_match_type\\\": \\\"exact\\\",\",", + " \" \\\"d_parent_domain\\\": \\\"\\\",\",", + " \" \\\"d_seed_scope\\\": \\\"domain\\\",\",", + " \" \\\"d_seo_cfg\\\": {\",", + " \" \\\"strategy_profile\\\": \\\"traffic\\\",\",", + " \" \\\"canonical_mode\\\": \\\"strict\\\",\",", + " \" \\\"play_index_mode\\\": \\\"index_follow\\\",\",", + " \" \\\"forge\\\": {\",", + " \" \\\"exposure_profile\\\": \\\"balanced\\\",\",", + " \" \\\"enable\\\": true,\",", + " \" \\\"count\\\": 12,\",", + " \" \\\"entry_count\\\": 3,\",", + " \" \\\"sitemap_count\\\": 2,\",", + " \" \\\"route_group\\\": \\\"detail_forge_v2\\\",\",", + " \" \\\"title_source\\\": \\\"v_seo_words\\\"\",", + " \" },\",", + " \" \\\"intro_block\\\": {\",", + " \" \\\"home\\\": true,\",", + " \" \\\"category\\\": true,\",", + " \" \\\"detail\\\": true,\",", + " \" \\\"search\\\": true\",", + " \" },\",", + " \" \\\"structured_data\\\": {\",", + " \" \\\"policy\\\": \\\"compact\\\",\",", + " \" \\\"reference_mode\\\": \\\"id_only\\\",\",", + " \" \\\"website_node\\\": true,\",", + " \" \\\"page_node\\\": true,\",", + " \" \\\"breadcrumb_node\\\": true,\",", + " \" \\\"video_object_node\\\": true,\",", + " \" \\\"organization_node\\\": true,\",", + " \" \\\"organization_name\\\": \\\"\\\",\",", + " \" \\\"same_as\\\": []\",", + " \" },\",", + " \" \\\"runtime_acceptance\\\": {\",", + " \" \\\"enable\\\": false,\",", + " \" \\\"samples\\\": []\",", + " \" },\",", + " \" \\\"robots_policy\\\": \\\"index_follow\\\",\",", + " \" \\\"match_type\\\": \\\"exact\\\",\",", + " \" \\\"seed_scope\\\": \\\"domain\\\",\",", + " \" \\\"wildcard_enable\\\": false\",", + " \" }\",", + " \" },\",", + " \" \\\"found\\\": false,\",", + " \" \\\"status\\\": \\\"domain_not_found\\\",\",", + " \" \\\"message\\\": \\\"请先在站点表中创建目标域名,再应用 bootstrap 策略样板。\\\",\",", + " \" \\\"diff\\\": [],\",", + " \" \\\"changed_fields\\\": 0\",", + " \" },\",", + " \" \\\"next_commands\\\": {\",", + " \" \\\"run_dry_run\\\": \\\"php scripts/domain_bootstrap_run.php /www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com --dry-run=1 --format=text\\\",\",", + " \" \\\"run\\\": \\\"php scripts/domain_bootstrap_run.php /www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com --dry-run=0 --format=text\\\",\",", + " \" \\\"register_dry_run\\\": \\\"php scripts/domain_bootstrap_register.php /www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-register.sample.json --dry-run=1 --format=text\\\",\",", + " \" \\\"register\\\": \\\"php scripts/domain_bootstrap_register.php /www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-register.sample.json --format=text\\\",\",", + " \" \\\"apply_dry_run\\\": \\\"php scripts/domain_seo_bootstrap_apply.php /www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-bootstrap.sample.json --dry-run=1 --format=text\\\",\",", + " \" \\\"apply\\\": \\\"php scripts/domain_seo_bootstrap_apply.php /www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-bootstrap.sample.json --format=text\\\",\",", + " \" \\\"prepare\\\": \\\"php scripts/seo_copy_batch_prepare.php traffic-supply-example-com-core-batch1 --approved-dir=/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved\\\",\",", + " \" \\\"dry_run\\\": \\\"php scripts/seo_copy_release_run.php traffic-supply-example-com-core-batch1 --approved-dir=/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved --source-root=/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy --base-url=https://traffic-supply.example.com --dry-run=1 --format=text\\\",\",", + " \" \\\"publish\\\": \\\"php scripts/seo_copy_release_run.php traffic-supply-example-com-core-batch1 --approved-dir=/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved --source-root=/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy --base-url=https://traffic-supply.example.com --format=text\\\"\",", + " \" },\",", + " \" \\\"site_register_path\\\": \\\"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-register.sample.json\\\",\",", + " \" \\\"site_bootstrap_path\\\": \\\"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-bootstrap.sample.json\\\",\",", + " \" \\\"bundle_files\\\": {\",", + " \" \\\"summary\\\": \\\"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/bootstrap-summary.json\\\",\",", + " \" \\\"manifest_copy\\\": \\\"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/manifest.copy.json\\\",\",", + " \" \\\"site_register\\\": \\\"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-register.sample.json\\\",\",", + " \" \\\"site_register_preview\\\": \\\"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-register.preview.json\\\",\",", + " \" \\\"site_bootstrap\\\": \\\"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-bootstrap.sample.json\\\",\",", + " \" \\\"site_apply_preview\\\": \\\"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-apply.preview.json\\\",\",", + " \" \\\"commands\\\": \\\"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/commands.sh\\\",\",", + " \" \\\"runbook\\\": \\\"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/README.md\\\"\",", + " \" },\",", + " \" \\\"bundle_index\\\": {\",", + " \" \\\"scan_root\\\": \\\"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles\\\",\",", + " \" \\\"bundles_count\\\": 1,\",", + " \" \\\"json\\\": \\\"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_index/index.json\\\",\",", + " \" \\\"html\\\": \\\"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_index/index.html\\\"\",", + " \" }\",", + " \"}\"", + " ]", + " },", + " {", + " \"host\": \"*.expand-supply.example.com\",", + " \"bundle_root\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com\",", + " \"strategy_profile\": \"expand\",", + " \"status\": \"success\",", + " \"message\": \"written\",", + " \"command\": \"php '/www/wwwroot/diff-maccms/SEONexus/code/scripts/seo_copy_domain_bootstrap.php' '*.expand-supply.example.com' --detail-id='153511' --detail-slug='yi-gua-ding-qian-kun' --search-keyword='一卦定乾坤' --category-parent='zong-yi' --category-child='da-lu-zong-yi' --bundle-root='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com' --index-root='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles' --portal-root='off' --bootstrap-run='off' --play-type='douban' --play-index='1' --forge-index='1' --rank-slug='daily' --match-type='wildcard' --parent-domain='expand-supply.example.com' --seed-scope='host' --strategy-profile='expand' --template-id='1' --site-name='Expand Supply' --site-keywords='Expand Supply,影视推荐' --site-description='Expand Supply 内容整理与推荐。'\",", + " \"exit_code\": 0,", + " \"output\": [", + " \"{\",", + " \" \\\"host\\\": \\\"*.expand-supply.example.com\\\",\",", + " \" \\\"host_dir\\\": \\\"expand-supply-example-com\\\",\",", + " \" \\\"manifest\\\": \\\"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy_jobs/approved/expand-supply-example-com-core-batch1.manifest.json\\\",\",", + " \" \\\"manifest_status\\\": \\\"written\\\",\",", + " \" \\\"target_root\\\": \\\"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy\\\",\",", + " \" \\\"approved_dir\\\": \\\"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy_jobs/approved\\\",\",", + " \" \\\"bundle_root\\\": \\\"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com\\\",\",", + " \" \\\"base_url\\\": \\\"https://*.expand-supply.example.com\\\",\",", + " \" \\\"items_count\\\": 9,\",", + " \" \\\"items\\\": [\",", + " \" {\",", + " \" \\\"scene\\\": \\\"home\\\",\",", + " \" \\\"page_key\\\": \\\"index\\\",\",", + " \" \\\"target_path\\\": \\\"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy/expand-supply-example-com/home/index.json\\\",\",", + " \" \\\"status\\\": \\\"written\\\"\",", + " \" },\",", + " \" {\",", + " \" \\\"scene\\\": \\\"category_index\\\",\",", + " \" \\\"page_key\\\": \\\"zong-yi\\\",\",", + " \" \\\"target_path\\\": \\\"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy/expand-supply-example-com/category_index/zong-yi.json\\\",\",", + " \" \\\"status\\\": \\\"written\\\"\",", + " \" },\",", + " \" {\",", + " \" \\\"scene\\\": \\\"category_list\\\",\",", + " \" \\\"page_key\\\": \\\"zong-yi--da-lu-zong-yi\\\",\",", + " \" \\\"target_path\\\": \\\"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy/expand-supply-example-com/category_list/zong-yi--da-lu-zong-yi.json\\\",\",", + " \" \\\"status\\\": \\\"written\\\"\",", + " \" },\",", + " \" {\",", + " \" \\\"scene\\\": \\\"search\\\",\",", + " \" \\\"page_key\\\": \\\"h-ad6cc0984e10818e\\\",\",", + " \" \\\"target_path\\\": \\\"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy/expand-supply-example-com/search/h-ad6cc0984e10818e.json\\\",\",", + " \" \\\"status\\\": \\\"written\\\"\",", + " \" },\",", + " \" {\",", + " \" \\\"scene\\\": \\\"rank_index\\\",\",", + " \" \\\"page_key\\\": \\\"index\\\",\",", + " \" \\\"target_path\\\": \\\"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy/expand-supply-example-com/rank_index/index.json\\\",\",", + " \" \\\"status\\\": \\\"written\\\"\",", + " \" },\",", + " \" {\",", + " \" \\\"scene\\\": \\\"rank_list\\\",\",", + " \" \\\"page_key\\\": \\\"daily\\\",\",", + " \" \\\"target_path\\\": \\\"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy/expand-supply-example-com/rank_list/daily.json\\\",\",", + " \" \\\"status\\\": \\\"written\\\"\",", + " \" },\",", + " \" {\",", + " \" \\\"scene\\\": \\\"detail\\\",\",", + " \" \\\"page_key\\\": \\\"153511\\\",\",", + " \" \\\"target_path\\\": \\\"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy/expand-supply-example-com/detail/153511.json\\\",\",", + " \" \\\"status\\\": \\\"written\\\"\",", + " \" },\",", + " \" {\",", + " \" \\\"scene\\\": \\\"forge\\\",\",", + " \" \\\"page_key\\\": \\\"153511-forge-1\\\",\",", + " \" \\\"target_path\\\": \\\"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy/expand-supply-example-com/forge/153511-forge-1.json\\\",\",", + " \" \\\"status\\\": \\\"written\\\"\",", + " \" },\",", + " \" {\",", + " \" \\\"scene\\\": \\\"play\\\",\",", + " \" \\\"page_key\\\": \\\"153511-play-douban-1\\\",\",", + " \" \\\"target_path\\\": \\\"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy/expand-supply-example-com/play/153511-play-douban-1.json\\\",\",", + " \" \\\"status\\\": \\\"written\\\"\",", + " \" }\",", + " \" ],\",", + " \" \\\"site_register\\\": {\",", + " \" \\\"d_domain\\\": \\\"*.expand-supply.example.com\\\",\",", + " \" \\\"d_match_type\\\": \\\"wildcard\\\",\",", + " \" \\\"d_parent_domain\\\": \\\"expand-supply.example.com\\\",\",", + " \" \\\"d_seed_scope\\\": \\\"host\\\",\",", + " \" \\\"d_seo_cfg\\\": {\",", + " \" \\\"strategy_profile\\\": \\\"expand\\\",\",", + " \" \\\"canonical_mode\\\": \\\"relaxed\\\",\",", + " \" \\\"play_index_mode\\\": \\\"index_follow\\\",\",", + " \" \\\"forge\\\": {\",", + " \" \\\"exposure_profile\\\": \\\"expanded\\\",\",", + " \" \\\"enable\\\": true,\",", + " \" \\\"count\\\": 16,\",", + " \" \\\"entry_count\\\": 5,\",", + " \" \\\"sitemap_count\\\": 4,\",", + " \" \\\"route_group\\\": \\\"detail_forge_v2\\\",\",", + " \" \\\"title_source\\\": \\\"v_seo_words\\\"\",", + " \" },\",", + " \" \\\"intro_block\\\": {\",", + " \" \\\"home\\\": true,\",", + " \" \\\"category\\\": true,\",", + " \" \\\"detail\\\": true,\",", + " \" \\\"search\\\": true\",", + " \" },\",", + " \" \\\"structured_data\\\": {\",", + " \" \\\"policy\\\": \\\"compact\\\",\",", + " \" \\\"reference_mode\\\": \\\"id_only\\\",\",", + " \" \\\"website_node\\\": true,\",", + " \" \\\"page_node\\\": true,\",", + " \" \\\"breadcrumb_node\\\": true,\",", + " \" \\\"video_object_node\\\": true,\",", + " \" \\\"organization_node\\\": true,\",", + " \" \\\"organization_name\\\": \\\"\\\",\",", + " \" \\\"same_as\\\": []\",", + " \" },\",", + " \" \\\"runtime_acceptance\\\": {\",", + " \" \\\"enable\\\": false,\",", + " \" \\\"samples\\\": []\",", + " \" },\",", + " \" \\\"robots_policy\\\": \\\"index_follow\\\",\",", + " \" \\\"match_type\\\": \\\"exact\\\",\",", + " \" \\\"seed_scope\\\": \\\"domain\\\",\",", + " \" \\\"wildcard_enable\\\": false\",", + " \" },\",", + " \" \\\"t_id\\\": 1,\",", + " \" \\\"d_name\\\": \\\"Expand Supply\\\",\",", + " \" \\\"d_keywords\\\": \\\"Expand Supply,影视推荐\\\",\",", + " \" \\\"d_description\\\": \\\"Expand Supply 内容整理与推荐。\\\",\",", + " \" \\\"d_index_title\\\": \\\"Expand Supply影视内容推荐\\\",\",", + " \" \\\"d_index_keywords\\\": \\\"Expand Supply,影视推荐\\\",\",", + " \" \\\"d_index_description\\\": \\\"Expand Supply 内容整理与推荐。\\\",\",", + " \" \\\"d_statis\\\": \\\"\\\",\",", + " \" \\\"d_logo_type\\\": 0,\",", + " \" \\\"d_text_logo\\\": \\\"Expand Supply\\\",\",", + " \" \\\"d_img_logo\\\": \\\"\\\",\",", + " \" \\\"d_content_encode\\\": 0,\",", + " \" \\\"info_id\\\": 0,\",", + " \" \\\"d_baidu_token\\\": \\\"\\\",\",", + " \" \\\"_notes\\\": [\",", + " \" \\\"本文件用于创建 domain 记录,模板配置 t_cfg 会在创建时自动从模板表读取。\\\",\",", + " \" \\\"如目标域名已存在,register dry-run 会返回 domain_exists,后续直接执行 SEO 策略 apply 即可。\\\",\",", + " \" \\\"建议在正式 apply 前先检查 site_name、template_id 和首页三要素文案。\\\"\",", + " \" ]\",", + " \" },\",", + " \" \\\"site_register_preview\\\": {\",", + " \" \\\"payload\\\": {\",", + " \" \\\"d_domain\\\": \\\"*.expand-supply.example.com\\\",\",", + " \" \\\"d_match_type\\\": \\\"wildcard\\\",\",", + " \" \\\"d_parent_domain\\\": \\\"expand-supply.example.com\\\",\",", + " \" \\\"d_seed_scope\\\": \\\"host\\\",\",", + " \" \\\"d_seo_cfg\\\": {\",", + " \" \\\"strategy_profile\\\": \\\"expand\\\",\",", + " \" \\\"canonical_mode\\\": \\\"relaxed\\\",\",", + " \" \\\"play_index_mode\\\": \\\"index_follow\\\",\",", + " \" \\\"forge\\\": {\",", + " \" \\\"exposure_profile\\\": \\\"expanded\\\",\",", + " \" \\\"enable\\\": true,\",", + " \" \\\"count\\\": 16,\",", + " \" \\\"entry_count\\\": 5,\",", + " \" \\\"sitemap_count\\\": 4,\",", + " \" \\\"route_group\\\": \\\"detail_forge_v2\\\",\",", + " \" \\\"title_source\\\": \\\"v_seo_words\\\"\",", + " \" },\",", + " \" \\\"intro_block\\\": {\",", + " \" \\\"home\\\": true,\",", + " \" \\\"category\\\": true,\",", + " \" \\\"detail\\\": true,\",", + " \" \\\"search\\\": true\",", + " \" },\",", + " \" \\\"structured_data\\\": {\",", + " \" \\\"policy\\\": \\\"compact\\\",\",", + " \" \\\"reference_mode\\\": \\\"id_only\\\",\",", + " \" \\\"website_node\\\": true,\",", + " \" \\\"page_node\\\": true,\",", + " \" \\\"breadcrumb_node\\\": true,\",", + " \" \\\"video_object_node\\\": true,\",", + " \" \\\"organization_node\\\": true,\",", + " \" \\\"organization_name\\\": \\\"\\\",\",", + " \" \\\"same_as\\\": []\",", + " \" },\",", + " \" \\\"runtime_acceptance\\\": {\",", + " \" \\\"enable\\\": false,\",", + " \" \\\"samples\\\": []\",", + " \" },\",", + " \" \\\"robots_policy\\\": \\\"index_follow\\\",\",", + " \" \\\"match_type\\\": \\\"wildcard\\\",\",", + " \" \\\"seed_scope\\\": \\\"host\\\",\",", + " \" \\\"wildcard_enable\\\": true\",", + " \" },\",", + " \" \\\"t_id\\\": 1,\",", + " \" \\\"d_name\\\": \\\"Expand Supply\\\",\",", + " \" \\\"d_keywords\\\": \\\"Expand Supply,影视推荐\\\",\",", + " \" \\\"d_description\\\": \\\"Expand Supply 内容整理与推荐。\\\",\",", + " \" \\\"d_index_title\\\": \\\"Expand Supply影视内容推荐\\\",\",", + " \" \\\"d_index_keywords\\\": \\\"Expand Supply,影视推荐\\\",\",", + " \" \\\"d_index_description\\\": \\\"Expand Supply 内容整理与推荐。\\\",\",", + " \" \\\"d_statis\\\": \\\"\\\",\",", + " \" \\\"d_logo_type\\\": 0,\",", + " \" \\\"d_text_logo\\\": \\\"Expand Supply\\\",\",", + " \" \\\"d_img_logo\\\": \\\"\\\",\",", + " \" \\\"d_content_encode\\\": 0,\",", + " \" \\\"info_id\\\": 0,\",", + " \" \\\"d_baidu_token\\\": \\\"\\\"\",", + " \" },\",", + " \" \\\"found\\\": false,\",", + " \" \\\"status\\\": \\\"template_not_found\\\",\",", + " \" \\\"message\\\": \\\"模板不存在,无法创建站点记录。\\\",\",", + " \" \\\"create_fields\\\": 0,\",", + " \" \\\"domain_id\\\": 0,\",", + " \" \\\"template_found\\\": false,\",", + " \" \\\"template_id\\\": 1\",", + " \" },\",", + " \" \\\"site_strategy\\\": {\",", + " \" \\\"d_domain\\\": \\\"*.expand-supply.example.com\\\",\",", + " \" \\\"d_match_type\\\": \\\"wildcard\\\",\",", + " \" \\\"d_parent_domain\\\": \\\"expand-supply.example.com\\\",\",", + " \" \\\"d_seed_scope\\\": \\\"host\\\",\",", + " \" \\\"d_seo_cfg\\\": {\",", + " \" \\\"strategy_profile\\\": \\\"expand\\\",\",", + " \" \\\"canonical_mode\\\": \\\"relaxed\\\",\",", + " \" \\\"play_index_mode\\\": \\\"index_follow\\\",\",", + " \" \\\"forge\\\": {\",", + " \" \\\"exposure_profile\\\": \\\"expanded\\\",\",", + " \" \\\"enable\\\": true,\",", + " \" \\\"count\\\": 16,\",", + " \" \\\"entry_count\\\": 5,\",", + " \" \\\"sitemap_count\\\": 4,\",", + " \" \\\"route_group\\\": \\\"detail_forge_v2\\\",\",", + " \" \\\"title_source\\\": \\\"v_seo_words\\\"\",", + " \" },\",", + " \" \\\"intro_block\\\": {\",", + " \" \\\"home\\\": true,\",", + " \" \\\"category\\\": true,\",", + " \" \\\"detail\\\": true,\",", + " \" \\\"search\\\": true\",", + " \" },\",", + " \" \\\"structured_data\\\": {\",", + " \" \\\"policy\\\": \\\"compact\\\",\",", + " \" \\\"reference_mode\\\": \\\"id_only\\\",\",", + " \" \\\"website_node\\\": true,\",", + " \" \\\"page_node\\\": true,\",", + " \" \\\"breadcrumb_node\\\": true,\",", + " \" \\\"video_object_node\\\": true,\",", + " \" \\\"organization_node\\\": true,\",", + " \" \\\"organization_name\\\": \\\"\\\",\",", + " \" \\\"same_as\\\": []\",", + " \" },\",", + " \" \\\"runtime_acceptance\\\": {\",", + " \" \\\"enable\\\": false,\",", + " \" \\\"samples\\\": []\",", + " \" },\",", + " \" \\\"robots_policy\\\": \\\"index_follow\\\",\",", + " \" \\\"match_type\\\": \\\"exact\\\",\",", + " \" \\\"seed_scope\\\": \\\"domain\\\",\",", + " \" \\\"wildcard_enable\\\": false\",", + " \" },\",", + " \" \\\"_notes\\\": [\",", + " \" \\\"导入前请补齐 t_id、d_name、关键词、描述等站点基础字段。\\\",\",", + " \" \\\"wildcard 模式建议同步确认父域名和 seed_scope,避免多子域共用错误 seed。\\\",\",", + " \" \\\"本文件只负责域名 SEO 策略与匹配参数,不会替代离线补料 JSON 与 approved manifest。\\\"\",", + " \" ]\",", + " \" },\",", + " \" \\\"site_apply_preview\\\": {\",", + " \" \\\"payload\\\": {\",", + " \" \\\"d_domain\\\": \\\"*.expand-supply.example.com\\\",\",", + " \" \\\"d_match_type\\\": \\\"wildcard\\\",\",", + " \" \\\"d_parent_domain\\\": \\\"expand-supply.example.com\\\",\",", + " \" \\\"d_seed_scope\\\": \\\"host\\\",\",", + " \" \\\"d_seo_cfg\\\": {\",", + " \" \\\"strategy_profile\\\": \\\"expand\\\",\",", + " \" \\\"canonical_mode\\\": \\\"relaxed\\\",\",", + " \" \\\"play_index_mode\\\": \\\"index_follow\\\",\",", + " \" \\\"forge\\\": {\",", + " \" \\\"exposure_profile\\\": \\\"expanded\\\",\",", + " \" \\\"enable\\\": true,\",", + " \" \\\"count\\\": 16,\",", + " \" \\\"entry_count\\\": 5,\",", + " \" \\\"sitemap_count\\\": 4,\",", + " \" \\\"route_group\\\": \\\"detail_forge_v2\\\",\",", + " \" \\\"title_source\\\": \\\"v_seo_words\\\"\",", + " \" },\",", + " \" \\\"intro_block\\\": {\",", + " \" \\\"home\\\": true,\",", + " \" \\\"category\\\": true,\",", + " \" \\\"detail\\\": true,\",", + " \" \\\"search\\\": true\",", + " \" },\",", + " \" \\\"structured_data\\\": {\",", + " \" \\\"policy\\\": \\\"compact\\\",\",", + " \" \\\"reference_mode\\\": \\\"id_only\\\",\",", + " \" \\\"website_node\\\": true,\",", + " \" \\\"page_node\\\": true,\",", + " \" \\\"breadcrumb_node\\\": true,\",", + " \" \\\"video_object_node\\\": true,\",", + " \" \\\"organization_node\\\": true,\",", + " \" \\\"organization_name\\\": \\\"\\\",\",", + " \" \\\"same_as\\\": []\",", + " \" },\",", + " \" \\\"runtime_acceptance\\\": {\",", + " \" \\\"enable\\\": false,\",", + " \" \\\"samples\\\": []\",", + " \" },\",", + " \" \\\"robots_policy\\\": \\\"index_follow\\\",\",", + " \" \\\"match_type\\\": \\\"exact\\\",\",", + " \" \\\"seed_scope\\\": \\\"domain\\\",\",", + " \" \\\"wildcard_enable\\\": false\",", + " \" }\",", + " \" },\",", + " \" \\\"found\\\": false,\",", + " \" \\\"status\\\": \\\"domain_not_found\\\",\",", + " \" \\\"message\\\": \\\"请先在站点表中创建目标域名,再应用 bootstrap 策略样板。\\\",\",", + " \" \\\"diff\\\": [],\",", + " \" \\\"changed_fields\\\": 0\",", + " \" },\",", + " \" \\\"next_commands\\\": {\",", + " \" \\\"run_dry_run\\\": \\\"php scripts/domain_bootstrap_run.php /www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com --dry-run=1 --format=text\\\",\",", + " \" \\\"run\\\": \\\"php scripts/domain_bootstrap_run.php /www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com --dry-run=0 --format=text\\\",\",", + " \" \\\"register_dry_run\\\": \\\"php scripts/domain_bootstrap_register.php /www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-register.sample.json --dry-run=1 --format=text\\\",\",", + " \" \\\"register\\\": \\\"php scripts/domain_bootstrap_register.php /www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-register.sample.json --format=text\\\",\",", + " \" \\\"apply_dry_run\\\": \\\"php scripts/domain_seo_bootstrap_apply.php /www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-bootstrap.sample.json --dry-run=1 --format=text\\\",\",", + " \" \\\"apply\\\": \\\"php scripts/domain_seo_bootstrap_apply.php /www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-bootstrap.sample.json --format=text\\\",\",", + " \" \\\"prepare\\\": \\\"php scripts/seo_copy_batch_prepare.php expand-supply-example-com-core-batch1 --approved-dir=/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy_jobs/approved\\\",\",", + " \" \\\"dry_run\\\": \\\"php scripts/seo_copy_release_run.php expand-supply-example-com-core-batch1 --approved-dir=/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy_jobs/approved --source-root=/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy --base-url=https://*.expand-supply.example.com --dry-run=1 --format=text\\\",\",", + " \" \\\"publish\\\": \\\"php scripts/seo_copy_release_run.php expand-supply-example-com-core-batch1 --approved-dir=/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy_jobs/approved --source-root=/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy --base-url=https://*.expand-supply.example.com --format=text\\\"\",", + " \" },\",", + " \" \\\"site_register_path\\\": \\\"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-register.sample.json\\\",\",", + " \" \\\"site_bootstrap_path\\\": \\\"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-bootstrap.sample.json\\\",\",", + " \" \\\"bundle_files\\\": {\",", + " \" \\\"summary\\\": \\\"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/bootstrap-summary.json\\\",\",", + " \" \\\"manifest_copy\\\": \\\"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/manifest.copy.json\\\",\",", + " \" \\\"site_register\\\": \\\"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-register.sample.json\\\",\",", + " \" \\\"site_register_preview\\\": \\\"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-register.preview.json\\\",\",", + " \" \\\"site_bootstrap\\\": \\\"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-bootstrap.sample.json\\\",\",", + " \" \\\"site_apply_preview\\\": \\\"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-apply.preview.json\\\",\",", + " \" \\\"commands\\\": \\\"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/commands.sh\\\",\",", + " \" \\\"runbook\\\": \\\"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/README.md\\\"\",", + " \" },\",", + " \" \\\"bundle_index\\\": {\",", + " \" \\\"scan_root\\\": \\\"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles\\\",\",", + " \" \\\"bundles_count\\\": 2,\",", + " \" \\\"json\\\": \\\"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_index/index.json\\\",\",", + " \" \\\"html\\\": \\\"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_index/index.html\\\"\",", + " \" }\",", + " \"}\"", + " ]", + " }", + " ],", + " \"bundle_index\": {", + " \"bundles_count\": 2,", + " \"json\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_index/index.json\",", + " \"html\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_index/index.html\"", + " },", + " \"bundle_portal\": {", + " \"json\": \"\",", + " \"html\": \"\"", + " },", + " \"summary_json\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/batch.summary.json\",", + " \"summary_html\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/batch.summary.html\"", + "}" + ], + "summary": { + "template_path": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/generated/domain-bootstrap-batch.generated.xlsx", + "batch_root": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles", + "index_root": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles", + "portal_root": "off", + "bootstrap_run": "off", + "processed_count": 2, + "success_count": 2, + "failed_count": 0, + "items": [ + { + "host": "traffic-supply.example.com", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com", + "strategy_profile": "traffic", + "status": "success", + "message": "written", + "command": "php '/www/wwwroot/diff-maccms/SEONexus/code/scripts/seo_copy_domain_bootstrap.php' 'traffic-supply.example.com' --detail-id='154124' --detail-slug='sheng-dan-bu-du-xing-meng-fei-si-lian-qu' --search-keyword='圣诞' --category-parent='dian-ying' --category-child='ju-qing-pian' --bundle-root='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com' --index-root='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles' --portal-root='off' --bootstrap-run='off' --play-type='youzhi' --play-index='1' --forge-index='1' --rank-slug='daily' --match-type='exact' --seed-scope='domain' --strategy-profile='traffic' --template-id='1' --site-name='Traffic Supply' --site-keywords='Traffic Supply,影视推荐' --site-description='Traffic Supply 内容整理与推荐。'", + "exit_code": 0, + "output": [ + "{", + " \"host\": \"traffic-supply.example.com\",", + " \"host_dir\": \"traffic-supply-example-com\",", + " \"manifest\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved/traffic-supply-example-com-core-batch1.manifest.json\",", + " \"manifest_status\": \"written\",", + " \"target_root\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy\",", + " \"approved_dir\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved\",", + " \"bundle_root\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com\",", + " \"base_url\": \"https://traffic-supply.example.com\",", + " \"items_count\": 9,", + " \"items\": [", + " {", + " \"scene\": \"home\",", + " \"page_key\": \"index\",", + " \"target_path\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy/traffic-supply-example-com/home/index.json\",", + " \"status\": \"written\"", + " },", + " {", + " \"scene\": \"category_index\",", + " \"page_key\": \"dian-ying\",", + " \"target_path\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy/traffic-supply-example-com/category_index/dian-ying.json\",", + " \"status\": \"written\"", + " },", + " {", + " \"scene\": \"category_list\",", + " \"page_key\": \"dian-ying--ju-qing-pian\",", + " \"target_path\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy/traffic-supply-example-com/category_list/dian-ying--ju-qing-pian.json\",", + " \"status\": \"written\"", + " },", + " {", + " \"scene\": \"search\",", + " \"page_key\": \"h-46b7136c36500625\",", + " \"target_path\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy/traffic-supply-example-com/search/h-46b7136c36500625.json\",", + " \"status\": \"written\"", + " },", + " {", + " \"scene\": \"rank_index\",", + " \"page_key\": \"index\",", + " \"target_path\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy/traffic-supply-example-com/rank_index/index.json\",", + " \"status\": \"written\"", + " },", + " {", + " \"scene\": \"rank_list\",", + " \"page_key\": \"daily\",", + " \"target_path\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy/traffic-supply-example-com/rank_list/daily.json\",", + " \"status\": \"written\"", + " },", + " {", + " \"scene\": \"detail\",", + " \"page_key\": \"154124\",", + " \"target_path\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy/traffic-supply-example-com/detail/154124.json\",", + " \"status\": \"written\"", + " },", + " {", + " \"scene\": \"forge\",", + " \"page_key\": \"154124-forge-1\",", + " \"target_path\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy/traffic-supply-example-com/forge/154124-forge-1.json\",", + " \"status\": \"written\"", + " },", + " {", + " \"scene\": \"play\",", + " \"page_key\": \"154124-play-youzhi-1\",", + " \"target_path\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy/traffic-supply-example-com/play/154124-play-youzhi-1.json\",", + " \"status\": \"written\"", + " }", + " ],", + " \"site_register\": {", + " \"d_domain\": \"traffic-supply.example.com\",", + " \"d_match_type\": \"exact\",", + " \"d_parent_domain\": \"\",", + " \"d_seed_scope\": \"domain\",", + " \"d_seo_cfg\": {", + " \"strategy_profile\": \"traffic\",", + " \"canonical_mode\": \"strict\",", + " \"play_index_mode\": \"index_follow\",", + " \"forge\": {", + " \"exposure_profile\": \"balanced\",", + " \"enable\": true,", + " \"count\": 12,", + " \"entry_count\": 3,", + " \"sitemap_count\": 2,", + " \"route_group\": \"detail_forge_v2\",", + " \"title_source\": \"v_seo_words\"", + " },", + " \"intro_block\": {", + " \"home\": true,", + " \"category\": true,", + " \"detail\": true,", + " \"search\": true", + " },", + " \"structured_data\": {", + " \"policy\": \"compact\",", + " \"reference_mode\": \"id_only\",", + " \"website_node\": true,", + " \"page_node\": true,", + " \"breadcrumb_node\": true,", + " \"video_object_node\": true,", + " \"organization_node\": true,", + " \"organization_name\": \"\",", + " \"same_as\": []", + " },", + " \"runtime_acceptance\": {", + " \"enable\": false,", + " \"samples\": []", + " },", + " \"robots_policy\": \"index_follow\",", + " \"match_type\": \"exact\",", + " \"seed_scope\": \"domain\",", + " \"wildcard_enable\": false", + " },", + " \"t_id\": 1,", + " \"d_name\": \"Traffic Supply\",", + " \"d_keywords\": \"Traffic Supply,影视推荐\",", + " \"d_description\": \"Traffic Supply 内容整理与推荐。\",", + " \"d_index_title\": \"Traffic Supply影视内容推荐\",", + " \"d_index_keywords\": \"Traffic Supply,影视推荐\",", + " \"d_index_description\": \"Traffic Supply 内容整理与推荐。\",", + " \"d_statis\": \"\",", + " \"d_logo_type\": 0,", + " \"d_text_logo\": \"Traffic Supply\",", + " \"d_img_logo\": \"\",", + " \"d_content_encode\": 0,", + " \"info_id\": 0,", + " \"d_baidu_token\": \"\",", + " \"_notes\": [", + " \"本文件用于创建 domain 记录,模板配置 t_cfg 会在创建时自动从模板表读取。\",", + " \"如目标域名已存在,register dry-run 会返回 domain_exists,后续直接执行 SEO 策略 apply 即可。\",", + " \"建议在正式 apply 前先检查 site_name、template_id 和首页三要素文案。\"", + " ]", + " },", + " \"site_register_preview\": {", + " \"payload\": {", + " \"d_domain\": \"traffic-supply.example.com\",", + " \"d_match_type\": \"exact\",", + " \"d_parent_domain\": \"\",", + " \"d_seed_scope\": \"domain\",", + " \"d_seo_cfg\": {", + " \"strategy_profile\": \"traffic\",", + " \"canonical_mode\": \"strict\",", + " \"play_index_mode\": \"index_follow\",", + " \"forge\": {", + " \"exposure_profile\": \"balanced\",", + " \"enable\": true,", + " \"count\": 12,", + " \"entry_count\": 3,", + " \"sitemap_count\": 2,", + " \"route_group\": \"detail_forge_v2\",", + " \"title_source\": \"v_seo_words\"", + " },", + " \"intro_block\": {", + " \"home\": true,", + " \"category\": true,", + " \"detail\": true,", + " \"search\": true", + " },", + " \"structured_data\": {", + " \"policy\": \"compact\",", + " \"reference_mode\": \"id_only\",", + " \"website_node\": true,", + " \"page_node\": true,", + " \"breadcrumb_node\": true,", + " \"video_object_node\": true,", + " \"organization_node\": true,", + " \"organization_name\": \"\",", + " \"same_as\": []", + " },", + " \"runtime_acceptance\": {", + " \"enable\": false,", + " \"samples\": []", + " },", + " \"robots_policy\": \"index_follow\",", + " \"match_type\": \"exact\",", + " \"seed_scope\": \"domain\",", + " \"wildcard_enable\": false", + " },", + " \"t_id\": 1,", + " \"d_name\": \"Traffic Supply\",", + " \"d_keywords\": \"Traffic Supply,影视推荐\",", + " \"d_description\": \"Traffic Supply 内容整理与推荐。\",", + " \"d_index_title\": \"Traffic Supply影视内容推荐\",", + " \"d_index_keywords\": \"Traffic Supply,影视推荐\",", + " \"d_index_description\": \"Traffic Supply 内容整理与推荐。\",", + " \"d_statis\": \"\",", + " \"d_logo_type\": 0,", + " \"d_text_logo\": \"Traffic Supply\",", + " \"d_img_logo\": \"\",", + " \"d_content_encode\": 0,", + " \"info_id\": 0,", + " \"d_baidu_token\": \"\"", + " },", + " \"found\": false,", + " \"status\": \"template_not_found\",", + " \"message\": \"模板不存在,无法创建站点记录。\",", + " \"create_fields\": 0,", + " \"domain_id\": 0,", + " \"template_found\": false,", + " \"template_id\": 1", + " },", + " \"site_strategy\": {", + " \"d_domain\": \"traffic-supply.example.com\",", + " \"d_match_type\": \"exact\",", + " \"d_parent_domain\": \"\",", + " \"d_seed_scope\": \"domain\",", + " \"d_seo_cfg\": {", + " \"strategy_profile\": \"traffic\",", + " \"canonical_mode\": \"strict\",", + " \"play_index_mode\": \"index_follow\",", + " \"forge\": {", + " \"exposure_profile\": \"balanced\",", + " \"enable\": true,", + " \"count\": 12,", + " \"entry_count\": 3,", + " \"sitemap_count\": 2,", + " \"route_group\": \"detail_forge_v2\",", + " \"title_source\": \"v_seo_words\"", + " },", + " \"intro_block\": {", + " \"home\": true,", + " \"category\": true,", + " \"detail\": true,", + " \"search\": true", + " },", + " \"structured_data\": {", + " \"policy\": \"compact\",", + " \"reference_mode\": \"id_only\",", + " \"website_node\": true,", + " \"page_node\": true,", + " \"breadcrumb_node\": true,", + " \"video_object_node\": true,", + " \"organization_node\": true,", + " \"organization_name\": \"\",", + " \"same_as\": []", + " },", + " \"runtime_acceptance\": {", + " \"enable\": false,", + " \"samples\": []", + " },", + " \"robots_policy\": \"index_follow\",", + " \"match_type\": \"exact\",", + " \"seed_scope\": \"domain\",", + " \"wildcard_enable\": false", + " },", + " \"_notes\": [", + " \"导入前请补齐 t_id、d_name、关键词、描述等站点基础字段。\",", + " \"wildcard 模式建议同步确认父域名和 seed_scope,避免多子域共用错误 seed。\",", + " \"本文件只负责域名 SEO 策略与匹配参数,不会替代离线补料 JSON 与 approved manifest。\"", + " ]", + " },", + " \"site_apply_preview\": {", + " \"payload\": {", + " \"d_domain\": \"traffic-supply.example.com\",", + " \"d_match_type\": \"exact\",", + " \"d_parent_domain\": \"\",", + " \"d_seed_scope\": \"domain\",", + " \"d_seo_cfg\": {", + " \"strategy_profile\": \"traffic\",", + " \"canonical_mode\": \"strict\",", + " \"play_index_mode\": \"index_follow\",", + " \"forge\": {", + " \"exposure_profile\": \"balanced\",", + " \"enable\": true,", + " \"count\": 12,", + " \"entry_count\": 3,", + " \"sitemap_count\": 2,", + " \"route_group\": \"detail_forge_v2\",", + " \"title_source\": \"v_seo_words\"", + " },", + " \"intro_block\": {", + " \"home\": true,", + " \"category\": true,", + " \"detail\": true,", + " \"search\": true", + " },", + " \"structured_data\": {", + " \"policy\": \"compact\",", + " \"reference_mode\": \"id_only\",", + " \"website_node\": true,", + " \"page_node\": true,", + " \"breadcrumb_node\": true,", + " \"video_object_node\": true,", + " \"organization_node\": true,", + " \"organization_name\": \"\",", + " \"same_as\": []", + " },", + " \"runtime_acceptance\": {", + " \"enable\": false,", + " \"samples\": []", + " },", + " \"robots_policy\": \"index_follow\",", + " \"match_type\": \"exact\",", + " \"seed_scope\": \"domain\",", + " \"wildcard_enable\": false", + " }", + " },", + " \"found\": false,", + " \"status\": \"domain_not_found\",", + " \"message\": \"请先在站点表中创建目标域名,再应用 bootstrap 策略样板。\",", + " \"diff\": [],", + " \"changed_fields\": 0", + " },", + " \"next_commands\": {", + " \"run_dry_run\": \"php scripts/domain_bootstrap_run.php /www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com --dry-run=1 --format=text\",", + " \"run\": \"php scripts/domain_bootstrap_run.php /www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com --dry-run=0 --format=text\",", + " \"register_dry_run\": \"php scripts/domain_bootstrap_register.php /www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-register.sample.json --dry-run=1 --format=text\",", + " \"register\": \"php scripts/domain_bootstrap_register.php /www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-register.sample.json --format=text\",", + " \"apply_dry_run\": \"php scripts/domain_seo_bootstrap_apply.php /www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-bootstrap.sample.json --dry-run=1 --format=text\",", + " \"apply\": \"php scripts/domain_seo_bootstrap_apply.php /www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-bootstrap.sample.json --format=text\",", + " \"prepare\": \"php scripts/seo_copy_batch_prepare.php traffic-supply-example-com-core-batch1 --approved-dir=/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved\",", + " \"dry_run\": \"php scripts/seo_copy_release_run.php traffic-supply-example-com-core-batch1 --approved-dir=/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved --source-root=/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy --base-url=https://traffic-supply.example.com --dry-run=1 --format=text\",", + " \"publish\": \"php scripts/seo_copy_release_run.php traffic-supply-example-com-core-batch1 --approved-dir=/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy_jobs/approved --source-root=/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/data/seo_copy --base-url=https://traffic-supply.example.com --format=text\"", + " },", + " \"site_register_path\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-register.sample.json\",", + " \"site_bootstrap_path\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-bootstrap.sample.json\",", + " \"bundle_files\": {", + " \"summary\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/bootstrap-summary.json\",", + " \"manifest_copy\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/manifest.copy.json\",", + " \"site_register\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-register.sample.json\",", + " \"site_register_preview\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-register.preview.json\",", + " \"site_bootstrap\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-bootstrap.sample.json\",", + " \"site_apply_preview\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/site-apply.preview.json\",", + " \"commands\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/commands.sh\",", + " \"runbook\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/traffic-supply-example-com/README.md\"", + " },", + " \"bundle_index\": {", + " \"scan_root\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles\",", + " \"bundles_count\": 1,", + " \"json\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_index/index.json\",", + " \"html\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_index/index.html\"", + " }", + "}" + ] + }, + { + "host": "*.expand-supply.example.com", + "bundle_root": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com", + "strategy_profile": "expand", + "status": "success", + "message": "written", + "command": "php '/www/wwwroot/diff-maccms/SEONexus/code/scripts/seo_copy_domain_bootstrap.php' '*.expand-supply.example.com' --detail-id='153511' --detail-slug='yi-gua-ding-qian-kun' --search-keyword='一卦定乾坤' --category-parent='zong-yi' --category-child='da-lu-zong-yi' --bundle-root='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com' --index-root='/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles' --portal-root='off' --bootstrap-run='off' --play-type='douban' --play-index='1' --forge-index='1' --rank-slug='daily' --match-type='wildcard' --parent-domain='expand-supply.example.com' --seed-scope='host' --strategy-profile='expand' --template-id='1' --site-name='Expand Supply' --site-keywords='Expand Supply,影视推荐' --site-description='Expand Supply 内容整理与推荐。'", + "exit_code": 0, + "output": [ + "{", + " \"host\": \"*.expand-supply.example.com\",", + " \"host_dir\": \"expand-supply-example-com\",", + " \"manifest\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy_jobs/approved/expand-supply-example-com-core-batch1.manifest.json\",", + " \"manifest_status\": \"written\",", + " \"target_root\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy\",", + " \"approved_dir\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy_jobs/approved\",", + " \"bundle_root\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com\",", + " \"base_url\": \"https://*.expand-supply.example.com\",", + " \"items_count\": 9,", + " \"items\": [", + " {", + " \"scene\": \"home\",", + " \"page_key\": \"index\",", + " \"target_path\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy/expand-supply-example-com/home/index.json\",", + " \"status\": \"written\"", + " },", + " {", + " \"scene\": \"category_index\",", + " \"page_key\": \"zong-yi\",", + " \"target_path\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy/expand-supply-example-com/category_index/zong-yi.json\",", + " \"status\": \"written\"", + " },", + " {", + " \"scene\": \"category_list\",", + " \"page_key\": \"zong-yi--da-lu-zong-yi\",", + " \"target_path\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy/expand-supply-example-com/category_list/zong-yi--da-lu-zong-yi.json\",", + " \"status\": \"written\"", + " },", + " {", + " \"scene\": \"search\",", + " \"page_key\": \"h-ad6cc0984e10818e\",", + " \"target_path\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy/expand-supply-example-com/search/h-ad6cc0984e10818e.json\",", + " \"status\": \"written\"", + " },", + " {", + " \"scene\": \"rank_index\",", + " \"page_key\": \"index\",", + " \"target_path\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy/expand-supply-example-com/rank_index/index.json\",", + " \"status\": \"written\"", + " },", + " {", + " \"scene\": \"rank_list\",", + " \"page_key\": \"daily\",", + " \"target_path\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy/expand-supply-example-com/rank_list/daily.json\",", + " \"status\": \"written\"", + " },", + " {", + " \"scene\": \"detail\",", + " \"page_key\": \"153511\",", + " \"target_path\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy/expand-supply-example-com/detail/153511.json\",", + " \"status\": \"written\"", + " },", + " {", + " \"scene\": \"forge\",", + " \"page_key\": \"153511-forge-1\",", + " \"target_path\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy/expand-supply-example-com/forge/153511-forge-1.json\",", + " \"status\": \"written\"", + " },", + " {", + " \"scene\": \"play\",", + " \"page_key\": \"153511-play-douban-1\",", + " \"target_path\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy/expand-supply-example-com/play/153511-play-douban-1.json\",", + " \"status\": \"written\"", + " }", + " ],", + " \"site_register\": {", + " \"d_domain\": \"*.expand-supply.example.com\",", + " \"d_match_type\": \"wildcard\",", + " \"d_parent_domain\": \"expand-supply.example.com\",", + " \"d_seed_scope\": \"host\",", + " \"d_seo_cfg\": {", + " \"strategy_profile\": \"expand\",", + " \"canonical_mode\": \"relaxed\",", + " \"play_index_mode\": \"index_follow\",", + " \"forge\": {", + " \"exposure_profile\": \"expanded\",", + " \"enable\": true,", + " \"count\": 16,", + " \"entry_count\": 5,", + " \"sitemap_count\": 4,", + " \"route_group\": \"detail_forge_v2\",", + " \"title_source\": \"v_seo_words\"", + " },", + " \"intro_block\": {", + " \"home\": true,", + " \"category\": true,", + " \"detail\": true,", + " \"search\": true", + " },", + " \"structured_data\": {", + " \"policy\": \"compact\",", + " \"reference_mode\": \"id_only\",", + " \"website_node\": true,", + " \"page_node\": true,", + " \"breadcrumb_node\": true,", + " \"video_object_node\": true,", + " \"organization_node\": true,", + " \"organization_name\": \"\",", + " \"same_as\": []", + " },", + " \"runtime_acceptance\": {", + " \"enable\": false,", + " \"samples\": []", + " },", + " \"robots_policy\": \"index_follow\",", + " \"match_type\": \"exact\",", + " \"seed_scope\": \"domain\",", + " \"wildcard_enable\": false", + " },", + " \"t_id\": 1,", + " \"d_name\": \"Expand Supply\",", + " \"d_keywords\": \"Expand Supply,影视推荐\",", + " \"d_description\": \"Expand Supply 内容整理与推荐。\",", + " \"d_index_title\": \"Expand Supply影视内容推荐\",", + " \"d_index_keywords\": \"Expand Supply,影视推荐\",", + " \"d_index_description\": \"Expand Supply 内容整理与推荐。\",", + " \"d_statis\": \"\",", + " \"d_logo_type\": 0,", + " \"d_text_logo\": \"Expand Supply\",", + " \"d_img_logo\": \"\",", + " \"d_content_encode\": 0,", + " \"info_id\": 0,", + " \"d_baidu_token\": \"\",", + " \"_notes\": [", + " \"本文件用于创建 domain 记录,模板配置 t_cfg 会在创建时自动从模板表读取。\",", + " \"如目标域名已存在,register dry-run 会返回 domain_exists,后续直接执行 SEO 策略 apply 即可。\",", + " \"建议在正式 apply 前先检查 site_name、template_id 和首页三要素文案。\"", + " ]", + " },", + " \"site_register_preview\": {", + " \"payload\": {", + " \"d_domain\": \"*.expand-supply.example.com\",", + " \"d_match_type\": \"wildcard\",", + " \"d_parent_domain\": \"expand-supply.example.com\",", + " \"d_seed_scope\": \"host\",", + " \"d_seo_cfg\": {", + " \"strategy_profile\": \"expand\",", + " \"canonical_mode\": \"relaxed\",", + " \"play_index_mode\": \"index_follow\",", + " \"forge\": {", + " \"exposure_profile\": \"expanded\",", + " \"enable\": true,", + " \"count\": 16,", + " \"entry_count\": 5,", + " \"sitemap_count\": 4,", + " \"route_group\": \"detail_forge_v2\",", + " \"title_source\": \"v_seo_words\"", + " },", + " \"intro_block\": {", + " \"home\": true,", + " \"category\": true,", + " \"detail\": true,", + " \"search\": true", + " },", + " \"structured_data\": {", + " \"policy\": \"compact\",", + " \"reference_mode\": \"id_only\",", + " \"website_node\": true,", + " \"page_node\": true,", + " \"breadcrumb_node\": true,", + " \"video_object_node\": true,", + " \"organization_node\": true,", + " \"organization_name\": \"\",", + " \"same_as\": []", + " },", + " \"runtime_acceptance\": {", + " \"enable\": false,", + " \"samples\": []", + " },", + " \"robots_policy\": \"index_follow\",", + " \"match_type\": \"wildcard\",", + " \"seed_scope\": \"host\",", + " \"wildcard_enable\": true", + " },", + " \"t_id\": 1,", + " \"d_name\": \"Expand Supply\",", + " \"d_keywords\": \"Expand Supply,影视推荐\",", + " \"d_description\": \"Expand Supply 内容整理与推荐。\",", + " \"d_index_title\": \"Expand Supply影视内容推荐\",", + " \"d_index_keywords\": \"Expand Supply,影视推荐\",", + " \"d_index_description\": \"Expand Supply 内容整理与推荐。\",", + " \"d_statis\": \"\",", + " \"d_logo_type\": 0,", + " \"d_text_logo\": \"Expand Supply\",", + " \"d_img_logo\": \"\",", + " \"d_content_encode\": 0,", + " \"info_id\": 0,", + " \"d_baidu_token\": \"\"", + " },", + " \"found\": false,", + " \"status\": \"template_not_found\",", + " \"message\": \"模板不存在,无法创建站点记录。\",", + " \"create_fields\": 0,", + " \"domain_id\": 0,", + " \"template_found\": false,", + " \"template_id\": 1", + " },", + " \"site_strategy\": {", + " \"d_domain\": \"*.expand-supply.example.com\",", + " \"d_match_type\": \"wildcard\",", + " \"d_parent_domain\": \"expand-supply.example.com\",", + " \"d_seed_scope\": \"host\",", + " \"d_seo_cfg\": {", + " \"strategy_profile\": \"expand\",", + " \"canonical_mode\": \"relaxed\",", + " \"play_index_mode\": \"index_follow\",", + " \"forge\": {", + " \"exposure_profile\": \"expanded\",", + " \"enable\": true,", + " \"count\": 16,", + " \"entry_count\": 5,", + " \"sitemap_count\": 4,", + " \"route_group\": \"detail_forge_v2\",", + " \"title_source\": \"v_seo_words\"", + " },", + " \"intro_block\": {", + " \"home\": true,", + " \"category\": true,", + " \"detail\": true,", + " \"search\": true", + " },", + " \"structured_data\": {", + " \"policy\": \"compact\",", + " \"reference_mode\": \"id_only\",", + " \"website_node\": true,", + " \"page_node\": true,", + " \"breadcrumb_node\": true,", + " \"video_object_node\": true,", + " \"organization_node\": true,", + " \"organization_name\": \"\",", + " \"same_as\": []", + " },", + " \"runtime_acceptance\": {", + " \"enable\": false,", + " \"samples\": []", + " },", + " \"robots_policy\": \"index_follow\",", + " \"match_type\": \"exact\",", + " \"seed_scope\": \"domain\",", + " \"wildcard_enable\": false", + " },", + " \"_notes\": [", + " \"导入前请补齐 t_id、d_name、关键词、描述等站点基础字段。\",", + " \"wildcard 模式建议同步确认父域名和 seed_scope,避免多子域共用错误 seed。\",", + " \"本文件只负责域名 SEO 策略与匹配参数,不会替代离线补料 JSON 与 approved manifest。\"", + " ]", + " },", + " \"site_apply_preview\": {", + " \"payload\": {", + " \"d_domain\": \"*.expand-supply.example.com\",", + " \"d_match_type\": \"wildcard\",", + " \"d_parent_domain\": \"expand-supply.example.com\",", + " \"d_seed_scope\": \"host\",", + " \"d_seo_cfg\": {", + " \"strategy_profile\": \"expand\",", + " \"canonical_mode\": \"relaxed\",", + " \"play_index_mode\": \"index_follow\",", + " \"forge\": {", + " \"exposure_profile\": \"expanded\",", + " \"enable\": true,", + " \"count\": 16,", + " \"entry_count\": 5,", + " \"sitemap_count\": 4,", + " \"route_group\": \"detail_forge_v2\",", + " \"title_source\": \"v_seo_words\"", + " },", + " \"intro_block\": {", + " \"home\": true,", + " \"category\": true,", + " \"detail\": true,", + " \"search\": true", + " },", + " \"structured_data\": {", + " \"policy\": \"compact\",", + " \"reference_mode\": \"id_only\",", + " \"website_node\": true,", + " \"page_node\": true,", + " \"breadcrumb_node\": true,", + " \"video_object_node\": true,", + " \"organization_node\": true,", + " \"organization_name\": \"\",", + " \"same_as\": []", + " },", + " \"runtime_acceptance\": {", + " \"enable\": false,", + " \"samples\": []", + " },", + " \"robots_policy\": \"index_follow\",", + " \"match_type\": \"exact\",", + " \"seed_scope\": \"domain\",", + " \"wildcard_enable\": false", + " }", + " },", + " \"found\": false,", + " \"status\": \"domain_not_found\",", + " \"message\": \"请先在站点表中创建目标域名,再应用 bootstrap 策略样板。\",", + " \"diff\": [],", + " \"changed_fields\": 0", + " },", + " \"next_commands\": {", + " \"run_dry_run\": \"php scripts/domain_bootstrap_run.php /www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com --dry-run=1 --format=text\",", + " \"run\": \"php scripts/domain_bootstrap_run.php /www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com --dry-run=0 --format=text\",", + " \"register_dry_run\": \"php scripts/domain_bootstrap_register.php /www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-register.sample.json --dry-run=1 --format=text\",", + " \"register\": \"php scripts/domain_bootstrap_register.php /www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-register.sample.json --format=text\",", + " \"apply_dry_run\": \"php scripts/domain_seo_bootstrap_apply.php /www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-bootstrap.sample.json --dry-run=1 --format=text\",", + " \"apply\": \"php scripts/domain_seo_bootstrap_apply.php /www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-bootstrap.sample.json --format=text\",", + " \"prepare\": \"php scripts/seo_copy_batch_prepare.php expand-supply-example-com-core-batch1 --approved-dir=/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy_jobs/approved\",", + " \"dry_run\": \"php scripts/seo_copy_release_run.php expand-supply-example-com-core-batch1 --approved-dir=/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy_jobs/approved --source-root=/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy --base-url=https://*.expand-supply.example.com --dry-run=1 --format=text\",", + " \"publish\": \"php scripts/seo_copy_release_run.php expand-supply-example-com-core-batch1 --approved-dir=/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy_jobs/approved --source-root=/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/data/seo_copy --base-url=https://*.expand-supply.example.com --format=text\"", + " },", + " \"site_register_path\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-register.sample.json\",", + " \"site_bootstrap_path\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-bootstrap.sample.json\",", + " \"bundle_files\": {", + " \"summary\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/bootstrap-summary.json\",", + " \"manifest_copy\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/manifest.copy.json\",", + " \"site_register\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-register.sample.json\",", + " \"site_register_preview\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-register.preview.json\",", + " \"site_bootstrap\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-bootstrap.sample.json\",", + " \"site_apply_preview\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/site-apply.preview.json\",", + " \"commands\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/commands.sh\",", + " \"runbook\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/expand-supply-example-com/README.md\"", + " },", + " \"bundle_index\": {", + " \"scan_root\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles\",", + " \"bundles_count\": 2,", + " \"json\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_index/index.json\",", + " \"html\": \"/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_index/index.html\"", + " }", + "}" + ] + } + ], + "bundle_index": { + "bundles_count": 2, + "json": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_index/index.json", + "html": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/_index/index.html" + }, + "bundle_portal": { + "json": "", + "html": "" + }, + "summary_json": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/batch.summary.json", + "summary_html": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/bundles/batch.summary.html" + } + }, + "summary_json": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/supply.summary.json", + "summary_html": "/www/wwwroot/diff-maccms/SEONexus/code/public/_admin_templates/domain-supply-runs/test-run/supply.summary.html" +}