Files
ewoooc/services/market_intel/platform_seed.py

44 lines
1.5 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""市場情報平台種子資料規劃。
本模組只產生可審核的 seed plan不執行資料庫寫入。
"""
from services.market_intel.adapters import get_adapter, get_adapter_registry
def _adapter_to_seed(adapter):
policy = adapter.safety_policy.to_dict()
sources = [source.to_dict() for source in adapter.campaign_sources()]
return {
"code": adapter.platform_code,
"name": adapter.platform_name,
"base_url": adapter.base_url,
"enabled": False,
"crawl_policy_json": {
"request_interval_sec": policy["request_interval_sec"],
"timeout_sec": policy["timeout_sec"],
"max_pages_per_run": policy["max_pages_per_run"],
"allow_login": policy["allow_login"],
"allow_database_write": policy["allow_database_write"],
"allow_scheduler_attach": policy["allow_scheduler_attach"],
"seed_source_keys": [source["source_key"] for source in sources],
},
"source_count": len(sources),
"sources": sources,
"write_action": "upsert_market_platform_after_gate_approval",
}
def build_platform_seed_rows(platform_code="all"):
"""根據已註冊 adapter 建立平台 seed rows不碰 DB。"""
if platform_code and platform_code != "all":
adapter = get_adapter(platform_code)
if not adapter:
return []
return [_adapter_to_seed(adapter)]
return [
_adapter_to_seed(adapter)
for adapter in get_adapter_registry().values()
]